Coverage Report

Created: 2026-07-05 19:28

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 <compare>
24
#include <limits>
25
#include <optional>
26
#include <string_view>
27
#include <type_traits>
28
29
#include "common/check.h"
30
#include "common/logging.h"
31
#include "core/accurate_comparison.h"
32
#include "core/assert_cast.h"
33
#include "core/column/column_const.h"
34
#include "core/column/column_decimal.h"
35
#include "core/column/column_nullable.h"
36
#include "core/column/column_string.h"
37
#include "core/data_type/data_type_nullable.h"
38
#include "core/data_type/data_type_number.h"
39
#include "core/data_type/data_type_string.h"
40
#include "core/data_type/define_primitive_type.h"
41
#include "core/decimal_comparison.h"
42
#include "core/field.h"
43
#include "core/memcmp_small.h"
44
#include "core/value/vdatetime_value.h"
45
#include "exprs/expr_zonemap_filter.h"
46
#include "exprs/function/function.h"
47
#include "exprs/function/function_helpers.h"
48
#include "exprs/function/functions_logical.h"
49
#include "exprs/vexpr.h"
50
#include "storage/index/index_reader_helper.h"
51
52
namespace doris {
53
/** Comparison functions: ==, !=, <, >, <=, >=.
54
  * The comparison functions always return 0 or 1 (UInt8).
55
  *
56
  * You can compare the following types:
57
  * - numbers and decimals;
58
  * - strings and fixed strings;
59
  * - dates;
60
  * - datetimes;
61
  *   within each group, but not from different groups;
62
  * - tuples (lexicographic comparison).
63
  *
64
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
65
  */
66
67
template <typename A, typename B, typename Op>
68
struct NumComparisonImpl {
69
    /// 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.
70
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
71
8.36k
                                        PaddedPODArray<UInt8>& c) {
72
8.36k
        size_t size = a.size();
73
8.36k
        const A* __restrict a_pos = a.data();
74
8.36k
        const B* __restrict b_pos = b.data();
75
8.36k
        UInt8* __restrict c_pos = c.data();
76
8.36k
        const A* __restrict a_end = a_pos + size;
77
78
6.19M
        while (a_pos < a_end) {
79
6.18M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
6.18M
            ++a_pos;
81
6.18M
            ++b_pos;
82
6.18M
            ++c_pos;
83
6.18M
        }
84
8.36k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
71
70
                                        PaddedPODArray<UInt8>& c) {
72
70
        size_t size = a.size();
73
70
        const A* __restrict a_pos = a.data();
74
70
        const B* __restrict b_pos = b.data();
75
70
        UInt8* __restrict c_pos = c.data();
76
70
        const A* __restrict a_end = a_pos + size;
77
78
140
        while (a_pos < a_end) {
79
70
            *c_pos = Op::apply(*a_pos, *b_pos);
80
70
            ++a_pos;
81
70
            ++b_pos;
82
70
            ++c_pos;
83
70
        }
84
70
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
372
                                        PaddedPODArray<UInt8>& c) {
72
372
        size_t size = a.size();
73
372
        const A* __restrict a_pos = a.data();
74
372
        const B* __restrict b_pos = b.data();
75
372
        UInt8* __restrict c_pos = c.data();
76
372
        const A* __restrict a_end = a_pos + size;
77
78
1.59k
        while (a_pos < a_end) {
79
1.22k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.22k
            ++a_pos;
81
1.22k
            ++b_pos;
82
1.22k
            ++c_pos;
83
1.22k
        }
84
372
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
300
                                        PaddedPODArray<UInt8>& c) {
72
300
        size_t size = a.size();
73
300
        const A* __restrict a_pos = a.data();
74
300
        const B* __restrict b_pos = b.data();
75
300
        UInt8* __restrict c_pos = c.data();
76
300
        const A* __restrict a_end = a_pos + size;
77
78
618
        while (a_pos < a_end) {
79
318
            *c_pos = Op::apply(*a_pos, *b_pos);
80
318
            ++a_pos;
81
318
            ++b_pos;
82
318
            ++c_pos;
83
318
        }
84
300
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
2
                                        PaddedPODArray<UInt8>& c) {
72
2
        size_t size = a.size();
73
2
        const A* __restrict a_pos = a.data();
74
2
        const B* __restrict b_pos = b.data();
75
2
        UInt8* __restrict c_pos = c.data();
76
2
        const A* __restrict a_end = a_pos + size;
77
78
12
        while (a_pos < a_end) {
79
10
            *c_pos = Op::apply(*a_pos, *b_pos);
80
10
            ++a_pos;
81
10
            ++b_pos;
82
10
            ++c_pos;
83
10
        }
84
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
171
                                        PaddedPODArray<UInt8>& c) {
72
171
        size_t size = a.size();
73
171
        const A* __restrict a_pos = a.data();
74
171
        const B* __restrict b_pos = b.data();
75
171
        UInt8* __restrict c_pos = c.data();
76
171
        const A* __restrict a_end = a_pos + size;
77
78
484
        while (a_pos < a_end) {
79
313
            *c_pos = Op::apply(*a_pos, *b_pos);
80
313
            ++a_pos;
81
313
            ++b_pos;
82
313
            ++c_pos;
83
313
        }
84
171
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
97
                                        PaddedPODArray<UInt8>& c) {
72
97
        size_t size = a.size();
73
97
        const A* __restrict a_pos = a.data();
74
97
        const B* __restrict b_pos = b.data();
75
97
        UInt8* __restrict c_pos = c.data();
76
97
        const A* __restrict a_end = a_pos + size;
77
78
194
        while (a_pos < a_end) {
79
97
            *c_pos = Op::apply(*a_pos, *b_pos);
80
97
            ++a_pos;
81
97
            ++b_pos;
82
97
            ++c_pos;
83
97
        }
84
97
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
270
                                        PaddedPODArray<UInt8>& c) {
72
270
        size_t size = a.size();
73
270
        const A* __restrict a_pos = a.data();
74
270
        const B* __restrict b_pos = b.data();
75
270
        UInt8* __restrict c_pos = c.data();
76
270
        const A* __restrict a_end = a_pos + size;
77
78
1.78k
        while (a_pos < a_end) {
79
1.51k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.51k
            ++a_pos;
81
1.51k
            ++b_pos;
82
1.51k
            ++c_pos;
83
1.51k
        }
84
270
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
155
                                        PaddedPODArray<UInt8>& c) {
72
155
        size_t size = a.size();
73
155
        const A* __restrict a_pos = a.data();
74
155
        const B* __restrict b_pos = b.data();
75
155
        UInt8* __restrict c_pos = c.data();
76
155
        const A* __restrict a_end = a_pos + size;
77
78
1.48k
        while (a_pos < a_end) {
79
1.33k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.33k
            ++a_pos;
81
1.33k
            ++b_pos;
82
1.33k
            ++c_pos;
83
1.33k
        }
84
155
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
100
                                        PaddedPODArray<UInt8>& c) {
72
100
        size_t size = a.size();
73
100
        const A* __restrict a_pos = a.data();
74
100
        const B* __restrict b_pos = b.data();
75
100
        UInt8* __restrict c_pos = c.data();
76
100
        const A* __restrict a_end = a_pos + size;
77
78
200
        while (a_pos < a_end) {
79
100
            *c_pos = Op::apply(*a_pos, *b_pos);
80
100
            ++a_pos;
81
100
            ++b_pos;
82
100
            ++c_pos;
83
100
        }
84
100
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
16
                                        PaddedPODArray<UInt8>& c) {
72
16
        size_t size = a.size();
73
16
        const A* __restrict a_pos = a.data();
74
16
        const B* __restrict b_pos = b.data();
75
16
        UInt8* __restrict c_pos = c.data();
76
16
        const A* __restrict a_end = a_pos + size;
77
78
32
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
24
                                        PaddedPODArray<UInt8>& c) {
72
24
        size_t size = a.size();
73
24
        const A* __restrict a_pos = a.data();
74
24
        const B* __restrict b_pos = b.data();
75
24
        UInt8* __restrict c_pos = c.data();
76
24
        const A* __restrict a_end = a_pos + size;
77
78
48
        while (a_pos < a_end) {
79
24
            *c_pos = Op::apply(*a_pos, *b_pos);
80
24
            ++a_pos;
81
24
            ++b_pos;
82
24
            ++c_pos;
83
24
        }
84
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
117
                                        PaddedPODArray<UInt8>& c) {
72
117
        size_t size = a.size();
73
117
        const A* __restrict a_pos = a.data();
74
117
        const B* __restrict b_pos = b.data();
75
117
        UInt8* __restrict c_pos = c.data();
76
117
        const A* __restrict a_end = a_pos + size;
77
78
253
        while (a_pos < a_end) {
79
136
            *c_pos = Op::apply(*a_pos, *b_pos);
80
136
            ++a_pos;
81
136
            ++b_pos;
82
136
            ++c_pos;
83
136
        }
84
117
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
113
                                        PaddedPODArray<UInt8>& c) {
72
113
        size_t size = a.size();
73
113
        const A* __restrict a_pos = a.data();
74
113
        const B* __restrict b_pos = b.data();
75
113
        UInt8* __restrict c_pos = c.data();
76
113
        const A* __restrict a_end = a_pos + size;
77
78
247
        while (a_pos < a_end) {
79
134
            *c_pos = Op::apply(*a_pos, *b_pos);
80
134
            ++a_pos;
81
134
            ++b_pos;
82
134
            ++c_pos;
83
134
        }
84
113
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
4
                                        PaddedPODArray<UInt8>& c) {
72
4
        size_t size = a.size();
73
4
        const A* __restrict a_pos = a.data();
74
4
        const B* __restrict b_pos = b.data();
75
4
        UInt8* __restrict c_pos = c.data();
76
4
        const A* __restrict a_end = a_pos + size;
77
78
8
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
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
71
39
                                        PaddedPODArray<UInt8>& c) {
72
39
        size_t size = a.size();
73
39
        const A* __restrict a_pos = a.data();
74
39
        const B* __restrict b_pos = b.data();
75
39
        UInt8* __restrict c_pos = c.data();
76
39
        const A* __restrict a_end = a_pos + size;
77
78
108
        while (a_pos < a_end) {
79
69
            *c_pos = Op::apply(*a_pos, *b_pos);
80
69
            ++a_pos;
81
69
            ++b_pos;
82
69
            ++c_pos;
83
69
        }
84
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
71
56
                                        PaddedPODArray<UInt8>& c) {
72
56
        size_t size = a.size();
73
56
        const A* __restrict a_pos = a.data();
74
56
        const B* __restrict b_pos = b.data();
75
56
        UInt8* __restrict c_pos = c.data();
76
56
        const A* __restrict a_end = a_pos + size;
77
78
252
        while (a_pos < a_end) {
79
196
            *c_pos = Op::apply(*a_pos, *b_pos);
80
196
            ++a_pos;
81
196
            ++b_pos;
82
196
            ++c_pos;
83
196
        }
84
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
71
913
                                        PaddedPODArray<UInt8>& c) {
72
913
        size_t size = a.size();
73
913
        const A* __restrict a_pos = a.data();
74
913
        const B* __restrict b_pos = b.data();
75
913
        UInt8* __restrict c_pos = c.data();
76
913
        const A* __restrict a_end = a_pos + size;
77
78
296k
        while (a_pos < a_end) {
79
295k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
295k
            ++a_pos;
81
295k
            ++b_pos;
82
295k
            ++c_pos;
83
295k
        }
84
913
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
326
                                        PaddedPODArray<UInt8>& c) {
72
326
        size_t size = a.size();
73
326
        const A* __restrict a_pos = a.data();
74
326
        const B* __restrict b_pos = b.data();
75
326
        UInt8* __restrict c_pos = c.data();
76
326
        const A* __restrict a_end = a_pos + size;
77
78
6.18k
        while (a_pos < a_end) {
79
5.85k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
5.85k
            ++a_pos;
81
5.85k
            ++b_pos;
82
5.85k
            ++c_pos;
83
5.85k
        }
84
326
    }
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
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
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
71
1.08k
                                        PaddedPODArray<UInt8>& c) {
72
1.08k
        size_t size = a.size();
73
1.08k
        const A* __restrict a_pos = a.data();
74
1.08k
        const B* __restrict b_pos = b.data();
75
1.08k
        UInt8* __restrict c_pos = c.data();
76
1.08k
        const A* __restrict a_end = a_pos + size;
77
78
2.62M
        while (a_pos < a_end) {
79
2.62M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
2.62M
            ++a_pos;
81
2.62M
            ++b_pos;
82
2.62M
            ++c_pos;
83
2.62M
        }
84
1.08k
    }
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
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
40
                                        PaddedPODArray<UInt8>& c) {
72
40
        size_t size = a.size();
73
40
        const A* __restrict a_pos = a.data();
74
40
        const B* __restrict b_pos = b.data();
75
40
        UInt8* __restrict c_pos = c.data();
76
40
        const A* __restrict a_end = a_pos + size;
77
78
324
        while (a_pos < a_end) {
79
284
            *c_pos = Op::apply(*a_pos, *b_pos);
80
284
            ++a_pos;
81
284
            ++b_pos;
82
284
            ++c_pos;
83
284
        }
84
40
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
112
                                        PaddedPODArray<UInt8>& c) {
72
112
        size_t size = a.size();
73
112
        const A* __restrict a_pos = a.data();
74
112
        const B* __restrict b_pos = b.data();
75
112
        UInt8* __restrict c_pos = c.data();
76
112
        const A* __restrict a_end = a_pos + size;
77
78
376
        while (a_pos < a_end) {
79
264
            *c_pos = Op::apply(*a_pos, *b_pos);
80
264
            ++a_pos;
81
264
            ++b_pos;
82
264
            ++c_pos;
83
264
        }
84
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
49
                                        PaddedPODArray<UInt8>& c) {
72
49
        size_t size = a.size();
73
49
        const A* __restrict a_pos = a.data();
74
49
        const B* __restrict b_pos = b.data();
75
49
        UInt8* __restrict c_pos = c.data();
76
49
        const A* __restrict a_end = a_pos + size;
77
78
271
        while (a_pos < a_end) {
79
222
            *c_pos = Op::apply(*a_pos, *b_pos);
80
222
            ++a_pos;
81
222
            ++b_pos;
82
222
            ++c_pos;
83
222
        }
84
49
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
64
                                        PaddedPODArray<UInt8>& c) {
72
64
        size_t size = a.size();
73
64
        const A* __restrict a_pos = a.data();
74
64
        const B* __restrict b_pos = b.data();
75
64
        UInt8* __restrict c_pos = c.data();
76
64
        const A* __restrict a_end = a_pos + size;
77
78
583
        while (a_pos < a_end) {
79
519
            *c_pos = Op::apply(*a_pos, *b_pos);
80
519
            ++a_pos;
81
519
            ++b_pos;
82
519
            ++c_pos;
83
519
        }
84
64
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
2
                                        PaddedPODArray<UInt8>& c) {
72
2
        size_t size = a.size();
73
2
        const A* __restrict a_pos = a.data();
74
2
        const B* __restrict b_pos = b.data();
75
2
        UInt8* __restrict c_pos = c.data();
76
2
        const A* __restrict a_end = a_pos + size;
77
78
6
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
2
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
32
                                        PaddedPODArray<UInt8>& c) {
72
32
        size_t size = a.size();
73
32
        const A* __restrict a_pos = a.data();
74
32
        const B* __restrict b_pos = b.data();
75
32
        UInt8* __restrict c_pos = c.data();
76
32
        const A* __restrict a_end = a_pos + size;
77
78
102
        while (a_pos < a_end) {
79
70
            *c_pos = Op::apply(*a_pos, *b_pos);
80
70
            ++a_pos;
81
70
            ++b_pos;
82
70
            ++c_pos;
83
70
        }
84
32
    }
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
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
7
                                        PaddedPODArray<UInt8>& c) {
72
7
        size_t size = a.size();
73
7
        const A* __restrict a_pos = a.data();
74
7
        const B* __restrict b_pos = b.data();
75
7
        UInt8* __restrict c_pos = c.data();
76
7
        const A* __restrict a_end = a_pos + size;
77
78
66
        while (a_pos < a_end) {
79
59
            *c_pos = Op::apply(*a_pos, *b_pos);
80
59
            ++a_pos;
81
59
            ++b_pos;
82
59
            ++c_pos;
83
59
        }
84
7
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
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
71
3
                                        PaddedPODArray<UInt8>& c) {
72
3
        size_t size = a.size();
73
3
        const A* __restrict a_pos = a.data();
74
3
        const B* __restrict b_pos = b.data();
75
3
        UInt8* __restrict c_pos = c.data();
76
3
        const A* __restrict a_end = a_pos + size;
77
78
7
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
9
                                        PaddedPODArray<UInt8>& c) {
72
9
        size_t size = a.size();
73
9
        const A* __restrict a_pos = a.data();
74
9
        const B* __restrict b_pos = b.data();
75
9
        UInt8* __restrict c_pos = c.data();
76
9
        const A* __restrict a_end = a_pos + size;
77
78
64
        while (a_pos < a_end) {
79
55
            *c_pos = Op::apply(*a_pos, *b_pos);
80
55
            ++a_pos;
81
55
            ++b_pos;
82
55
            ++c_pos;
83
55
        }
84
9
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
23
                                        PaddedPODArray<UInt8>& c) {
72
23
        size_t size = a.size();
73
23
        const A* __restrict a_pos = a.data();
74
23
        const B* __restrict b_pos = b.data();
75
23
        UInt8* __restrict c_pos = c.data();
76
23
        const A* __restrict a_end = a_pos + size;
77
78
66
        while (a_pos < a_end) {
79
43
            *c_pos = Op::apply(*a_pos, *b_pos);
80
43
            ++a_pos;
81
43
            ++b_pos;
82
43
            ++c_pos;
83
43
        }
84
23
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
71
95
                                        PaddedPODArray<UInt8>& c) {
72
95
        size_t size = a.size();
73
95
        const A* __restrict a_pos = a.data();
74
95
        const B* __restrict b_pos = b.data();
75
95
        UInt8* __restrict c_pos = c.data();
76
95
        const A* __restrict a_end = a_pos + size;
77
78
364
        while (a_pos < a_end) {
79
269
            *c_pos = Op::apply(*a_pos, *b_pos);
80
269
            ++a_pos;
81
269
            ++b_pos;
82
269
            ++c_pos;
83
269
        }
84
95
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
1.67k
                                        PaddedPODArray<UInt8>& c) {
72
1.67k
        size_t size = a.size();
73
1.67k
        const A* __restrict a_pos = a.data();
74
1.67k
        const B* __restrict b_pos = b.data();
75
1.67k
        UInt8* __restrict c_pos = c.data();
76
1.67k
        const A* __restrict a_end = a_pos + size;
77
78
3.23M
        while (a_pos < a_end) {
79
3.23M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
3.23M
            ++a_pos;
81
3.23M
            ++b_pos;
82
3.23M
            ++c_pos;
83
3.23M
        }
84
1.67k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
284
                                        PaddedPODArray<UInt8>& c) {
72
284
        size_t size = a.size();
73
284
        const A* __restrict a_pos = a.data();
74
284
        const B* __restrict b_pos = b.data();
75
284
        UInt8* __restrict c_pos = c.data();
76
284
        const A* __restrict a_end = a_pos + size;
77
78
916
        while (a_pos < a_end) {
79
632
            *c_pos = Op::apply(*a_pos, *b_pos);
80
632
            ++a_pos;
81
632
            ++b_pos;
82
632
            ++c_pos;
83
632
        }
84
284
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
152
                                        PaddedPODArray<UInt8>& c) {
72
152
        size_t size = a.size();
73
152
        const A* __restrict a_pos = a.data();
74
152
        const B* __restrict b_pos = b.data();
75
152
        UInt8* __restrict c_pos = c.data();
76
152
        const A* __restrict a_end = a_pos + size;
77
78
478
        while (a_pos < a_end) {
79
326
            *c_pos = Op::apply(*a_pos, *b_pos);
80
326
            ++a_pos;
81
326
            ++b_pos;
82
326
            ++c_pos;
83
326
        }
84
152
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
137
                                        PaddedPODArray<UInt8>& c) {
72
137
        size_t size = a.size();
73
137
        const A* __restrict a_pos = a.data();
74
137
        const B* __restrict b_pos = b.data();
75
137
        UInt8* __restrict c_pos = c.data();
76
137
        const A* __restrict a_end = a_pos + size;
77
78
450
        while (a_pos < a_end) {
79
313
            *c_pos = Op::apply(*a_pos, *b_pos);
80
313
            ++a_pos;
81
313
            ++b_pos;
82
313
            ++c_pos;
83
313
        }
84
137
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
173
                                        PaddedPODArray<UInt8>& c) {
72
173
        size_t size = a.size();
73
173
        const A* __restrict a_pos = a.data();
74
173
        const B* __restrict b_pos = b.data();
75
173
        UInt8* __restrict c_pos = c.data();
76
173
        const A* __restrict a_end = a_pos + size;
77
78
1.02k
        while (a_pos < a_end) {
79
851
            *c_pos = Op::apply(*a_pos, *b_pos);
80
851
            ++a_pos;
81
851
            ++b_pos;
82
851
            ++c_pos;
83
851
        }
84
173
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
215
                                        PaddedPODArray<UInt8>& c) {
72
215
        size_t size = a.size();
73
215
        const A* __restrict a_pos = a.data();
74
215
        const B* __restrict b_pos = b.data();
75
215
        UInt8* __restrict c_pos = c.data();
76
215
        const A* __restrict a_end = a_pos + size;
77
78
5.42k
        while (a_pos < a_end) {
79
5.21k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
5.21k
            ++a_pos;
81
5.21k
            ++b_pos;
82
5.21k
            ++c_pos;
83
5.21k
        }
84
215
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
162
                                        PaddedPODArray<UInt8>& c) {
72
162
        size_t size = a.size();
73
162
        const A* __restrict a_pos = a.data();
74
162
        const B* __restrict b_pos = b.data();
75
162
        UInt8* __restrict c_pos = c.data();
76
162
        const A* __restrict a_end = a_pos + size;
77
78
498
        while (a_pos < a_end) {
79
336
            *c_pos = Op::apply(*a_pos, *b_pos);
80
336
            ++a_pos;
81
336
            ++b_pos;
82
336
            ++c_pos;
83
336
        }
84
162
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
16
                                        PaddedPODArray<UInt8>& c) {
72
16
        size_t size = a.size();
73
16
        const A* __restrict a_pos = a.data();
74
16
        const B* __restrict b_pos = b.data();
75
16
        UInt8* __restrict c_pos = c.data();
76
16
        const A* __restrict a_end = a_pos + size;
77
78
32
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
16
                                        PaddedPODArray<UInt8>& c) {
72
16
        size_t size = a.size();
73
16
        const A* __restrict a_pos = a.data();
74
16
        const B* __restrict b_pos = b.data();
75
16
        UInt8* __restrict c_pos = c.data();
76
16
        const A* __restrict a_end = a_pos + size;
77
78
32
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
153
                                        PaddedPODArray<UInt8>& c) {
72
153
        size_t size = a.size();
73
153
        const A* __restrict a_pos = a.data();
74
153
        const B* __restrict b_pos = b.data();
75
153
        UInt8* __restrict c_pos = c.data();
76
153
        const A* __restrict a_end = a_pos + size;
77
78
499
        while (a_pos < a_end) {
79
346
            *c_pos = Op::apply(*a_pos, *b_pos);
80
346
            ++a_pos;
81
346
            ++b_pos;
82
346
            ++c_pos;
83
346
        }
84
153
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
152
                                        PaddedPODArray<UInt8>& c) {
72
152
        size_t size = a.size();
73
152
        const A* __restrict a_pos = a.data();
74
152
        const B* __restrict b_pos = b.data();
75
152
        UInt8* __restrict c_pos = c.data();
76
152
        const A* __restrict a_end = a_pos + size;
77
78
508
        while (a_pos < a_end) {
79
356
            *c_pos = Op::apply(*a_pos, *b_pos);
80
356
            ++a_pos;
81
356
            ++b_pos;
82
356
            ++c_pos;
83
356
        }
84
152
    }
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
71
399
                                        PaddedPODArray<UInt8>& c) {
72
399
        size_t size = a.size();
73
399
        const A* __restrict a_pos = a.data();
74
399
        const B* __restrict b_pos = b.data();
75
399
        UInt8* __restrict c_pos = c.data();
76
399
        const A* __restrict a_end = a_pos + size;
77
78
6.48k
        while (a_pos < a_end) {
79
6.09k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
6.09k
            ++a_pos;
81
6.09k
            ++b_pos;
82
6.09k
            ++c_pos;
83
6.09k
        }
84
399
    }
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
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
1
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
5
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
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
71
10
                                        PaddedPODArray<UInt8>& c) {
72
10
        size_t size = a.size();
73
10
        const A* __restrict a_pos = a.data();
74
10
        const B* __restrict b_pos = b.data();
75
10
        UInt8* __restrict c_pos = c.data();
76
10
        const A* __restrict a_end = a_pos + size;
77
78
33
        while (a_pos < a_end) {
79
23
            *c_pos = Op::apply(*a_pos, *b_pos);
80
23
            ++a_pos;
81
23
            ++b_pos;
82
23
            ++c_pos;
83
23
        }
84
10
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
31
                                        PaddedPODArray<UInt8>& c) {
72
31
        size_t size = a.size();
73
31
        const A* __restrict a_pos = a.data();
74
31
        const B* __restrict b_pos = b.data();
75
31
        UInt8* __restrict c_pos = c.data();
76
31
        const A* __restrict a_end = a_pos + size;
77
78
69
        while (a_pos < a_end) {
79
38
            *c_pos = Op::apply(*a_pos, *b_pos);
80
38
            ++a_pos;
81
38
            ++b_pos;
82
38
            ++c_pos;
83
38
        }
84
31
    }
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
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
85
86
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
87
100k
                                          PaddedPODArray<UInt8>& c) {
88
100k
        size_t size = a.size();
89
100k
        const A* __restrict a_pos = a.data();
90
100k
        UInt8* __restrict c_pos = c.data();
91
100k
        const A* __restrict a_end = a_pos + size;
92
93
39.1M
        while (a_pos < a_end) {
94
39.0M
            *c_pos = Op::apply(*a_pos, b);
95
39.0M
            ++a_pos;
96
39.0M
            ++c_pos;
97
39.0M
        }
98
100k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
87
24
                                          PaddedPODArray<UInt8>& c) {
88
24
        size_t size = a.size();
89
24
        const A* __restrict a_pos = a.data();
90
24
        UInt8* __restrict c_pos = c.data();
91
24
        const A* __restrict a_end = a_pos + size;
92
93
164
        while (a_pos < a_end) {
94
140
            *c_pos = Op::apply(*a_pos, b);
95
140
            ++a_pos;
96
140
            ++c_pos;
97
140
        }
98
24
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
673
                                          PaddedPODArray<UInt8>& c) {
88
673
        size_t size = a.size();
89
673
        const A* __restrict a_pos = a.data();
90
673
        UInt8* __restrict c_pos = c.data();
91
673
        const A* __restrict a_end = a_pos + size;
92
93
205k
        while (a_pos < a_end) {
94
204k
            *c_pos = Op::apply(*a_pos, b);
95
204k
            ++a_pos;
96
204k
            ++c_pos;
97
204k
        }
98
673
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
180
                                          PaddedPODArray<UInt8>& c) {
88
180
        size_t size = a.size();
89
180
        const A* __restrict a_pos = a.data();
90
180
        UInt8* __restrict c_pos = c.data();
91
180
        const A* __restrict a_end = a_pos + size;
92
93
100k
        while (a_pos < a_end) {
94
100k
            *c_pos = Op::apply(*a_pos, b);
95
100k
            ++a_pos;
96
100k
            ++c_pos;
97
100k
        }
98
180
    }
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
87
4.82k
                                          PaddedPODArray<UInt8>& c) {
88
4.82k
        size_t size = a.size();
89
4.82k
        const A* __restrict a_pos = a.data();
90
4.82k
        UInt8* __restrict c_pos = c.data();
91
4.82k
        const A* __restrict a_end = a_pos + size;
92
93
8.87M
        while (a_pos < a_end) {
94
8.87M
            *c_pos = Op::apply(*a_pos, b);
95
8.87M
            ++a_pos;
96
8.87M
            ++c_pos;
97
8.87M
        }
98
4.82k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
357
                                          PaddedPODArray<UInt8>& c) {
88
357
        size_t size = a.size();
89
357
        const A* __restrict a_pos = a.data();
90
357
        UInt8* __restrict c_pos = c.data();
91
357
        const A* __restrict a_end = a_pos + size;
92
93
101k
        while (a_pos < a_end) {
94
101k
            *c_pos = Op::apply(*a_pos, b);
95
101k
            ++a_pos;
96
101k
            ++c_pos;
97
101k
        }
98
357
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
56.0k
                                          PaddedPODArray<UInt8>& c) {
88
56.0k
        size_t size = a.size();
89
56.0k
        const A* __restrict a_pos = a.data();
90
56.0k
        UInt8* __restrict c_pos = c.data();
91
56.0k
        const A* __restrict a_end = a_pos + size;
92
93
346k
        while (a_pos < a_end) {
94
290k
            *c_pos = Op::apply(*a_pos, b);
95
290k
            ++a_pos;
96
290k
            ++c_pos;
97
290k
        }
98
56.0k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
2.65k
                                          PaddedPODArray<UInt8>& c) {
88
2.65k
        size_t size = a.size();
89
2.65k
        const A* __restrict a_pos = a.data();
90
2.65k
        UInt8* __restrict c_pos = c.data();
91
2.65k
        const A* __restrict a_end = a_pos + size;
92
93
626k
        while (a_pos < a_end) {
94
623k
            *c_pos = Op::apply(*a_pos, b);
95
623k
            ++a_pos;
96
623k
            ++c_pos;
97
623k
        }
98
2.65k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
43
                                          PaddedPODArray<UInt8>& c) {
88
43
        size_t size = a.size();
89
43
        const A* __restrict a_pos = a.data();
90
43
        UInt8* __restrict c_pos = c.data();
91
43
        const A* __restrict a_end = a_pos + size;
92
93
100k
        while (a_pos < a_end) {
94
100k
            *c_pos = Op::apply(*a_pos, b);
95
100k
            ++a_pos;
96
100k
            ++c_pos;
97
100k
        }
98
43
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
15
                                          PaddedPODArray<UInt8>& c) {
88
15
        size_t size = a.size();
89
15
        const A* __restrict a_pos = a.data();
90
15
        UInt8* __restrict c_pos = c.data();
91
15
        const A* __restrict a_end = a_pos + size;
92
93
129
        while (a_pos < a_end) {
94
114
            *c_pos = Op::apply(*a_pos, b);
95
114
            ++a_pos;
96
114
            ++c_pos;
97
114
        }
98
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
6
                                          PaddedPODArray<UInt8>& c) {
88
6
        size_t size = a.size();
89
6
        const A* __restrict a_pos = a.data();
90
6
        UInt8* __restrict c_pos = c.data();
91
6
        const A* __restrict a_end = a_pos + size;
92
93
12
        while (a_pos < a_end) {
94
6
            *c_pos = Op::apply(*a_pos, b);
95
6
            ++a_pos;
96
6
            ++c_pos;
97
6
        }
98
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
587
                                          PaddedPODArray<UInt8>& c) {
88
587
        size_t size = a.size();
89
587
        const A* __restrict a_pos = a.data();
90
587
        UInt8* __restrict c_pos = c.data();
91
587
        const A* __restrict a_end = a_pos + size;
92
93
713k
        while (a_pos < a_end) {
94
712k
            *c_pos = Op::apply(*a_pos, b);
95
712k
            ++a_pos;
96
712k
            ++c_pos;
97
712k
        }
98
587
    }
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
87
31
                                          PaddedPODArray<UInt8>& c) {
88
31
        size_t size = a.size();
89
31
        const A* __restrict a_pos = a.data();
90
31
        UInt8* __restrict c_pos = c.data();
91
31
        const A* __restrict a_end = a_pos + size;
92
93
82
        while (a_pos < a_end) {
94
51
            *c_pos = Op::apply(*a_pos, b);
95
51
            ++a_pos;
96
51
            ++c_pos;
97
51
        }
98
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
28
                                          PaddedPODArray<UInt8>& c) {
88
28
        size_t size = a.size();
89
28
        const A* __restrict a_pos = a.data();
90
28
        UInt8* __restrict c_pos = c.data();
91
28
        const A* __restrict a_end = a_pos + size;
92
93
78
        while (a_pos < a_end) {
94
50
            *c_pos = Op::apply(*a_pos, b);
95
50
            ++a_pos;
96
50
            ++c_pos;
97
50
        }
98
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
220
                                          PaddedPODArray<UInt8>& c) {
88
220
        size_t size = a.size();
89
220
        const A* __restrict a_pos = a.data();
90
220
        UInt8* __restrict c_pos = c.data();
91
220
        const A* __restrict a_end = a_pos + size;
92
93
1.83k
        while (a_pos < a_end) {
94
1.61k
            *c_pos = Op::apply(*a_pos, b);
95
1.61k
            ++a_pos;
96
1.61k
            ++c_pos;
97
1.61k
        }
98
220
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
590
                                          PaddedPODArray<UInt8>& c) {
88
590
        size_t size = a.size();
89
590
        const A* __restrict a_pos = a.data();
90
590
        UInt8* __restrict c_pos = c.data();
91
590
        const A* __restrict a_end = a_pos + size;
92
93
3.72k
        while (a_pos < a_end) {
94
3.13k
            *c_pos = Op::apply(*a_pos, b);
95
3.13k
            ++a_pos;
96
3.13k
            ++c_pos;
97
3.13k
        }
98
590
    }
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
87
28
                                          PaddedPODArray<UInt8>& c) {
88
28
        size_t size = a.size();
89
28
        const A* __restrict a_pos = a.data();
90
28
        UInt8* __restrict c_pos = c.data();
91
28
        const A* __restrict a_end = a_pos + size;
92
93
70
        while (a_pos < a_end) {
94
42
            *c_pos = Op::apply(*a_pos, b);
95
42
            ++a_pos;
96
42
            ++c_pos;
97
42
        }
98
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
40
                                          PaddedPODArray<UInt8>& c) {
88
40
        size_t size = a.size();
89
40
        const A* __restrict a_pos = a.data();
90
40
        UInt8* __restrict c_pos = c.data();
91
40
        const A* __restrict a_end = a_pos + size;
92
93
282
        while (a_pos < a_end) {
94
242
            *c_pos = Op::apply(*a_pos, b);
95
242
            ++a_pos;
96
242
            ++c_pos;
97
242
        }
98
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
87
41
                                          PaddedPODArray<UInt8>& c) {
88
41
        size_t size = a.size();
89
41
        const A* __restrict a_pos = a.data();
90
41
        UInt8* __restrict c_pos = c.data();
91
41
        const A* __restrict a_end = a_pos + size;
92
93
149
        while (a_pos < a_end) {
94
108
            *c_pos = Op::apply(*a_pos, b);
95
108
            ++a_pos;
96
108
            ++c_pos;
97
108
        }
98
41
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
398
                                          PaddedPODArray<UInt8>& c) {
88
398
        size_t size = a.size();
89
398
        const A* __restrict a_pos = a.data();
90
398
        UInt8* __restrict c_pos = c.data();
91
398
        const A* __restrict a_end = a_pos + size;
92
93
2.10M
        while (a_pos < a_end) {
94
2.10M
            *c_pos = Op::apply(*a_pos, b);
95
2.10M
            ++a_pos;
96
2.10M
            ++c_pos;
97
2.10M
        }
98
398
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
2
                                          PaddedPODArray<UInt8>& c) {
88
2
        size_t size = a.size();
89
2
        const A* __restrict a_pos = a.data();
90
2
        UInt8* __restrict c_pos = c.data();
91
2
        const A* __restrict a_end = a_pos + size;
92
93
6
        while (a_pos < a_end) {
94
4
            *c_pos = Op::apply(*a_pos, b);
95
4
            ++a_pos;
96
4
            ++c_pos;
97
4
        }
98
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
59
                                          PaddedPODArray<UInt8>& c) {
88
59
        size_t size = a.size();
89
59
        const A* __restrict a_pos = a.data();
90
59
        UInt8* __restrict c_pos = c.data();
91
59
        const A* __restrict a_end = a_pos + size;
92
93
269
        while (a_pos < a_end) {
94
210
            *c_pos = Op::apply(*a_pos, b);
95
210
            ++a_pos;
96
210
            ++c_pos;
97
210
        }
98
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
87
1
                                          PaddedPODArray<UInt8>& c) {
88
1
        size_t size = a.size();
89
1
        const A* __restrict a_pos = a.data();
90
1
        UInt8* __restrict c_pos = c.data();
91
1
        const A* __restrict a_end = a_pos + size;
92
93
8
        while (a_pos < a_end) {
94
7
            *c_pos = Op::apply(*a_pos, b);
95
7
            ++a_pos;
96
7
            ++c_pos;
97
7
        }
98
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.41k
                                          PaddedPODArray<UInt8>& c) {
88
1.41k
        size_t size = a.size();
89
1.41k
        const A* __restrict a_pos = a.data();
90
1.41k
        UInt8* __restrict c_pos = c.data();
91
1.41k
        const A* __restrict a_end = a_pos + size;
92
93
7.31k
        while (a_pos < a_end) {
94
5.90k
            *c_pos = Op::apply(*a_pos, b);
95
5.90k
            ++a_pos;
96
5.90k
            ++c_pos;
97
5.90k
        }
98
1.41k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.98k
                                          PaddedPODArray<UInt8>& c) {
88
1.98k
        size_t size = a.size();
89
1.98k
        const A* __restrict a_pos = a.data();
90
1.98k
        UInt8* __restrict c_pos = c.data();
91
1.98k
        const A* __restrict a_end = a_pos + size;
92
93
5.50k
        while (a_pos < a_end) {
94
3.52k
            *c_pos = Op::apply(*a_pos, b);
95
3.52k
            ++a_pos;
96
3.52k
            ++c_pos;
97
3.52k
        }
98
1.98k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.44k
                                          PaddedPODArray<UInt8>& c) {
88
1.44k
        size_t size = a.size();
89
1.44k
        const A* __restrict a_pos = a.data();
90
1.44k
        UInt8* __restrict c_pos = c.data();
91
1.44k
        const A* __restrict a_end = a_pos + size;
92
93
6.25k
        while (a_pos < a_end) {
94
4.80k
            *c_pos = Op::apply(*a_pos, b);
95
4.80k
            ++a_pos;
96
4.80k
            ++c_pos;
97
4.80k
        }
98
1.44k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
254
                                          PaddedPODArray<UInt8>& c) {
88
254
        size_t size = a.size();
89
254
        const A* __restrict a_pos = a.data();
90
254
        UInt8* __restrict c_pos = c.data();
91
254
        const A* __restrict a_end = a_pos + size;
92
93
1.19k
        while (a_pos < a_end) {
94
938
            *c_pos = Op::apply(*a_pos, b);
95
938
            ++a_pos;
96
938
            ++c_pos;
97
938
        }
98
254
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
9.72k
                                          PaddedPODArray<UInt8>& c) {
88
9.72k
        size_t size = a.size();
89
9.72k
        const A* __restrict a_pos = a.data();
90
9.72k
        UInt8* __restrict c_pos = c.data();
91
9.72k
        const A* __restrict a_end = a_pos + size;
92
93
5.27M
        while (a_pos < a_end) {
94
5.26M
            *c_pos = Op::apply(*a_pos, b);
95
5.26M
            ++a_pos;
96
5.26M
            ++c_pos;
97
5.26M
        }
98
9.72k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
4.53k
                                          PaddedPODArray<UInt8>& c) {
88
4.53k
        size_t size = a.size();
89
4.53k
        const A* __restrict a_pos = a.data();
90
4.53k
        UInt8* __restrict c_pos = c.data();
91
4.53k
        const A* __restrict a_end = a_pos + size;
92
93
952k
        while (a_pos < a_end) {
94
948k
            *c_pos = Op::apply(*a_pos, b);
95
948k
            ++a_pos;
96
948k
            ++c_pos;
97
948k
        }
98
4.53k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.14k
                                          PaddedPODArray<UInt8>& c) {
88
1.14k
        size_t size = a.size();
89
1.14k
        const A* __restrict a_pos = a.data();
90
1.14k
        UInt8* __restrict c_pos = c.data();
91
1.14k
        const A* __restrict a_end = a_pos + size;
92
93
97.7k
        while (a_pos < a_end) {
94
96.5k
            *c_pos = Op::apply(*a_pos, b);
95
96.5k
            ++a_pos;
96
96.5k
            ++c_pos;
97
96.5k
        }
98
1.14k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.03k
                                          PaddedPODArray<UInt8>& c) {
88
1.03k
        size_t size = a.size();
89
1.03k
        const A* __restrict a_pos = a.data();
90
1.03k
        UInt8* __restrict c_pos = c.data();
91
1.03k
        const A* __restrict a_end = a_pos + size;
92
93
11.6k
        while (a_pos < a_end) {
94
10.6k
            *c_pos = Op::apply(*a_pos, b);
95
10.6k
            ++a_pos;
96
10.6k
            ++c_pos;
97
10.6k
        }
98
1.03k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
269
                                          PaddedPODArray<UInt8>& c) {
88
269
        size_t size = a.size();
89
269
        const A* __restrict a_pos = a.data();
90
269
        UInt8* __restrict c_pos = c.data();
91
269
        const A* __restrict a_end = a_pos + size;
92
93
1.90k
        while (a_pos < a_end) {
94
1.63k
            *c_pos = Op::apply(*a_pos, b);
95
1.63k
            ++a_pos;
96
1.63k
            ++c_pos;
97
1.63k
        }
98
269
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
89
                                          PaddedPODArray<UInt8>& c) {
88
89
        size_t size = a.size();
89
89
        const A* __restrict a_pos = a.data();
90
89
        UInt8* __restrict c_pos = c.data();
91
89
        const A* __restrict a_end = a_pos + size;
92
93
86.2k
        while (a_pos < a_end) {
94
86.1k
            *c_pos = Op::apply(*a_pos, b);
95
86.1k
            ++a_pos;
96
86.1k
            ++c_pos;
97
86.1k
        }
98
89
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
3
                                          PaddedPODArray<UInt8>& c) {
88
3
        size_t size = a.size();
89
3
        const A* __restrict a_pos = a.data();
90
3
        UInt8* __restrict c_pos = c.data();
91
3
        const A* __restrict a_end = a_pos + size;
92
93
31
        while (a_pos < a_end) {
94
28
            *c_pos = Op::apply(*a_pos, b);
95
28
            ++a_pos;
96
28
            ++c_pos;
97
28
        }
98
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
2
                                          PaddedPODArray<UInt8>& c) {
88
2
        size_t size = a.size();
89
2
        const A* __restrict a_pos = a.data();
90
2
        UInt8* __restrict c_pos = c.data();
91
2
        const A* __restrict a_end = a_pos + size;
92
93
22
        while (a_pos < a_end) {
94
20
            *c_pos = Op::apply(*a_pos, b);
95
20
            ++a_pos;
96
20
            ++c_pos;
97
20
        }
98
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
87
200
                                          PaddedPODArray<UInt8>& c) {
88
200
        size_t size = a.size();
89
200
        const A* __restrict a_pos = a.data();
90
200
        UInt8* __restrict c_pos = c.data();
91
200
        const A* __restrict a_end = a_pos + size;
92
93
2.61k
        while (a_pos < a_end) {
94
2.41k
            *c_pos = Op::apply(*a_pos, b);
95
2.41k
            ++a_pos;
96
2.41k
            ++c_pos;
97
2.41k
        }
98
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
513
                                          PaddedPODArray<UInt8>& c) {
88
513
        size_t size = a.size();
89
513
        const A* __restrict a_pos = a.data();
90
513
        UInt8* __restrict c_pos = c.data();
91
513
        const A* __restrict a_end = a_pos + size;
92
93
7.45k
        while (a_pos < a_end) {
94
6.93k
            *c_pos = Op::apply(*a_pos, b);
95
6.93k
            ++a_pos;
96
6.93k
            ++c_pos;
97
6.93k
        }
98
513
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
202
                                          PaddedPODArray<UInt8>& c) {
88
202
        size_t size = a.size();
89
202
        const A* __restrict a_pos = a.data();
90
202
        UInt8* __restrict c_pos = c.data();
91
202
        const A* __restrict a_end = a_pos + size;
92
93
607k
        while (a_pos < a_end) {
94
607k
            *c_pos = Op::apply(*a_pos, b);
95
607k
            ++a_pos;
96
607k
            ++c_pos;
97
607k
        }
98
202
    }
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
87
26
                                          PaddedPODArray<UInt8>& c) {
88
26
        size_t size = a.size();
89
26
        const A* __restrict a_pos = a.data();
90
26
        UInt8* __restrict c_pos = c.data();
91
26
        const A* __restrict a_end = a_pos + size;
92
93
130k
        while (a_pos < a_end) {
94
130k
            *c_pos = Op::apply(*a_pos, b);
95
130k
            ++a_pos;
96
130k
            ++c_pos;
97
130k
        }
98
26
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
87
29
                                          PaddedPODArray<UInt8>& c) {
88
29
        size_t size = a.size();
89
29
        const A* __restrict a_pos = a.data();
90
29
        UInt8* __restrict c_pos = c.data();
91
29
        const A* __restrict a_end = a_pos + size;
92
93
142k
        while (a_pos < a_end) {
94
141k
            *c_pos = Op::apply(*a_pos, b);
95
141k
            ++a_pos;
96
141k
            ++c_pos;
97
141k
        }
98
29
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
511
                                          PaddedPODArray<UInt8>& c) {
88
511
        size_t size = a.size();
89
511
        const A* __restrict a_pos = a.data();
90
511
        UInt8* __restrict c_pos = c.data();
91
511
        const A* __restrict a_end = a_pos + size;
92
93
2.26M
        while (a_pos < a_end) {
94
2.26M
            *c_pos = Op::apply(*a_pos, b);
95
2.26M
            ++a_pos;
96
2.26M
            ++c_pos;
97
2.26M
        }
98
511
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
159
                                          PaddedPODArray<UInt8>& c) {
88
159
        size_t size = a.size();
89
159
        const A* __restrict a_pos = a.data();
90
159
        UInt8* __restrict c_pos = c.data();
91
159
        const A* __restrict a_end = a_pos + size;
92
93
626k
        while (a_pos < a_end) {
94
626k
            *c_pos = Op::apply(*a_pos, b);
95
626k
            ++a_pos;
96
626k
            ++c_pos;
97
626k
        }
98
159
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
136
                                          PaddedPODArray<UInt8>& c) {
88
136
        size_t size = a.size();
89
136
        const A* __restrict a_pos = a.data();
90
136
        UInt8* __restrict c_pos = c.data();
91
136
        const A* __restrict a_end = a_pos + size;
92
93
511
        while (a_pos < a_end) {
94
375
            *c_pos = Op::apply(*a_pos, b);
95
375
            ++a_pos;
96
375
            ++c_pos;
97
375
        }
98
136
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
45
                                          PaddedPODArray<UInt8>& c) {
88
45
        size_t size = a.size();
89
45
        const A* __restrict a_pos = a.data();
90
45
        UInt8* __restrict c_pos = c.data();
91
45
        const A* __restrict a_end = a_pos + size;
92
93
114
        while (a_pos < a_end) {
94
69
            *c_pos = Op::apply(*a_pos, b);
95
69
            ++a_pos;
96
69
            ++c_pos;
97
69
        }
98
45
    }
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
87
56
                                          PaddedPODArray<UInt8>& c) {
88
56
        size_t size = a.size();
89
56
        const A* __restrict a_pos = a.data();
90
56
        UInt8* __restrict c_pos = c.data();
91
56
        const A* __restrict a_end = a_pos + size;
92
93
160k
        while (a_pos < a_end) {
94
160k
            *c_pos = Op::apply(*a_pos, b);
95
160k
            ++a_pos;
96
160k
            ++c_pos;
97
160k
        }
98
56
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
58
                                          PaddedPODArray<UInt8>& c) {
88
58
        size_t size = a.size();
89
58
        const A* __restrict a_pos = a.data();
90
58
        UInt8* __restrict c_pos = c.data();
91
58
        const A* __restrict a_end = a_pos + size;
92
93
110k
        while (a_pos < a_end) {
94
110k
            *c_pos = Op::apply(*a_pos, b);
95
110k
            ++a_pos;
96
110k
            ++c_pos;
97
110k
        }
98
58
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
50
                                          PaddedPODArray<UInt8>& c) {
88
50
        size_t size = a.size();
89
50
        const A* __restrict a_pos = a.data();
90
50
        UInt8* __restrict c_pos = c.data();
91
50
        const A* __restrict a_end = a_pos + size;
92
93
66.9k
        while (a_pos < a_end) {
94
66.8k
            *c_pos = Op::apply(*a_pos, b);
95
66.8k
            ++a_pos;
96
66.8k
            ++c_pos;
97
66.8k
        }
98
50
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
64
                                          PaddedPODArray<UInt8>& c) {
88
64
        size_t size = a.size();
89
64
        const A* __restrict a_pos = a.data();
90
64
        UInt8* __restrict c_pos = c.data();
91
64
        const A* __restrict a_end = a_pos + size;
92
93
107k
        while (a_pos < a_end) {
94
107k
            *c_pos = Op::apply(*a_pos, b);
95
107k
            ++a_pos;
96
107k
            ++c_pos;
97
107k
        }
98
64
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.99k
                                          PaddedPODArray<UInt8>& c) {
88
1.99k
        size_t size = a.size();
89
1.99k
        const A* __restrict a_pos = a.data();
90
1.99k
        UInt8* __restrict c_pos = c.data();
91
1.99k
        const A* __restrict a_end = a_pos + size;
92
93
4.90M
        while (a_pos < a_end) {
94
4.89M
            *c_pos = Op::apply(*a_pos, b);
95
4.89M
            ++a_pos;
96
4.89M
            ++c_pos;
97
4.89M
        }
98
1.99k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
6.99k
                                          PaddedPODArray<UInt8>& c) {
88
6.99k
        size_t size = a.size();
89
6.99k
        const A* __restrict a_pos = a.data();
90
6.99k
        UInt8* __restrict c_pos = c.data();
91
6.99k
        const A* __restrict a_end = a_pos + size;
92
93
8.87M
        while (a_pos < a_end) {
94
8.87M
            *c_pos = Op::apply(*a_pos, b);
95
8.87M
            ++a_pos;
96
8.87M
            ++c_pos;
97
8.87M
        }
98
6.99k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
221
                                          PaddedPODArray<UInt8>& c) {
88
221
        size_t size = a.size();
89
221
        const A* __restrict a_pos = a.data();
90
221
        UInt8* __restrict c_pos = c.data();
91
221
        const A* __restrict a_end = a_pos + size;
92
93
983
        while (a_pos < a_end) {
94
762
            *c_pos = Op::apply(*a_pos, b);
95
762
            ++a_pos;
96
762
            ++c_pos;
97
762
        }
98
221
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
189
                                          PaddedPODArray<UInt8>& c) {
88
189
        size_t size = a.size();
89
189
        const A* __restrict a_pos = a.data();
90
189
        UInt8* __restrict c_pos = c.data();
91
189
        const A* __restrict a_end = a_pos + size;
92
93
2.91k
        while (a_pos < a_end) {
94
2.73k
            *c_pos = Op::apply(*a_pos, b);
95
2.73k
            ++a_pos;
96
2.73k
            ++c_pos;
97
2.73k
        }
98
189
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
24
                                          PaddedPODArray<UInt8>& c) {
88
24
        size_t size = a.size();
89
24
        const A* __restrict a_pos = a.data();
90
24
        UInt8* __restrict c_pos = c.data();
91
24
        const A* __restrict a_end = a_pos + size;
92
93
120k
        while (a_pos < a_end) {
94
120k
            *c_pos = Op::apply(*a_pos, b);
95
120k
            ++a_pos;
96
120k
            ++c_pos;
97
120k
        }
98
24
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
30
                                          PaddedPODArray<UInt8>& c) {
88
30
        size_t size = a.size();
89
30
        const A* __restrict a_pos = a.data();
90
30
        UInt8* __restrict c_pos = c.data();
91
30
        const A* __restrict a_end = a_pos + size;
92
93
143k
        while (a_pos < a_end) {
94
143k
            *c_pos = Op::apply(*a_pos, b);
95
143k
            ++a_pos;
96
143k
            ++c_pos;
97
143k
        }
98
30
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
10
                                          PaddedPODArray<UInt8>& c) {
88
10
        size_t size = a.size();
89
10
        const A* __restrict a_pos = a.data();
90
10
        UInt8* __restrict c_pos = c.data();
91
10
        const A* __restrict a_end = a_pos + size;
92
93
110
        while (a_pos < a_end) {
94
100
            *c_pos = Op::apply(*a_pos, b);
95
100
            ++a_pos;
96
100
            ++c_pos;
97
100
        }
98
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
10
                                          PaddedPODArray<UInt8>& c) {
88
10
        size_t size = a.size();
89
10
        const A* __restrict a_pos = a.data();
90
10
        UInt8* __restrict c_pos = c.data();
91
10
        const A* __restrict a_end = a_pos + size;
92
93
110
        while (a_pos < a_end) {
94
100
            *c_pos = Op::apply(*a_pos, b);
95
100
            ++a_pos;
96
100
            ++c_pos;
97
100
        }
98
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
87
4
                                          PaddedPODArray<UInt8>& c) {
88
4
        size_t size = a.size();
89
4
        const A* __restrict a_pos = a.data();
90
4
        UInt8* __restrict c_pos = c.data();
91
4
        const A* __restrict a_end = a_pos + size;
92
93
10
        while (a_pos < a_end) {
94
6
            *c_pos = Op::apply(*a_pos, b);
95
6
            ++a_pos;
96
6
            ++c_pos;
97
6
        }
98
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
144
                                          PaddedPODArray<UInt8>& c) {
88
144
        size_t size = a.size();
89
144
        const A* __restrict a_pos = a.data();
90
144
        UInt8* __restrict c_pos = c.data();
91
144
        const A* __restrict a_end = a_pos + size;
92
93
681k
        while (a_pos < a_end) {
94
681k
            *c_pos = Op::apply(*a_pos, b);
95
681k
            ++a_pos;
96
681k
            ++c_pos;
97
681k
        }
98
144
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
116
                                          PaddedPODArray<UInt8>& c) {
88
116
        size_t size = a.size();
89
116
        const A* __restrict a_pos = a.data();
90
116
        UInt8* __restrict c_pos = c.data();
91
116
        const A* __restrict a_end = a_pos + size;
92
93
600k
        while (a_pos < a_end) {
94
600k
            *c_pos = Op::apply(*a_pos, b);
95
600k
            ++a_pos;
96
600k
            ++c_pos;
97
600k
        }
98
116
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
99
100
34.9k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
34.9k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
34.9k
    }
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
100
312
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
312
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
312
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
48
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
27.4k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
27.4k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
27.4k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
1.02k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
1.02k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
1.02k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
16
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
556
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
556
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
556
    }
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
100
246
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
246
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
246
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
240
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
240
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
240
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
3.69k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
3.69k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
3.69k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
519
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
519
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
519
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
47
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
47
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
47
    }
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
100
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
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
100
264
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
264
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
264
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
191
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
191
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
191
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
67
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
67
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
67
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
68
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
68
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
68
    }
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
100
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
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
100
174
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
174
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
174
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
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
100
1
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
1
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
103
};
104
105
/// Generic version, implemented for columns of same type.
106
template <typename Op>
107
struct GenericComparisonImpl {
108
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
11
        }
112
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
6
        }
112
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
1
        }
112
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
1
        }
112
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
3
        }
112
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
113
114
129
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
129
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
418k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
418k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
418k
        }
119
129
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
18
        }
119
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
54
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
54
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
270k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
270k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
270k
        }
119
54
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
38
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
38
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
148k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
148k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
148k
        }
119
38
    }
120
121
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
122
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
123
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
124
};
125
126
template <typename Op>
127
struct StringComparisonImpl {
128
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
129
                                                      const ColumnString::Offsets& a_offsets,
130
                                                      const ColumnString::Chars& b_data,
131
                                                      const ColumnString::Offsets& b_offsets,
132
450
                                                      PaddedPODArray<UInt8>& c) {
133
450
        size_t size = a_offsets.size();
134
450
        ColumnString::Offset prev_a_offset = 0;
135
450
        ColumnString::Offset prev_b_offset = 0;
136
450
        const auto* a_pos = a_data.data();
137
450
        const auto* b_pos = b_data.data();
138
139
1.62k
        for (size_t i = 0; i < size; ++i) {
140
1.17k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
1.17k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
1.17k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
1.17k
                             0);
144
145
1.17k
            prev_a_offset = a_offsets[i];
146
1.17k
            prev_b_offset = b_offsets[i];
147
1.17k
        }
148
450
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
2
                                                      PaddedPODArray<UInt8>& c) {
133
2
        size_t size = a_offsets.size();
134
2
        ColumnString::Offset prev_a_offset = 0;
135
2
        ColumnString::Offset prev_b_offset = 0;
136
2
        const auto* a_pos = a_data.data();
137
2
        const auto* b_pos = b_data.data();
138
139
49
        for (size_t i = 0; i < size; ++i) {
140
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
47
                             0);
144
145
47
            prev_a_offset = a_offsets[i];
146
47
            prev_b_offset = b_offsets[i];
147
47
        }
148
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
36
                                                      PaddedPODArray<UInt8>& c) {
133
36
        size_t size = a_offsets.size();
134
36
        ColumnString::Offset prev_a_offset = 0;
135
36
        ColumnString::Offset prev_b_offset = 0;
136
36
        const auto* a_pos = a_data.data();
137
36
        const auto* b_pos = b_data.data();
138
139
230
        for (size_t i = 0; i < size; ++i) {
140
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
194
                             0);
144
145
194
            prev_a_offset = a_offsets[i];
146
194
            prev_b_offset = b_offsets[i];
147
194
        }
148
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
412
                                                      PaddedPODArray<UInt8>& c) {
133
412
        size_t size = a_offsets.size();
134
412
        ColumnString::Offset prev_a_offset = 0;
135
412
        ColumnString::Offset prev_b_offset = 0;
136
412
        const auto* a_pos = a_data.data();
137
412
        const auto* b_pos = b_data.data();
138
139
1.34k
        for (size_t i = 0; i < size; ++i) {
140
934
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
934
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
934
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
934
                             0);
144
145
934
            prev_a_offset = a_offsets[i];
146
934
            prev_b_offset = b_offsets[i];
147
934
        }
148
412
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
149
150
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
151
                                                 const ColumnString::Offsets& a_offsets,
152
                                                 const ColumnString::Chars& b_data,
153
                                                 ColumnString::Offset b_size,
154
833
                                                 PaddedPODArray<UInt8>& c) {
155
833
        size_t size = a_offsets.size();
156
833
        ColumnString::Offset prev_a_offset = 0;
157
833
        const auto* a_pos = a_data.data();
158
833
        const auto* b_pos = b_data.data();
159
160
1.64M
        for (size_t i = 0; i < size; ++i) {
161
1.64M
            c[i] = Op::apply(
162
1.64M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
1.64M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
1.64M
                    0);
165
166
1.64M
            prev_a_offset = a_offsets[i];
167
1.64M
        }
168
833
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
188
                                                 PaddedPODArray<UInt8>& c) {
155
188
        size_t size = a_offsets.size();
156
188
        ColumnString::Offset prev_a_offset = 0;
157
188
        const auto* a_pos = a_data.data();
158
188
        const auto* b_pos = b_data.data();
159
160
597k
        for (size_t i = 0; i < size; ++i) {
161
596k
            c[i] = Op::apply(
162
596k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
596k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
596k
                    0);
165
166
596k
            prev_a_offset = a_offsets[i];
167
596k
        }
168
188
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
96
                                                 PaddedPODArray<UInt8>& c) {
155
96
        size_t size = a_offsets.size();
156
96
        ColumnString::Offset prev_a_offset = 0;
157
96
        const auto* a_pos = a_data.data();
158
96
        const auto* b_pos = b_data.data();
159
160
150k
        for (size_t i = 0; i < size; ++i) {
161
150k
            c[i] = Op::apply(
162
150k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
150k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
150k
                    0);
165
166
150k
            prev_a_offset = a_offsets[i];
167
150k
        }
168
96
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
295
                                                 PaddedPODArray<UInt8>& c) {
155
295
        size_t size = a_offsets.size();
156
295
        ColumnString::Offset prev_a_offset = 0;
157
295
        const auto* a_pos = a_data.data();
158
295
        const auto* b_pos = b_data.data();
159
160
500k
        for (size_t i = 0; i < size; ++i) {
161
500k
            c[i] = Op::apply(
162
500k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
500k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
500k
                    0);
165
166
500k
            prev_a_offset = a_offsets[i];
167
500k
        }
168
295
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
254
                                                 PaddedPODArray<UInt8>& c) {
155
254
        size_t size = a_offsets.size();
156
254
        ColumnString::Offset prev_a_offset = 0;
157
254
        const auto* a_pos = a_data.data();
158
254
        const auto* b_pos = b_data.data();
159
160
398k
        for (size_t i = 0; i < size; ++i) {
161
397k
            c[i] = Op::apply(
162
397k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
397k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
397k
                    0);
165
166
397k
            prev_a_offset = a_offsets[i];
167
397k
        }
168
254
    }
169
170
    static void constant_string_vector(const ColumnString::Chars& a_data,
171
                                       ColumnString::Offset a_size,
172
                                       const ColumnString::Chars& b_data,
173
                                       const ColumnString::Offsets& b_offsets,
174
6
                                       PaddedPODArray<UInt8>& c) {
175
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
176
6
                                                                               a_data, a_size, c);
177
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
174
6
                                       PaddedPODArray<UInt8>& c) {
175
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
176
6
                                                                               a_data, a_size, c);
177
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
178
};
179
180
template <bool positive>
181
struct StringEqualsImpl {
182
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
183
                                                      const ColumnString::Offsets& a_offsets,
184
                                                      const ColumnString::Chars& b_data,
185
                                                      const ColumnString::Offsets& b_offsets,
186
470
                                                      PaddedPODArray<UInt8>& c) {
187
470
        size_t size = a_offsets.size();
188
470
        ColumnString::Offset prev_a_offset = 0;
189
470
        ColumnString::Offset prev_b_offset = 0;
190
470
        const auto* a_pos = a_data.data();
191
470
        const auto* b_pos = b_data.data();
192
193
1.41k
        for (size_t i = 0; i < size; ++i) {
194
949
            auto a_size = a_offsets[i] - prev_a_offset;
195
949
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
949
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
949
                                                               b_pos + prev_b_offset, b_size);
199
200
949
            prev_a_offset = a_offsets[i];
201
949
            prev_b_offset = b_offsets[i];
202
949
        }
203
470
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
186
469
                                                      PaddedPODArray<UInt8>& c) {
187
469
        size_t size = a_offsets.size();
188
469
        ColumnString::Offset prev_a_offset = 0;
189
469
        ColumnString::Offset prev_b_offset = 0;
190
469
        const auto* a_pos = a_data.data();
191
469
        const auto* b_pos = b_data.data();
192
193
1.41k
        for (size_t i = 0; i < size; ++i) {
194
945
            auto a_size = a_offsets[i] - prev_a_offset;
195
945
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
945
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
945
                                                               b_pos + prev_b_offset, b_size);
199
200
945
            prev_a_offset = a_offsets[i];
201
945
            prev_b_offset = b_offsets[i];
202
945
        }
203
469
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
186
1
                                                      PaddedPODArray<UInt8>& c) {
187
1
        size_t size = a_offsets.size();
188
1
        ColumnString::Offset prev_a_offset = 0;
189
1
        ColumnString::Offset prev_b_offset = 0;
190
1
        const auto* a_pos = a_data.data();
191
1
        const auto* b_pos = b_data.data();
192
193
5
        for (size_t i = 0; i < size; ++i) {
194
4
            auto a_size = a_offsets[i] - prev_a_offset;
195
4
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
4
                                                               b_pos + prev_b_offset, b_size);
199
200
4
            prev_a_offset = a_offsets[i];
201
4
            prev_b_offset = b_offsets[i];
202
4
        }
203
1
    }
204
205
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
206
                                                 const ColumnString::Offsets& a_offsets,
207
                                                 const ColumnString::Chars& b_data,
208
                                                 ColumnString::Offset b_size,
209
9.83k
                                                 PaddedPODArray<UInt8>& c) {
210
9.83k
        size_t size = a_offsets.size();
211
9.83k
        if (b_size == 0) {
212
1
            auto* __restrict data = c.data();
213
1
            auto* __restrict offsets = a_offsets.data();
214
215
1
            ColumnString::Offset prev_a_offset = 0;
216
4
            for (size_t i = 0; i < size; ++i) {
217
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
3
                prev_a_offset = offsets[i];
219
3
            }
220
9.83k
        } else {
221
9.83k
            ColumnString::Offset prev_a_offset = 0;
222
9.83k
            const auto* a_pos = a_data.data();
223
9.83k
            const auto* b_pos = b_data.data();
224
1.79M
            for (size_t i = 0; i < size; ++i) {
225
1.78M
                auto a_size = a_offsets[i] - prev_a_offset;
226
1.78M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
1.78M
                                                                   b_pos, b_size);
228
1.78M
                prev_a_offset = a_offsets[i];
229
1.78M
            }
230
9.83k
        }
231
9.83k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
209
9.75k
                                                 PaddedPODArray<UInt8>& c) {
210
9.75k
        size_t size = a_offsets.size();
211
9.75k
        if (b_size == 0) {
212
0
            auto* __restrict data = c.data();
213
0
            auto* __restrict offsets = a_offsets.data();
214
215
0
            ColumnString::Offset prev_a_offset = 0;
216
0
            for (size_t i = 0; i < size; ++i) {
217
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
0
                prev_a_offset = offsets[i];
219
0
            }
220
9.75k
        } else {
221
9.75k
            ColumnString::Offset prev_a_offset = 0;
222
9.75k
            const auto* a_pos = a_data.data();
223
9.75k
            const auto* b_pos = b_data.data();
224
1.74M
            for (size_t i = 0; i < size; ++i) {
225
1.73M
                auto a_size = a_offsets[i] - prev_a_offset;
226
1.73M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
1.73M
                                                                   b_pos, b_size);
228
1.73M
                prev_a_offset = a_offsets[i];
229
1.73M
            }
230
9.75k
        }
231
9.75k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
209
87
                                                 PaddedPODArray<UInt8>& c) {
210
87
        size_t size = a_offsets.size();
211
87
        if (b_size == 0) {
212
1
            auto* __restrict data = c.data();
213
1
            auto* __restrict offsets = a_offsets.data();
214
215
1
            ColumnString::Offset prev_a_offset = 0;
216
4
            for (size_t i = 0; i < size; ++i) {
217
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
3
                prev_a_offset = offsets[i];
219
3
            }
220
86
        } else {
221
86
            ColumnString::Offset prev_a_offset = 0;
222
86
            const auto* a_pos = a_data.data();
223
86
            const auto* b_pos = b_data.data();
224
45.0k
            for (size_t i = 0; i < size; ++i) {
225
44.9k
                auto a_size = a_offsets[i] - prev_a_offset;
226
44.9k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
44.9k
                                                                   b_pos, b_size);
228
44.9k
                prev_a_offset = a_offsets[i];
229
44.9k
            }
230
86
        }
231
87
    }
232
233
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
234
                                                 ColumnString::Offset a_size,
235
                                                 const ColumnString::Chars& b_data,
236
                                                 const ColumnString::Offsets& b_offsets,
237
0
                                                 PaddedPODArray<UInt8>& c) {
238
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
239
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
240
};
241
242
template <PrimitiveType PT>
243
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
244
245
template <PrimitiveType PT>
246
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
247
248
struct NameEquals {
249
    static constexpr auto name = "eq";
250
};
251
struct NameNotEquals {
252
    static constexpr auto name = "ne";
253
};
254
struct NameLess {
255
    static constexpr auto name = "lt";
256
};
257
struct NameGreater {
258
    static constexpr auto name = "gt";
259
};
260
struct NameLessOrEquals {
261
    static constexpr auto name = "le";
262
};
263
struct NameGreaterOrEquals {
264
    static constexpr auto name = "ge";
265
};
266
267
namespace comparison_zonemap_detail {
268
enum class Op {
269
    EQ,
270
    NE,
271
    LT,
272
    LE,
273
    GT,
274
    GE,
275
};
276
277
4
inline Op symmetric_op(Op op) {
278
4
    switch (op) {
279
0
    case Op::EQ:
280
0
    case Op::NE:
281
0
        return op;
282
2
    case Op::LT:
283
2
        return Op::GT;
284
0
    case Op::LE:
285
0
        return Op::GE;
286
0
    case Op::GT:
287
0
        return Op::LT;
288
2
    case Op::GE:
289
2
        return Op::LE;
290
4
    }
291
0
    __builtin_unreachable();
292
4
}
293
294
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
295
2.58k
                                    Op op) {
296
2.58k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
297
298
2.58k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal->slot_index,
299
2.58k
                                                              slot_literal->slot_type);
300
2.58k
    if (slot_type == nullptr) {
301
1
        return unsupported_zonemap_filter(ctx);
302
1
    }
303
2.58k
    auto zone_map_ptr = ctx.zone_map(slot_literal->slot_index);
304
2.58k
    if (zone_map_ptr == nullptr) {
305
29
        return unsupported_zonemap_filter(ctx);
306
29
    }
307
2.55k
    const auto& zone_map = *zone_map_ptr;
308
2.55k
    if (!zone_map.has_not_null) {
309
59
        return ZoneMapFilterResult::kNoMatch;
310
59
    }
311
2.49k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
312
109
        return unsupported_zonemap_filter(ctx);
313
109
    }
314
315
2.38k
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
316
2.38k
    const auto& literal = slot_literal->literal;
317
2.38k
    switch (effective_op) {
318
1.51k
    case Op::EQ:
319
1.51k
        return literal < zone_map.min_value || zone_map.max_value < literal
320
1.51k
                       ? ZoneMapFilterResult::kNoMatch
321
1.51k
                       : ZoneMapFilterResult::kMayMatch;
322
96
    case Op::NE:
323
96
        return zone_map.min_value == literal && zone_map.max_value == literal
324
96
                       ? ZoneMapFilterResult::kNoMatch
325
96
                       : ZoneMapFilterResult::kMayMatch;
326
196
    case Op::LT:
327
196
        return zone_map.min_value >= literal ? ZoneMapFilterResult::kNoMatch
328
196
                                             : ZoneMapFilterResult::kMayMatch;
329
180
    case Op::LE:
330
180
        return zone_map.min_value > literal ? ZoneMapFilterResult::kNoMatch
331
180
                                            : ZoneMapFilterResult::kMayMatch;
332
196
    case Op::GT:
333
196
        return zone_map.max_value <= literal ? ZoneMapFilterResult::kNoMatch
334
196
                                             : ZoneMapFilterResult::kMayMatch;
335
211
    case Op::GE:
336
211
        return zone_map.max_value < literal ? ZoneMapFilterResult::kNoMatch
337
211
                                            : ZoneMapFilterResult::kMayMatch;
338
2.38k
    }
339
340
    // keep this to avoid compile failure with g++.
341
0
    __builtin_unreachable();
342
2.38k
}
343
344
31.3k
inline bool can_evaluate(const VExprSPtrs& arguments) {
345
31.3k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
346
31.3k
    if (!slot_literal.has_value()) {
347
21.2k
        return false;
348
21.2k
    }
349
350
    // A NULL literal makes the comparison evaluate to NULL instead of a byte range predicate on
351
    // the slot. This zonemap evaluator only derives bounds from non-NULL literals, so reject this
352
    // shape here before evaluate_zonemap_filter is called.
353
10.0k
    if (slot_literal->literal.is_null()) {
354
4
        return false;
355
4
    }
356
357
10.0k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
358
10.0k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
359
10.0k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
360
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
361
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
362
        // values without running expression casts, so conservatively skip this optimization.
363
1
        return false;
364
1
    }
365
366
10.0k
    return true;
367
10.0k
}
368
369
33.9k
inline std::optional<Op> op_from_name(std::string_view name) {
370
33.9k
    if (name == NameEquals::name) {
371
15.2k
        return Op::EQ;
372
15.2k
    }
373
18.7k
    if (name == NameNotEquals::name) {
374
1.40k
        return Op::NE;
375
1.40k
    }
376
17.2k
    if (name == NameLess::name) {
377
3.63k
        return Op::LT;
378
3.63k
    }
379
13.6k
    if (name == NameLessOrEquals::name) {
380
3.26k
        return Op::LE;
381
3.26k
    }
382
10.3k
    if (name == NameGreater::name) {
383
5.05k
        return Op::GT;
384
5.05k
    }
385
5.37k
    if (name == NameGreaterOrEquals::name) {
386
5.37k
        return Op::GE;
387
5.37k
    }
388
18.4E
    return std::nullopt;
389
5.34k
}
390
} // namespace comparison_zonemap_detail
391
392
template <template <PrimitiveType> class Op, typename Name>
393
class FunctionComparison : public IFunction {
394
public:
395
    static constexpr auto name = Name::name;
396
263k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
396
240k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
396
1.14k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
396
4.87k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
396
5.66k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
396
2.97k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
396
7.45k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
397
398
263k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
398
241k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
398
1.14k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
398
4.87k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
398
5.66k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
398
2.97k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
398
7.44k
    FunctionComparison() = default;
399
400
648k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
400
642k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
400
603
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
400
1.88k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
400
1.69k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
400
1.14k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
400
818
    double execute_cost() const override { return 0.5; }
401
402
private:
403
    template <PrimitiveType PT>
404
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
405
108k
                            const ColumnPtr& col_right_ptr) const {
406
108k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
108k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
108k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
108k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
108k
        DCHECK(!(left_is_const && right_is_const));
413
414
108k
        if (!left_is_const && !right_is_const) {
415
8.36k
            auto col_res = ColumnUInt8::create();
416
417
8.36k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
8.36k
            vec_res.resize(col_left->get_data().size());
419
8.36k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
8.36k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
8.36k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
8.36k
                                                     vec_res);
423
424
8.36k
            block.replace_by_position(result, std::move(col_res));
425
100k
        } else if (!left_is_const && right_is_const) {
426
65.5k
            auto col_res = ColumnUInt8::create();
427
428
65.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
65.5k
            vec_res.resize(col_left->size());
430
65.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
65.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
65.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
65.5k
                                                       col_right->get_element(0), vec_res);
434
435
65.5k
            block.replace_by_position(result, std::move(col_res));
436
65.5k
        } else if (left_is_const && !right_is_const) {
437
34.9k
            auto col_res = ColumnUInt8::create();
438
439
34.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
34.9k
            vec_res.resize(col_right->size());
441
34.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
34.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
443
34.9k
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
34.9k
                                                       col_right->get_data(), vec_res);
445
446
34.9k
            block.replace_by_position(result, std::move(col_res));
447
34.9k
        }
448
108k
        return Status::OK();
449
108k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
94
                            const ColumnPtr& col_right_ptr) const {
406
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
94
        DCHECK(!(left_is_const && right_is_const));
413
414
94
        if (!left_is_const && !right_is_const) {
415
70
            auto col_res = ColumnUInt8::create();
416
417
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
70
            vec_res.resize(col_left->get_data().size());
419
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
70
                              typename PrimitiveTypeTraits<PT>::CppType,
421
70
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
70
                                                     vec_res);
423
424
70
            block.replace_by_position(result, std::move(col_res));
425
70
        } else if (!left_is_const && right_is_const) {
426
24
            auto col_res = ColumnUInt8::create();
427
428
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
24
            vec_res.resize(col_left->size());
430
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
24
                              typename PrimitiveTypeTraits<PT>::CppType,
432
24
                              Op<PT>>::vector_constant(col_left->get_data(),
433
24
                                                       col_right->get_element(0), vec_res);
434
435
24
            block.replace_by_position(result, std::move(col_res));
436
24
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
94
        return Status::OK();
449
94
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.04k
                            const ColumnPtr& col_right_ptr) const {
406
1.04k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.04k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.04k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.04k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.04k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.04k
        if (!left_is_const && !right_is_const) {
415
372
            auto col_res = ColumnUInt8::create();
416
417
372
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
372
            vec_res.resize(col_left->get_data().size());
419
372
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
372
                              typename PrimitiveTypeTraits<PT>::CppType,
421
372
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
372
                                                     vec_res);
423
424
372
            block.replace_by_position(result, std::move(col_res));
425
673
        } else if (!left_is_const && right_is_const) {
426
673
            auto col_res = ColumnUInt8::create();
427
428
673
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
673
            vec_res.resize(col_left->size());
430
673
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
673
                              typename PrimitiveTypeTraits<PT>::CppType,
432
673
                              Op<PT>>::vector_constant(col_left->get_data(),
433
673
                                                       col_right->get_element(0), vec_res);
434
435
673
            block.replace_by_position(result, std::move(col_res));
436
673
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.04k
        return Status::OK();
449
1.04k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
480
                            const ColumnPtr& col_right_ptr) const {
406
480
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
480
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
480
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
480
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
480
        DCHECK(!(left_is_const && right_is_const));
413
414
480
        if (!left_is_const && !right_is_const) {
415
300
            auto col_res = ColumnUInt8::create();
416
417
300
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
300
            vec_res.resize(col_left->get_data().size());
419
300
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
300
                              typename PrimitiveTypeTraits<PT>::CppType,
421
300
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
300
                                                     vec_res);
423
424
300
            block.replace_by_position(result, std::move(col_res));
425
300
        } else if (!left_is_const && right_is_const) {
426
180
            auto col_res = ColumnUInt8::create();
427
428
180
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
180
            vec_res.resize(col_left->size());
430
180
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
180
                              typename PrimitiveTypeTraits<PT>::CppType,
432
180
                              Op<PT>>::vector_constant(col_left->get_data(),
433
180
                                                       col_right->get_element(0), vec_res);
434
435
180
            block.replace_by_position(result, std::move(col_res));
436
180
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
480
        return Status::OK();
449
480
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2
                            const ColumnPtr& col_right_ptr) const {
406
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2
        DCHECK(!(left_is_const && right_is_const));
413
414
2
        if (!left_is_const && !right_is_const) {
415
2
            auto col_res = ColumnUInt8::create();
416
417
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
2
            vec_res.resize(col_left->get_data().size());
419
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
2
                              typename PrimitiveTypeTraits<PT>::CppType,
421
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
2
                                                     vec_res);
423
424
2
            block.replace_by_position(result, std::move(col_res));
425
2
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2
        return Status::OK();
449
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4.99k
                            const ColumnPtr& col_right_ptr) const {
406
4.99k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4.99k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4.99k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4.99k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4.99k
        DCHECK(!(left_is_const && right_is_const));
413
414
4.99k
        if (!left_is_const && !right_is_const) {
415
171
            auto col_res = ColumnUInt8::create();
416
417
171
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
171
            vec_res.resize(col_left->get_data().size());
419
171
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
171
                              typename PrimitiveTypeTraits<PT>::CppType,
421
171
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
171
                                                     vec_res);
423
424
171
            block.replace_by_position(result, std::move(col_res));
425
4.82k
        } else if (!left_is_const && right_is_const) {
426
4.51k
            auto col_res = ColumnUInt8::create();
427
428
4.51k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
4.51k
            vec_res.resize(col_left->size());
430
4.51k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
4.51k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
4.51k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
4.51k
                                                       col_right->get_element(0), vec_res);
434
435
4.51k
            block.replace_by_position(result, std::move(col_res));
436
4.51k
        } else if (left_is_const && !right_is_const) {
437
312
            auto col_res = ColumnUInt8::create();
438
439
312
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
312
            vec_res.resize(col_right->size());
441
312
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
312
                              typename PrimitiveTypeTraits<PT>::CppType,
443
312
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
312
                                                       col_right->get_data(), vec_res);
445
446
312
            block.replace_by_position(result, std::move(col_res));
447
312
        }
448
4.99k
        return Status::OK();
449
4.99k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
454
                            const ColumnPtr& col_right_ptr) const {
406
454
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
454
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
454
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
454
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
454
        DCHECK(!(left_is_const && right_is_const));
413
414
454
        if (!left_is_const && !right_is_const) {
415
97
            auto col_res = ColumnUInt8::create();
416
417
97
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
97
            vec_res.resize(col_left->get_data().size());
419
97
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
97
                              typename PrimitiveTypeTraits<PT>::CppType,
421
97
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
97
                                                     vec_res);
423
424
97
            block.replace_by_position(result, std::move(col_res));
425
357
        } else if (!left_is_const && right_is_const) {
426
309
            auto col_res = ColumnUInt8::create();
427
428
309
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
309
            vec_res.resize(col_left->size());
430
309
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
309
                              typename PrimitiveTypeTraits<PT>::CppType,
432
309
                              Op<PT>>::vector_constant(col_left->get_data(),
433
309
                                                       col_right->get_element(0), vec_res);
434
435
309
            block.replace_by_position(result, std::move(col_res));
436
309
        } else if (left_is_const && !right_is_const) {
437
48
            auto col_res = ColumnUInt8::create();
438
439
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
48
            vec_res.resize(col_right->size());
441
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
48
                              typename PrimitiveTypeTraits<PT>::CppType,
443
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
48
                                                       col_right->get_data(), vec_res);
445
446
48
            block.replace_by_position(result, std::move(col_res));
447
48
        }
448
454
        return Status::OK();
449
454
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
56.2k
                            const ColumnPtr& col_right_ptr) const {
406
56.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
56.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
56.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
56.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
56.2k
        DCHECK(!(left_is_const && right_is_const));
413
414
56.2k
        if (!left_is_const && !right_is_const) {
415
270
            auto col_res = ColumnUInt8::create();
416
417
270
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
270
            vec_res.resize(col_left->get_data().size());
419
270
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
270
                              typename PrimitiveTypeTraits<PT>::CppType,
421
270
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
270
                                                     vec_res);
423
424
270
            block.replace_by_position(result, std::move(col_res));
425
55.9k
        } else if (!left_is_const && right_is_const) {
426
28.5k
            auto col_res = ColumnUInt8::create();
427
428
28.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
28.5k
            vec_res.resize(col_left->size());
430
28.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
28.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
28.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
28.5k
                                                       col_right->get_element(0), vec_res);
434
435
28.5k
            block.replace_by_position(result, std::move(col_res));
436
28.5k
        } else if (left_is_const && !right_is_const) {
437
27.4k
            auto col_res = ColumnUInt8::create();
438
439
27.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
27.4k
            vec_res.resize(col_right->size());
441
27.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
27.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
443
27.4k
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
27.4k
                                                       col_right->get_data(), vec_res);
445
446
27.4k
            block.replace_by_position(result, std::move(col_res));
447
27.4k
        }
448
56.2k
        return Status::OK();
449
56.2k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2.80k
                            const ColumnPtr& col_right_ptr) const {
406
2.80k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2.80k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2.80k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2.80k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2.80k
        DCHECK(!(left_is_const && right_is_const));
413
414
2.80k
        if (!left_is_const && !right_is_const) {
415
155
            auto col_res = ColumnUInt8::create();
416
417
155
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
155
            vec_res.resize(col_left->get_data().size());
419
155
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
155
                              typename PrimitiveTypeTraits<PT>::CppType,
421
155
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
155
                                                     vec_res);
423
424
155
            block.replace_by_position(result, std::move(col_res));
425
2.65k
        } else if (!left_is_const && right_is_const) {
426
1.62k
            auto col_res = ColumnUInt8::create();
427
428
1.62k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.62k
            vec_res.resize(col_left->size());
430
1.62k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.62k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.62k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.62k
                                                       col_right->get_element(0), vec_res);
434
435
1.62k
            block.replace_by_position(result, std::move(col_res));
436
1.62k
        } else if (left_is_const && !right_is_const) {
437
1.02k
            auto col_res = ColumnUInt8::create();
438
439
1.02k
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
1.02k
            vec_res.resize(col_right->size());
441
1.02k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
1.02k
                              typename PrimitiveTypeTraits<PT>::CppType,
443
1.02k
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
1.02k
                                                       col_right->get_data(), vec_res);
445
446
1.02k
            block.replace_by_position(result, std::move(col_res));
447
1.02k
        }
448
2.80k
        return Status::OK();
449
2.80k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
143
                            const ColumnPtr& col_right_ptr) const {
406
143
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
143
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
143
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
143
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
143
        DCHECK(!(left_is_const && right_is_const));
413
414
143
        if (!left_is_const && !right_is_const) {
415
100
            auto col_res = ColumnUInt8::create();
416
417
100
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
100
            vec_res.resize(col_left->get_data().size());
419
100
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
100
                              typename PrimitiveTypeTraits<PT>::CppType,
421
100
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
100
                                                     vec_res);
423
424
100
            block.replace_by_position(result, std::move(col_res));
425
100
        } else if (!left_is_const && right_is_const) {
426
27
            auto col_res = ColumnUInt8::create();
427
428
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
27
            vec_res.resize(col_left->size());
430
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
27
                              typename PrimitiveTypeTraits<PT>::CppType,
432
27
                              Op<PT>>::vector_constant(col_left->get_data(),
433
27
                                                       col_right->get_element(0), vec_res);
434
435
27
            block.replace_by_position(result, std::move(col_res));
436
27
        } else if (left_is_const && !right_is_const) {
437
16
            auto col_res = ColumnUInt8::create();
438
439
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
16
            vec_res.resize(col_right->size());
441
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
16
                              typename PrimitiveTypeTraits<PT>::CppType,
443
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
16
                                                       col_right->get_data(), vec_res);
445
446
16
            block.replace_by_position(result, std::move(col_res));
447
16
        }
448
143
        return Status::OK();
449
143
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
31
                            const ColumnPtr& col_right_ptr) const {
406
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
31
        DCHECK(!(left_is_const && right_is_const));
413
414
31
        if (!left_is_const && !right_is_const) {
415
16
            auto col_res = ColumnUInt8::create();
416
417
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
16
            vec_res.resize(col_left->get_data().size());
419
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
16
                              typename PrimitiveTypeTraits<PT>::CppType,
421
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
16
                                                     vec_res);
423
424
16
            block.replace_by_position(result, std::move(col_res));
425
16
        } else if (!left_is_const && right_is_const) {
426
15
            auto col_res = ColumnUInt8::create();
427
428
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
15
            vec_res.resize(col_left->size());
430
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
15
                              typename PrimitiveTypeTraits<PT>::CppType,
432
15
                              Op<PT>>::vector_constant(col_left->get_data(),
433
15
                                                       col_right->get_element(0), vec_res);
434
435
15
            block.replace_by_position(result, std::move(col_res));
436
15
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
31
        return Status::OK();
449
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
30
                            const ColumnPtr& col_right_ptr) const {
406
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
30
        DCHECK(!(left_is_const && right_is_const));
413
414
30
        if (!left_is_const && !right_is_const) {
415
24
            auto col_res = ColumnUInt8::create();
416
417
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
24
            vec_res.resize(col_left->get_data().size());
419
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
24
                              typename PrimitiveTypeTraits<PT>::CppType,
421
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
24
                                                     vec_res);
423
424
24
            block.replace_by_position(result, std::move(col_res));
425
24
        } else if (!left_is_const && right_is_const) {
426
6
            auto col_res = ColumnUInt8::create();
427
428
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
6
            vec_res.resize(col_left->size());
430
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
6
                              typename PrimitiveTypeTraits<PT>::CppType,
432
6
                              Op<PT>>::vector_constant(col_left->get_data(),
433
6
                                                       col_right->get_element(0), vec_res);
434
435
6
            block.replace_by_position(result, std::move(col_res));
436
6
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
30
        return Status::OK();
449
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
117
                            const ColumnPtr& col_right_ptr) const {
406
117
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
117
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
117
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
117
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
117
        DCHECK(!(left_is_const && right_is_const));
413
414
117
        if (!left_is_const && !right_is_const) {
415
117
            auto col_res = ColumnUInt8::create();
416
417
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
117
            vec_res.resize(col_left->get_data().size());
419
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
117
                              typename PrimitiveTypeTraits<PT>::CppType,
421
117
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
117
                                                     vec_res);
423
424
117
            block.replace_by_position(result, std::move(col_res));
425
117
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
117
        return Status::OK();
449
117
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
700
                            const ColumnPtr& col_right_ptr) const {
406
700
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
700
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
700
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
700
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
700
        DCHECK(!(left_is_const && right_is_const));
413
414
700
        if (!left_is_const && !right_is_const) {
415
113
            auto col_res = ColumnUInt8::create();
416
417
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
113
            vec_res.resize(col_left->get_data().size());
419
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
113
                              typename PrimitiveTypeTraits<PT>::CppType,
421
113
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
113
                                                     vec_res);
423
424
113
            block.replace_by_position(result, std::move(col_res));
425
587
        } else if (!left_is_const && right_is_const) {
426
587
            auto col_res = ColumnUInt8::create();
427
428
587
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
587
            vec_res.resize(col_left->size());
430
587
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
587
                              typename PrimitiveTypeTraits<PT>::CppType,
432
587
                              Op<PT>>::vector_constant(col_left->get_data(),
433
587
                                                       col_right->get_element(0), vec_res);
434
435
587
            block.replace_by_position(result, std::move(col_res));
436
587
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
700
        return Status::OK();
449
700
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4
                            const ColumnPtr& col_right_ptr) const {
406
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4
        DCHECK(!(left_is_const && right_is_const));
413
414
4
        if (!left_is_const && !right_is_const) {
415
4
            auto col_res = ColumnUInt8::create();
416
417
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
4
            vec_res.resize(col_left->get_data().size());
419
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
4
                              typename PrimitiveTypeTraits<PT>::CppType,
421
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
4
                                                     vec_res);
423
424
4
            block.replace_by_position(result, std::move(col_res));
425
4
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
4
        return Status::OK();
449
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
405
70
                            const ColumnPtr& col_right_ptr) const {
406
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
70
        DCHECK(!(left_is_const && right_is_const));
413
414
70
        if (!left_is_const && !right_is_const) {
415
39
            auto col_res = ColumnUInt8::create();
416
417
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
39
            vec_res.resize(col_left->get_data().size());
419
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
39
                              typename PrimitiveTypeTraits<PT>::CppType,
421
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
39
                                                     vec_res);
423
424
39
            block.replace_by_position(result, std::move(col_res));
425
39
        } else if (!left_is_const && right_is_const) {
426
31
            auto col_res = ColumnUInt8::create();
427
428
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
31
            vec_res.resize(col_left->size());
430
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
31
                              typename PrimitiveTypeTraits<PT>::CppType,
432
31
                              Op<PT>>::vector_constant(col_left->get_data(),
433
31
                                                       col_right->get_element(0), vec_res);
434
435
31
            block.replace_by_position(result, std::move(col_res));
436
31
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
70
        return Status::OK();
449
70
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
84
                            const ColumnPtr& col_right_ptr) const {
406
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
84
        DCHECK(!(left_is_const && right_is_const));
413
414
84
        if (!left_is_const && !right_is_const) {
415
56
            auto col_res = ColumnUInt8::create();
416
417
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
56
            vec_res.resize(col_left->get_data().size());
419
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
56
                              typename PrimitiveTypeTraits<PT>::CppType,
421
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
56
                                                     vec_res);
423
424
56
            block.replace_by_position(result, std::move(col_res));
425
56
        } else if (!left_is_const && right_is_const) {
426
28
            auto col_res = ColumnUInt8::create();
427
428
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
28
            vec_res.resize(col_left->size());
430
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
28
                              typename PrimitiveTypeTraits<PT>::CppType,
432
28
                              Op<PT>>::vector_constant(col_left->get_data(),
433
28
                                                       col_right->get_element(0), vec_res);
434
435
28
            block.replace_by_position(result, std::move(col_res));
436
28
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
84
        return Status::OK();
449
84
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.13k
                            const ColumnPtr& col_right_ptr) const {
406
1.13k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.13k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.13k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.13k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.13k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.13k
        if (!left_is_const && !right_is_const) {
415
912
            auto col_res = ColumnUInt8::create();
416
417
912
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
912
            vec_res.resize(col_left->get_data().size());
419
912
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
912
                              typename PrimitiveTypeTraits<PT>::CppType,
421
912
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
912
                                                     vec_res);
423
424
912
            block.replace_by_position(result, std::move(col_res));
425
912
        } else if (!left_is_const && right_is_const) {
426
220
            auto col_res = ColumnUInt8::create();
427
428
220
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
220
            vec_res.resize(col_left->size());
430
220
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
220
                              typename PrimitiveTypeTraits<PT>::CppType,
432
220
                              Op<PT>>::vector_constant(col_left->get_data(),
433
220
                                                       col_right->get_element(0), vec_res);
434
435
220
            block.replace_by_position(result, std::move(col_res));
436
220
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.13k
        return Status::OK();
449
1.13k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
916
                            const ColumnPtr& col_right_ptr) const {
406
916
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
916
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
916
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
916
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
916
        DCHECK(!(left_is_const && right_is_const));
413
414
916
        if (!left_is_const && !right_is_const) {
415
326
            auto col_res = ColumnUInt8::create();
416
417
326
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
326
            vec_res.resize(col_left->get_data().size());
419
326
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
326
                              typename PrimitiveTypeTraits<PT>::CppType,
421
326
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
326
                                                     vec_res);
423
424
326
            block.replace_by_position(result, std::move(col_res));
425
590
        } else if (!left_is_const && right_is_const) {
426
34
            auto col_res = ColumnUInt8::create();
427
428
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
34
            vec_res.resize(col_left->size());
430
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
34
                              typename PrimitiveTypeTraits<PT>::CppType,
432
34
                              Op<PT>>::vector_constant(col_left->get_data(),
433
34
                                                       col_right->get_element(0), vec_res);
434
435
34
            block.replace_by_position(result, std::move(col_res));
436
556
        } else if (left_is_const && !right_is_const) {
437
556
            auto col_res = ColumnUInt8::create();
438
439
556
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
556
            vec_res.resize(col_right->size());
441
556
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
556
                              typename PrimitiveTypeTraits<PT>::CppType,
443
556
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
556
                                                       col_right->get_data(), vec_res);
445
446
556
            block.replace_by_position(result, std::move(col_res));
447
556
        }
448
916
        return Status::OK();
449
916
    }
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
405
48
                            const ColumnPtr& col_right_ptr) const {
406
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
48
        DCHECK(!(left_is_const && right_is_const));
413
414
48
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
28
        } else if (!left_is_const && right_is_const) {
426
28
            auto col_res = ColumnUInt8::create();
427
428
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
28
            vec_res.resize(col_left->size());
430
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
28
                              typename PrimitiveTypeTraits<PT>::CppType,
432
28
                              Op<PT>>::vector_constant(col_left->get_data(),
433
28
                                                       col_right->get_element(0), vec_res);
434
435
28
            block.replace_by_position(result, std::move(col_res));
436
28
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
48
        return Status::OK();
449
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
60
                            const ColumnPtr& col_right_ptr) const {
406
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
60
        DCHECK(!(left_is_const && right_is_const));
413
414
60
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
40
        } else if (!left_is_const && right_is_const) {
426
40
            auto col_res = ColumnUInt8::create();
427
428
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
40
            vec_res.resize(col_left->size());
430
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
40
                              typename PrimitiveTypeTraits<PT>::CppType,
432
40
                              Op<PT>>::vector_constant(col_left->get_data(),
433
40
                                                       col_right->get_element(0), vec_res);
434
435
40
            block.replace_by_position(result, std::move(col_res));
436
40
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
60
        return Status::OK();
449
60
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.12k
                            const ColumnPtr& col_right_ptr) const {
406
1.12k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.12k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.12k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.12k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.12k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.12k
        if (!left_is_const && !right_is_const) {
415
1.08k
            auto col_res = ColumnUInt8::create();
416
417
1.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1.08k
            vec_res.resize(col_left->get_data().size());
419
1.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1.08k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1.08k
                                                     vec_res);
423
424
1.08k
            block.replace_by_position(result, std::move(col_res));
425
1.08k
        } else if (!left_is_const && right_is_const) {
426
41
            auto col_res = ColumnUInt8::create();
427
428
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
41
            vec_res.resize(col_left->size());
430
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
41
                              typename PrimitiveTypeTraits<PT>::CppType,
432
41
                              Op<PT>>::vector_constant(col_left->get_data(),
433
41
                                                       col_right->get_element(0), vec_res);
434
435
41
            block.replace_by_position(result, std::move(col_res));
436
41
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.12k
        return Status::OK();
449
1.12k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2
                            const ColumnPtr& col_right_ptr) const {
406
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2
        DCHECK(!(left_is_const && right_is_const));
413
414
2
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
2
        } else if (!left_is_const && right_is_const) {
426
2
            auto col_res = ColumnUInt8::create();
427
428
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
2
            vec_res.resize(col_left->size());
430
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
2
                              typename PrimitiveTypeTraits<PT>::CppType,
432
2
                              Op<PT>>::vector_constant(col_left->get_data(),
433
2
                                                       col_right->get_element(0), vec_res);
434
435
2
            block.replace_by_position(result, std::move(col_res));
436
2
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2
        return Status::OK();
449
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.43k
                            const ColumnPtr& col_right_ptr) const {
406
1.43k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.43k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.43k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.43k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.43k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.43k
        if (!left_is_const && !right_is_const) {
415
40
            auto col_res = ColumnUInt8::create();
416
417
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
40
            vec_res.resize(col_left->get_data().size());
419
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
40
                              typename PrimitiveTypeTraits<PT>::CppType,
421
40
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
40
                                                     vec_res);
423
424
40
            block.replace_by_position(result, std::move(col_res));
425
1.39k
        } else if (!left_is_const && right_is_const) {
426
1.14k
            auto col_res = ColumnUInt8::create();
427
428
1.14k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.14k
            vec_res.resize(col_left->size());
430
1.14k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.14k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.14k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.14k
                                                       col_right->get_element(0), vec_res);
434
435
1.14k
            block.replace_by_position(result, std::move(col_res));
436
1.14k
        } else if (left_is_const && !right_is_const) {
437
246
            auto col_res = ColumnUInt8::create();
438
439
246
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
246
            vec_res.resize(col_right->size());
441
246
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
246
                              typename PrimitiveTypeTraits<PT>::CppType,
443
246
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
246
                                                       col_right->get_data(), vec_res);
445
446
246
            block.replace_by_position(result, std::move(col_res));
447
246
        }
448
1.43k
        return Status::OK();
449
1.43k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.79k
                            const ColumnPtr& col_right_ptr) const {
406
1.79k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.79k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.79k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.79k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.79k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.79k
        if (!left_is_const && !right_is_const) {
415
112
            auto col_res = ColumnUInt8::create();
416
417
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
112
            vec_res.resize(col_left->get_data().size());
419
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
112
                              typename PrimitiveTypeTraits<PT>::CppType,
421
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
112
                                                     vec_res);
423
424
112
            block.replace_by_position(result, std::move(col_res));
425
1.67k
        } else if (!left_is_const && right_is_const) {
426
1.44k
            auto col_res = ColumnUInt8::create();
427
428
1.44k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.44k
            vec_res.resize(col_left->size());
430
1.44k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.44k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.44k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.44k
                                                       col_right->get_element(0), vec_res);
434
435
1.44k
            block.replace_by_position(result, std::move(col_res));
436
1.44k
        } else if (left_is_const && !right_is_const) {
437
240
            auto col_res = ColumnUInt8::create();
438
439
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
240
            vec_res.resize(col_right->size());
441
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
240
                              typename PrimitiveTypeTraits<PT>::CppType,
443
240
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
240
                                                       col_right->get_data(), vec_res);
445
446
240
            block.replace_by_position(result, std::move(col_res));
447
240
        }
448
1.79k
        return Status::OK();
449
1.79k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
13.2k
                            const ColumnPtr& col_right_ptr) const {
406
13.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
13.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
13.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
13.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
13.2k
        DCHECK(!(left_is_const && right_is_const));
413
414
13.2k
        if (!left_is_const && !right_is_const) {
415
49
            auto col_res = ColumnUInt8::create();
416
417
49
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
49
            vec_res.resize(col_left->get_data().size());
419
49
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
49
                              typename PrimitiveTypeTraits<PT>::CppType,
421
49
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
49
                                                     vec_res);
423
424
49
            block.replace_by_position(result, std::move(col_res));
425
13.2k
        } else if (!left_is_const && right_is_const) {
426
9.53k
            auto col_res = ColumnUInt8::create();
427
428
9.53k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
9.53k
            vec_res.resize(col_left->size());
430
9.53k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
9.53k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
9.53k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
9.53k
                                                       col_right->get_element(0), vec_res);
434
435
9.53k
            block.replace_by_position(result, std::move(col_res));
436
9.53k
        } else if (left_is_const && !right_is_const) {
437
3.69k
            auto col_res = ColumnUInt8::create();
438
439
3.69k
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
3.69k
            vec_res.resize(col_right->size());
441
3.69k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
3.69k
                              typename PrimitiveTypeTraits<PT>::CppType,
443
3.69k
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
3.69k
                                                       col_right->get_data(), vec_res);
445
446
3.69k
            block.replace_by_position(result, std::move(col_res));
447
3.69k
        }
448
13.2k
        return Status::OK();
449
13.2k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.65k
                            const ColumnPtr& col_right_ptr) const {
406
1.65k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.65k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.65k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.65k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.65k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.65k
        if (!left_is_const && !right_is_const) {
415
64
            auto col_res = ColumnUInt8::create();
416
417
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
64
            vec_res.resize(col_left->get_data().size());
419
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
64
                              typename PrimitiveTypeTraits<PT>::CppType,
421
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
64
                                                     vec_res);
423
424
64
            block.replace_by_position(result, std::move(col_res));
425
1.59k
        } else if (!left_is_const && right_is_const) {
426
1.07k
            auto col_res = ColumnUInt8::create();
427
428
1.07k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.07k
            vec_res.resize(col_left->size());
430
1.07k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.07k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.07k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.07k
                                                       col_right->get_element(0), vec_res);
434
435
1.07k
            block.replace_by_position(result, std::move(col_res));
436
1.07k
        } else if (left_is_const && !right_is_const) {
437
519
            auto col_res = ColumnUInt8::create();
438
439
519
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
519
            vec_res.resize(col_right->size());
441
519
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
519
                              typename PrimitiveTypeTraits<PT>::CppType,
443
519
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
519
                                                       col_right->get_data(), vec_res);
445
446
519
            block.replace_by_position(result, std::move(col_res));
447
519
        }
448
1.65k
        return Status::OK();
449
1.65k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
250
                            const ColumnPtr& col_right_ptr) const {
406
250
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
250
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
250
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
250
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
250
        DCHECK(!(left_is_const && right_is_const));
413
414
250
        if (!left_is_const && !right_is_const) {
415
2
            auto col_res = ColumnUInt8::create();
416
417
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
2
            vec_res.resize(col_left->get_data().size());
419
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
2
                              typename PrimitiveTypeTraits<PT>::CppType,
421
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
2
                                                     vec_res);
423
424
2
            block.replace_by_position(result, std::move(col_res));
425
248
        } else if (!left_is_const && right_is_const) {
426
201
            auto col_res = ColumnUInt8::create();
427
428
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
201
            vec_res.resize(col_left->size());
430
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
201
                              typename PrimitiveTypeTraits<PT>::CppType,
432
201
                              Op<PT>>::vector_constant(col_left->get_data(),
433
201
                                                       col_right->get_element(0), vec_res);
434
435
201
            block.replace_by_position(result, std::move(col_res));
436
201
        } else if (left_is_const && !right_is_const) {
437
47
            auto col_res = ColumnUInt8::create();
438
439
47
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
47
            vec_res.resize(col_right->size());
441
47
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
47
                              typename PrimitiveTypeTraits<PT>::CppType,
443
47
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
47
                                                       col_right->get_data(), vec_res);
445
446
47
            block.replace_by_position(result, std::move(col_res));
447
47
        }
448
250
        return Status::OK();
449
250
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4
                            const ColumnPtr& col_right_ptr) const {
406
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4
        DCHECK(!(left_is_const && right_is_const));
413
414
4
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
3
        } else if (!left_is_const && right_is_const) {
426
3
            auto col_res = ColumnUInt8::create();
427
428
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
3
            vec_res.resize(col_left->size());
430
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
3
                              typename PrimitiveTypeTraits<PT>::CppType,
432
3
                              Op<PT>>::vector_constant(col_left->get_data(),
433
3
                                                       col_right->get_element(0), vec_res);
434
435
3
            block.replace_by_position(result, std::move(col_res));
436
3
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
4
        return Status::OK();
449
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
220
                            const ColumnPtr& col_right_ptr) const {
406
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
220
        DCHECK(!(left_is_const && right_is_const));
413
414
220
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
200
        } else if (!left_is_const && right_is_const) {
426
200
            auto col_res = ColumnUInt8::create();
427
428
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
200
            vec_res.resize(col_left->size());
430
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
200
                              typename PrimitiveTypeTraits<PT>::CppType,
432
200
                              Op<PT>>::vector_constant(col_left->get_data(),
433
200
                                                       col_right->get_element(0), vec_res);
434
435
200
            block.replace_by_position(result, std::move(col_res));
436
200
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
220
        return Status::OK();
449
220
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
545
                            const ColumnPtr& col_right_ptr) const {
406
545
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
545
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
545
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
545
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
545
        DCHECK(!(left_is_const && right_is_const));
413
414
545
        if (!left_is_const && !right_is_const) {
415
32
            auto col_res = ColumnUInt8::create();
416
417
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
32
            vec_res.resize(col_left->get_data().size());
419
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
32
                              typename PrimitiveTypeTraits<PT>::CppType,
421
32
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
32
                                                     vec_res);
423
424
32
            block.replace_by_position(result, std::move(col_res));
425
513
        } else if (!left_is_const && right_is_const) {
426
513
            auto col_res = ColumnUInt8::create();
427
428
513
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
513
            vec_res.resize(col_left->size());
430
513
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
513
                              typename PrimitiveTypeTraits<PT>::CppType,
432
513
                              Op<PT>>::vector_constant(col_left->get_data(),
433
513
                                                       col_right->get_element(0), vec_res);
434
435
513
            block.replace_by_position(result, std::move(col_res));
436
513
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
545
        return Status::OK();
449
545
    }
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
405
26
                            const ColumnPtr& col_right_ptr) const {
406
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
26
        DCHECK(!(left_is_const && right_is_const));
413
414
26
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
26
        } else if (!left_is_const && right_is_const) {
426
26
            auto col_res = ColumnUInt8::create();
427
428
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
26
            vec_res.resize(col_left->size());
430
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
26
                              typename PrimitiveTypeTraits<PT>::CppType,
432
26
                              Op<PT>>::vector_constant(col_left->get_data(),
433
26
                                                       col_right->get_element(0), vec_res);
434
435
26
            block.replace_by_position(result, std::move(col_res));
436
26
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
26
        return Status::OK();
449
26
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
513
                            const ColumnPtr& col_right_ptr) const {
406
513
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
513
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
513
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
513
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
513
        DCHECK(!(left_is_const && right_is_const));
413
414
513
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
512
        } else if (!left_is_const && right_is_const) {
426
506
            auto col_res = ColumnUInt8::create();
427
428
506
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
506
            vec_res.resize(col_left->size());
430
506
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
506
                              typename PrimitiveTypeTraits<PT>::CppType,
432
506
                              Op<PT>>::vector_constant(col_left->get_data(),
433
506
                                                       col_right->get_element(0), vec_res);
434
435
506
            block.replace_by_position(result, std::move(col_res));
436
506
        } else if (left_is_const && !right_is_const) {
437
6
            auto col_res = ColumnUInt8::create();
438
439
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
6
            vec_res.resize(col_right->size());
441
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
6
                              typename PrimitiveTypeTraits<PT>::CppType,
443
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
6
                                                       col_right->get_data(), vec_res);
445
446
6
            block.replace_by_position(result, std::move(col_res));
447
6
        }
448
513
        return Status::OK();
449
513
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
143
                            const ColumnPtr& col_right_ptr) const {
406
143
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
143
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
143
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
143
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
143
        DCHECK(!(left_is_const && right_is_const));
413
414
143
        if (!left_is_const && !right_is_const) {
415
7
            auto col_res = ColumnUInt8::create();
416
417
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
7
            vec_res.resize(col_left->get_data().size());
419
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
7
                              typename PrimitiveTypeTraits<PT>::CppType,
421
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
7
                                                     vec_res);
423
424
7
            block.replace_by_position(result, std::move(col_res));
425
136
        } else if (!left_is_const && right_is_const) {
426
136
            auto col_res = ColumnUInt8::create();
427
428
136
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
136
            vec_res.resize(col_left->size());
430
136
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
136
                              typename PrimitiveTypeTraits<PT>::CppType,
432
136
                              Op<PT>>::vector_constant(col_left->get_data(),
433
136
                                                       col_right->get_element(0), vec_res);
434
435
136
            block.replace_by_position(result, std::move(col_res));
436
136
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
143
        return Status::OK();
449
143
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
56
                            const ColumnPtr& col_right_ptr) const {
406
56
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
56
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
56
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
56
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
56
        DCHECK(!(left_is_const && right_is_const));
413
414
56
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
56
        } else if (!left_is_const && right_is_const) {
426
56
            auto col_res = ColumnUInt8::create();
427
428
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
56
            vec_res.resize(col_left->size());
430
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
56
                              typename PrimitiveTypeTraits<PT>::CppType,
432
56
                              Op<PT>>::vector_constant(col_left->get_data(),
433
56
                                                       col_right->get_element(0), vec_res);
434
435
56
            block.replace_by_position(result, std::move(col_res));
436
56
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
56
        return Status::OK();
449
56
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
50
                            const ColumnPtr& col_right_ptr) const {
406
50
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
50
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
50
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
50
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
50
        DCHECK(!(left_is_const && right_is_const));
413
414
50
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
50
        } else if (!left_is_const && right_is_const) {
426
50
            auto col_res = ColumnUInt8::create();
427
428
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
50
            vec_res.resize(col_left->size());
430
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
50
                              typename PrimitiveTypeTraits<PT>::CppType,
432
50
                              Op<PT>>::vector_constant(col_left->get_data(),
433
50
                                                       col_right->get_element(0), vec_res);
434
435
50
            block.replace_by_position(result, std::move(col_res));
436
50
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
50
        return Status::OK();
449
50
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.82k
                            const ColumnPtr& col_right_ptr) const {
406
1.82k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.82k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.82k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.82k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.82k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.82k
        if (!left_is_const && !right_is_const) {
415
3
            auto col_res = ColumnUInt8::create();
416
417
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
3
            vec_res.resize(col_left->get_data().size());
419
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
3
                              typename PrimitiveTypeTraits<PT>::CppType,
421
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
3
                                                     vec_res);
423
424
3
            block.replace_by_position(result, std::move(col_res));
425
1.82k
        } else if (!left_is_const && right_is_const) {
426
1.82k
            auto col_res = ColumnUInt8::create();
427
428
1.82k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.82k
            vec_res.resize(col_left->size());
430
1.82k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.82k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.82k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.82k
                                                       col_right->get_element(0), vec_res);
434
435
1.82k
            block.replace_by_position(result, std::move(col_res));
436
1.82k
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.82k
        return Status::OK();
449
1.82k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
182
                            const ColumnPtr& col_right_ptr) const {
406
182
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
182
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
182
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
182
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
182
        DCHECK(!(left_is_const && right_is_const));
413
414
182
        if (!left_is_const && !right_is_const) {
415
9
            auto col_res = ColumnUInt8::create();
416
417
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
9
            vec_res.resize(col_left->get_data().size());
419
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
9
                              typename PrimitiveTypeTraits<PT>::CppType,
421
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
9
                                                     vec_res);
423
424
9
            block.replace_by_position(result, std::move(col_res));
425
173
        } else if (!left_is_const && right_is_const) {
426
173
            auto col_res = ColumnUInt8::create();
427
428
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
173
            vec_res.resize(col_left->size());
430
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
173
                              typename PrimitiveTypeTraits<PT>::CppType,
432
173
                              Op<PT>>::vector_constant(col_left->get_data(),
433
173
                                                       col_right->get_element(0), vec_res);
434
435
173
            block.replace_by_position(result, std::move(col_res));
436
173
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
182
        return Status::OK();
449
182
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
24
                            const ColumnPtr& col_right_ptr) const {
406
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
24
        DCHECK(!(left_is_const && right_is_const));
413
414
24
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
24
        } else if (!left_is_const && right_is_const) {
426
24
            auto col_res = ColumnUInt8::create();
427
428
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
24
            vec_res.resize(col_left->size());
430
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
24
                              typename PrimitiveTypeTraits<PT>::CppType,
432
24
                              Op<PT>>::vector_constant(col_left->get_data(),
433
24
                                                       col_right->get_element(0), vec_res);
434
435
24
            block.replace_by_position(result, std::move(col_res));
436
24
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
24
        return Status::OK();
449
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
11
                            const ColumnPtr& col_right_ptr) const {
406
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
11
        DCHECK(!(left_is_const && right_is_const));
413
414
11
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
10
        } else if (!left_is_const && right_is_const) {
426
10
            auto col_res = ColumnUInt8::create();
427
428
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
10
            vec_res.resize(col_left->size());
430
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
10
                              typename PrimitiveTypeTraits<PT>::CppType,
432
10
                              Op<PT>>::vector_constant(col_left->get_data(),
433
10
                                                       col_right->get_element(0), vec_res);
434
435
10
            block.replace_by_position(result, std::move(col_res));
436
10
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
11
        return Status::OK();
449
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
24
                            const ColumnPtr& col_right_ptr) const {
406
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
24
        DCHECK(!(left_is_const && right_is_const));
413
414
24
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
20
        } else if (!left_is_const && right_is_const) {
426
4
            auto col_res = ColumnUInt8::create();
427
428
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
4
            vec_res.resize(col_left->size());
430
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
4
                              typename PrimitiveTypeTraits<PT>::CppType,
432
4
                              Op<PT>>::vector_constant(col_left->get_data(),
433
4
                                                       col_right->get_element(0), vec_res);
434
435
4
            block.replace_by_position(result, std::move(col_res));
436
4
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
24
        return Status::OK();
449
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
166
                            const ColumnPtr& col_right_ptr) const {
406
166
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
166
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
166
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
166
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
166
        DCHECK(!(left_is_const && right_is_const));
413
414
166
        if (!left_is_const && !right_is_const) {
415
23
            auto col_res = ColumnUInt8::create();
416
417
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
23
            vec_res.resize(col_left->get_data().size());
419
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
23
                              typename PrimitiveTypeTraits<PT>::CppType,
421
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
23
                                                     vec_res);
423
424
23
            block.replace_by_position(result, std::move(col_res));
425
143
        } else if (!left_is_const && right_is_const) {
426
143
            auto col_res = ColumnUInt8::create();
427
428
143
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
143
            vec_res.resize(col_left->size());
430
143
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
143
                              typename PrimitiveTypeTraits<PT>::CppType,
432
143
                              Op<PT>>::vector_constant(col_left->get_data(),
433
143
                                                       col_right->get_element(0), vec_res);
434
435
143
            block.replace_by_position(result, std::move(col_res));
436
143
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
166
        return Status::OK();
449
166
    }
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
405
95
                            const ColumnPtr& col_right_ptr) const {
406
95
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
95
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
95
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
95
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
95
        DCHECK(!(left_is_const && right_is_const));
413
414
95
        if (!left_is_const && !right_is_const) {
415
95
            auto col_res = ColumnUInt8::create();
416
417
95
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
95
            vec_res.resize(col_left->get_data().size());
419
95
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
95
                              typename PrimitiveTypeTraits<PT>::CppType,
421
95
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
95
                                                     vec_res);
423
424
95
            block.replace_by_position(result, std::move(col_res));
425
95
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
95
        return Status::OK();
449
95
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2.07k
                            const ColumnPtr& col_right_ptr) const {
406
2.07k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2.07k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2.07k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2.07k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2.07k
        DCHECK(!(left_is_const && right_is_const));
413
414
2.07k
        if (!left_is_const && !right_is_const) {
415
1.67k
            auto col_res = ColumnUInt8::create();
416
417
1.67k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1.67k
            vec_res.resize(col_left->get_data().size());
419
1.67k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1.67k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1.67k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1.67k
                                                     vec_res);
423
424
1.67k
            block.replace_by_position(result, std::move(col_res));
425
1.67k
        } else if (!left_is_const && right_is_const) {
426
398
            auto col_res = ColumnUInt8::create();
427
428
398
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
398
            vec_res.resize(col_left->size());
430
398
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
398
                              typename PrimitiveTypeTraits<PT>::CppType,
432
398
                              Op<PT>>::vector_constant(col_left->get_data(),
433
398
                                                       col_right->get_element(0), vec_res);
434
435
398
            block.replace_by_position(result, std::move(col_res));
436
18.4E
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2.07k
        return Status::OK();
449
2.07k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
343
                            const ColumnPtr& col_right_ptr) const {
406
343
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
343
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
343
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
343
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
343
        DCHECK(!(left_is_const && right_is_const));
413
414
343
        if (!left_is_const && !right_is_const) {
415
284
            auto col_res = ColumnUInt8::create();
416
417
284
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
284
            vec_res.resize(col_left->get_data().size());
419
284
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
284
                              typename PrimitiveTypeTraits<PT>::CppType,
421
284
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
284
                                                     vec_res);
423
424
284
            block.replace_by_position(result, std::move(col_res));
425
284
        } else if (!left_is_const && right_is_const) {
426
59
            auto col_res = ColumnUInt8::create();
427
428
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
59
            vec_res.resize(col_left->size());
430
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
59
                              typename PrimitiveTypeTraits<PT>::CppType,
432
59
                              Op<PT>>::vector_constant(col_left->get_data(),
433
59
                                                       col_right->get_element(0), vec_res);
434
435
59
            block.replace_by_position(result, std::move(col_res));
436
59
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
343
        return Status::OK();
449
343
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2
                            const ColumnPtr& col_right_ptr) const {
406
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2
        DCHECK(!(left_is_const && right_is_const));
413
414
2
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
1
            auto col_res = ColumnUInt8::create();
427
428
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1
            vec_res.resize(col_left->size());
430
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1
                                                       col_right->get_element(0), vec_res);
434
435
1
            block.replace_by_position(result, std::move(col_res));
436
1
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2
        return Status::OK();
449
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2.15k
                            const ColumnPtr& col_right_ptr) const {
406
2.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2.15k
        DCHECK(!(left_is_const && right_is_const));
413
414
2.15k
        if (!left_is_const && !right_is_const) {
415
151
            auto col_res = ColumnUInt8::create();
416
417
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
151
            vec_res.resize(col_left->get_data().size());
419
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
151
                              typename PrimitiveTypeTraits<PT>::CppType,
421
151
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
151
                                                     vec_res);
423
424
151
            block.replace_by_position(result, std::move(col_res));
425
2.00k
        } else if (!left_is_const && right_is_const) {
426
1.73k
            auto col_res = ColumnUInt8::create();
427
428
1.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.73k
            vec_res.resize(col_left->size());
430
1.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.73k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.73k
                                                       col_right->get_element(0), vec_res);
434
435
1.73k
            block.replace_by_position(result, std::move(col_res));
436
1.73k
        } else if (left_is_const && !right_is_const) {
437
264
            auto col_res = ColumnUInt8::create();
438
439
264
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
264
            vec_res.resize(col_right->size());
441
264
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
264
                              typename PrimitiveTypeTraits<PT>::CppType,
443
264
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
264
                                                       col_right->get_data(), vec_res);
445
446
264
            block.replace_by_position(result, std::move(col_res));
447
264
        }
448
2.15k
        return Status::OK();
449
2.15k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
151
                            const ColumnPtr& col_right_ptr) const {
406
151
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
151
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
151
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
151
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
151
        DCHECK(!(left_is_const && right_is_const));
413
414
151
        if (!left_is_const && !right_is_const) {
415
137
            auto col_res = ColumnUInt8::create();
416
417
137
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
137
            vec_res.resize(col_left->get_data().size());
419
137
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
137
                              typename PrimitiveTypeTraits<PT>::CppType,
421
137
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
137
                                                     vec_res);
423
424
137
            block.replace_by_position(result, std::move(col_res));
425
137
        } else if (!left_is_const && right_is_const) {
426
14
            auto col_res = ColumnUInt8::create();
427
428
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
14
            vec_res.resize(col_left->size());
430
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
14
                              typename PrimitiveTypeTraits<PT>::CppType,
432
14
                              Op<PT>>::vector_constant(col_left->get_data(),
433
14
                                                       col_right->get_element(0), vec_res);
434
435
14
            block.replace_by_position(result, std::move(col_res));
436
14
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
151
        return Status::OK();
449
151
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.20k
                            const ColumnPtr& col_right_ptr) const {
406
1.20k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.20k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.20k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.20k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.20k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.20k
        if (!left_is_const && !right_is_const) {
415
173
            auto col_res = ColumnUInt8::create();
416
417
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
173
            vec_res.resize(col_left->get_data().size());
419
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
173
                              typename PrimitiveTypeTraits<PT>::CppType,
421
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
173
                                                     vec_res);
423
424
173
            block.replace_by_position(result, std::move(col_res));
425
1.03k
        } else if (!left_is_const && right_is_const) {
426
841
            auto col_res = ColumnUInt8::create();
427
428
841
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
841
            vec_res.resize(col_left->size());
430
841
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
841
                              typename PrimitiveTypeTraits<PT>::CppType,
432
841
                              Op<PT>>::vector_constant(col_left->get_data(),
433
841
                                                       col_right->get_element(0), vec_res);
434
435
841
            block.replace_by_position(result, std::move(col_res));
436
841
        } else if (left_is_const && !right_is_const) {
437
191
            auto col_res = ColumnUInt8::create();
438
439
191
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
191
            vec_res.resize(col_right->size());
441
191
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
191
                              typename PrimitiveTypeTraits<PT>::CppType,
443
191
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
191
                                                       col_right->get_data(), vec_res);
445
446
191
            block.replace_by_position(result, std::move(col_res));
447
191
        }
448
1.20k
        return Status::OK();
449
1.20k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
793
                            const ColumnPtr& col_right_ptr) const {
406
793
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
793
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
793
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
793
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
793
        DCHECK(!(left_is_const && right_is_const));
413
414
793
        if (!left_is_const && !right_is_const) {
415
215
            auto col_res = ColumnUInt8::create();
416
417
215
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
215
            vec_res.resize(col_left->get_data().size());
419
215
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
215
                              typename PrimitiveTypeTraits<PT>::CppType,
421
215
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
215
                                                     vec_res);
423
424
215
            block.replace_by_position(result, std::move(col_res));
425
578
        } else if (!left_is_const && right_is_const) {
426
511
            auto col_res = ColumnUInt8::create();
427
428
511
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
511
            vec_res.resize(col_left->size());
430
511
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
511
                              typename PrimitiveTypeTraits<PT>::CppType,
432
511
                              Op<PT>>::vector_constant(col_left->get_data(),
433
511
                                                       col_right->get_element(0), vec_res);
434
435
511
            block.replace_by_position(result, std::move(col_res));
436
511
        } else if (left_is_const && !right_is_const) {
437
67
            auto col_res = ColumnUInt8::create();
438
439
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
67
            vec_res.resize(col_right->size());
441
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
67
                              typename PrimitiveTypeTraits<PT>::CppType,
443
67
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
67
                                                       col_right->get_data(), vec_res);
445
446
67
            block.replace_by_position(result, std::move(col_res));
447
67
        }
448
793
        return Status::OK();
449
793
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
271
                            const ColumnPtr& col_right_ptr) const {
406
271
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
271
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
271
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
271
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
271
        DCHECK(!(left_is_const && right_is_const));
413
414
271
        if (!left_is_const && !right_is_const) {
415
162
            auto col_res = ColumnUInt8::create();
416
417
162
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
162
            vec_res.resize(col_left->get_data().size());
419
162
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
162
                              typename PrimitiveTypeTraits<PT>::CppType,
421
162
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
162
                                                     vec_res);
423
424
162
            block.replace_by_position(result, std::move(col_res));
425
162
        } else if (!left_is_const && right_is_const) {
426
42
            auto col_res = ColumnUInt8::create();
427
428
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
42
            vec_res.resize(col_left->size());
430
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
42
                              typename PrimitiveTypeTraits<PT>::CppType,
432
42
                              Op<PT>>::vector_constant(col_left->get_data(),
433
42
                                                       col_right->get_element(0), vec_res);
434
435
42
            block.replace_by_position(result, std::move(col_res));
436
68
        } else if (left_is_const && !right_is_const) {
437
68
            auto col_res = ColumnUInt8::create();
438
439
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
68
            vec_res.resize(col_right->size());
441
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
68
                              typename PrimitiveTypeTraits<PT>::CppType,
443
68
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
68
                                                       col_right->get_data(), vec_res);
445
446
68
            block.replace_by_position(result, std::move(col_res));
447
68
        }
448
271
        return Status::OK();
449
271
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
18
                            const ColumnPtr& col_right_ptr) const {
406
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
18
        DCHECK(!(left_is_const && right_is_const));
413
414
18
        if (!left_is_const && !right_is_const) {
415
16
            auto col_res = ColumnUInt8::create();
416
417
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
16
            vec_res.resize(col_left->get_data().size());
419
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
16
                              typename PrimitiveTypeTraits<PT>::CppType,
421
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
16
                                                     vec_res);
423
424
16
            block.replace_by_position(result, std::move(col_res));
425
16
        } else if (!left_is_const && right_is_const) {
426
2
            auto col_res = ColumnUInt8::create();
427
428
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
2
            vec_res.resize(col_left->size());
430
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
2
                              typename PrimitiveTypeTraits<PT>::CppType,
432
2
                              Op<PT>>::vector_constant(col_left->get_data(),
433
2
                                                       col_right->get_element(0), vec_res);
434
435
2
            block.replace_by_position(result, std::move(col_res));
436
2
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
18
        return Status::OK();
449
18
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
16
                            const ColumnPtr& col_right_ptr) const {
406
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
16
        DCHECK(!(left_is_const && right_is_const));
413
414
16
        if (!left_is_const && !right_is_const) {
415
16
            auto col_res = ColumnUInt8::create();
416
417
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
16
            vec_res.resize(col_left->get_data().size());
419
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
16
                              typename PrimitiveTypeTraits<PT>::CppType,
421
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
16
                                                     vec_res);
423
424
16
            block.replace_by_position(result, std::move(col_res));
425
16
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
16
        return Status::OK();
449
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
153
                            const ColumnPtr& col_right_ptr) const {
406
153
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
153
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
153
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
153
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
153
        DCHECK(!(left_is_const && right_is_const));
413
414
153
        if (!left_is_const && !right_is_const) {
415
153
            auto col_res = ColumnUInt8::create();
416
417
153
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
153
            vec_res.resize(col_left->get_data().size());
419
153
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
153
                              typename PrimitiveTypeTraits<PT>::CppType,
421
153
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
153
                                                     vec_res);
423
424
153
            block.replace_by_position(result, std::move(col_res));
425
153
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
153
        return Status::OK();
449
153
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
354
                            const ColumnPtr& col_right_ptr) const {
406
354
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
354
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
354
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
354
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
354
        DCHECK(!(left_is_const && right_is_const));
413
414
354
        if (!left_is_const && !right_is_const) {
415
152
            auto col_res = ColumnUInt8::create();
416
417
152
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
152
            vec_res.resize(col_left->get_data().size());
419
152
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
152
                              typename PrimitiveTypeTraits<PT>::CppType,
421
152
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
152
                                                     vec_res);
423
424
152
            block.replace_by_position(result, std::move(col_res));
425
202
        } else if (!left_is_const && right_is_const) {
426
202
            auto col_res = ColumnUInt8::create();
427
428
202
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
202
            vec_res.resize(col_left->size());
430
202
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
202
                              typename PrimitiveTypeTraits<PT>::CppType,
432
202
                              Op<PT>>::vector_constant(col_left->get_data(),
433
202
                                                       col_right->get_element(0), vec_res);
434
435
202
            block.replace_by_position(result, std::move(col_res));
436
202
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
354
        return Status::OK();
449
354
    }
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
405
29
                            const ColumnPtr& col_right_ptr) const {
406
29
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
29
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
29
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
29
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
29
        DCHECK(!(left_is_const && right_is_const));
413
414
29
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
29
        } else if (!left_is_const && right_is_const) {
426
29
            auto col_res = ColumnUInt8::create();
427
428
29
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
29
            vec_res.resize(col_left->size());
430
29
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
29
                              typename PrimitiveTypeTraits<PT>::CppType,
432
29
                              Op<PT>>::vector_constant(col_left->get_data(),
433
29
                                                       col_right->get_element(0), vec_res);
434
435
29
            block.replace_by_position(result, std::move(col_res));
436
29
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
29
        return Status::OK();
449
29
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
557
                            const ColumnPtr& col_right_ptr) const {
406
557
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
557
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
557
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
557
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
557
        DCHECK(!(left_is_const && right_is_const));
413
414
557
        if (!left_is_const && !right_is_const) {
415
399
            auto col_res = ColumnUInt8::create();
416
417
399
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
399
            vec_res.resize(col_left->get_data().size());
419
399
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
399
                              typename PrimitiveTypeTraits<PT>::CppType,
421
399
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
399
                                                     vec_res);
423
424
399
            block.replace_by_position(result, std::move(col_res));
425
399
        } else if (!left_is_const && right_is_const) {
426
153
            auto col_res = ColumnUInt8::create();
427
428
153
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
153
            vec_res.resize(col_left->size());
430
153
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
153
                              typename PrimitiveTypeTraits<PT>::CppType,
432
153
                              Op<PT>>::vector_constant(col_left->get_data(),
433
153
                                                       col_right->get_element(0), vec_res);
434
435
153
            block.replace_by_position(result, std::move(col_res));
436
153
        } else if (left_is_const && !right_is_const) {
437
5
            auto col_res = ColumnUInt8::create();
438
439
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
5
            vec_res.resize(col_right->size());
441
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
5
                              typename PrimitiveTypeTraits<PT>::CppType,
443
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
5
                                                       col_right->get_data(), vec_res);
445
446
5
            block.replace_by_position(result, std::move(col_res));
447
5
        }
448
557
        return Status::OK();
449
557
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
45
                            const ColumnPtr& col_right_ptr) const {
406
45
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
45
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
45
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
45
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
45
        DCHECK(!(left_is_const && right_is_const));
413
414
45
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
45
        } else if (!left_is_const && right_is_const) {
426
45
            auto col_res = ColumnUInt8::create();
427
428
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
45
            vec_res.resize(col_left->size());
430
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
45
                              typename PrimitiveTypeTraits<PT>::CppType,
432
45
                              Op<PT>>::vector_constant(col_left->get_data(),
433
45
                                                       col_right->get_element(0), vec_res);
434
435
45
            block.replace_by_position(result, std::move(col_res));
436
45
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
45
        return Status::OK();
449
45
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
59
                            const ColumnPtr& col_right_ptr) const {
406
59
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
59
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
59
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
59
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
59
        DCHECK(!(left_is_const && right_is_const));
413
414
59
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
58
        } else if (!left_is_const && right_is_const) {
426
58
            auto col_res = ColumnUInt8::create();
427
428
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
58
            vec_res.resize(col_left->size());
430
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
58
                              typename PrimitiveTypeTraits<PT>::CppType,
432
58
                              Op<PT>>::vector_constant(col_left->get_data(),
433
58
                                                       col_right->get_element(0), vec_res);
434
435
58
            block.replace_by_position(result, std::move(col_res));
436
58
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
59
        return Status::OK();
449
59
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
64
                            const ColumnPtr& col_right_ptr) const {
406
64
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
64
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
64
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
64
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
64
        DCHECK(!(left_is_const && right_is_const));
413
414
64
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
64
        } else if (!left_is_const && right_is_const) {
426
64
            auto col_res = ColumnUInt8::create();
427
428
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
64
            vec_res.resize(col_left->size());
430
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
64
                              typename PrimitiveTypeTraits<PT>::CppType,
432
64
                              Op<PT>>::vector_constant(col_left->get_data(),
433
64
                                                       col_right->get_element(0), vec_res);
434
435
64
            block.replace_by_position(result, std::move(col_res));
436
64
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
64
        return Status::OK();
449
64
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
7.17k
                            const ColumnPtr& col_right_ptr) const {
406
7.17k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
7.17k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
7.17k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
7.17k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
7.17k
        DCHECK(!(left_is_const && right_is_const));
413
414
7.17k
        if (!left_is_const && !right_is_const) {
415
10
            auto col_res = ColumnUInt8::create();
416
417
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
10
            vec_res.resize(col_left->get_data().size());
419
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
10
                              typename PrimitiveTypeTraits<PT>::CppType,
421
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
10
                                                     vec_res);
423
424
10
            block.replace_by_position(result, std::move(col_res));
425
7.16k
        } else if (!left_is_const && right_is_const) {
426
6.99k
            auto col_res = ColumnUInt8::create();
427
428
6.99k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
6.99k
            vec_res.resize(col_left->size());
430
6.99k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
6.99k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
6.99k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
6.99k
                                                       col_right->get_element(0), vec_res);
434
435
6.99k
            block.replace_by_position(result, std::move(col_res));
436
6.99k
        } else if (left_is_const && !right_is_const) {
437
174
            auto col_res = ColumnUInt8::create();
438
439
174
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
174
            vec_res.resize(col_right->size());
441
174
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
174
                              typename PrimitiveTypeTraits<PT>::CppType,
443
174
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
174
                                                       col_right->get_data(), vec_res);
445
446
174
            block.replace_by_position(result, std::move(col_res));
447
174
        }
448
7.17k
        return Status::OK();
449
7.17k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
268
                            const ColumnPtr& col_right_ptr) const {
406
268
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
268
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
268
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
268
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
268
        DCHECK(!(left_is_const && right_is_const));
413
414
268
        if (!left_is_const && !right_is_const) {
415
31
            auto col_res = ColumnUInt8::create();
416
417
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
31
            vec_res.resize(col_left->get_data().size());
419
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
31
                              typename PrimitiveTypeTraits<PT>::CppType,
421
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
31
                                                     vec_res);
423
424
31
            block.replace_by_position(result, std::move(col_res));
425
237
        } else if (!left_is_const && right_is_const) {
426
189
            auto col_res = ColumnUInt8::create();
427
428
189
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
189
            vec_res.resize(col_left->size());
430
189
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
189
                              typename PrimitiveTypeTraits<PT>::CppType,
432
189
                              Op<PT>>::vector_constant(col_left->get_data(),
433
189
                                                       col_right->get_element(0), vec_res);
434
435
189
            block.replace_by_position(result, std::move(col_res));
436
189
        } else if (left_is_const && !right_is_const) {
437
48
            auto col_res = ColumnUInt8::create();
438
439
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
48
            vec_res.resize(col_right->size());
441
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
48
                              typename PrimitiveTypeTraits<PT>::CppType,
443
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
48
                                                       col_right->get_data(), vec_res);
445
446
48
            block.replace_by_position(result, std::move(col_res));
447
48
        }
448
268
        return Status::OK();
449
268
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
30
                            const ColumnPtr& col_right_ptr) const {
406
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
30
        DCHECK(!(left_is_const && right_is_const));
413
414
30
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
30
        } else if (!left_is_const && right_is_const) {
426
30
            auto col_res = ColumnUInt8::create();
427
428
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
30
            vec_res.resize(col_left->size());
430
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
30
                              typename PrimitiveTypeTraits<PT>::CppType,
432
30
                              Op<PT>>::vector_constant(col_left->get_data(),
433
30
                                                       col_right->get_element(0), vec_res);
434
435
30
            block.replace_by_position(result, std::move(col_res));
436
30
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
30
        return Status::OK();
449
30
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
10
                            const ColumnPtr& col_right_ptr) const {
406
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
10
        DCHECK(!(left_is_const && right_is_const));
413
414
10
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
10
        } else if (!left_is_const && right_is_const) {
426
10
            auto col_res = ColumnUInt8::create();
427
428
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
10
            vec_res.resize(col_left->size());
430
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
10
                              typename PrimitiveTypeTraits<PT>::CppType,
432
10
                              Op<PT>>::vector_constant(col_left->get_data(),
433
10
                                                       col_right->get_element(0), vec_res);
434
435
10
            block.replace_by_position(result, std::move(col_res));
436
10
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
10
        return Status::OK();
449
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
405
20
                            const ColumnPtr& col_right_ptr) const {
406
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
20
        DCHECK(!(left_is_const && right_is_const));
413
414
20
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
20
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
20
        return Status::OK();
449
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
137
                            const ColumnPtr& col_right_ptr) const {
406
137
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
137
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
137
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
137
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
137
        DCHECK(!(left_is_const && right_is_const));
413
414
137
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
117
        } else if (!left_is_const && right_is_const) {
426
116
            auto col_res = ColumnUInt8::create();
427
428
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
116
            vec_res.resize(col_left->size());
430
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
116
                              typename PrimitiveTypeTraits<PT>::CppType,
432
116
                              Op<PT>>::vector_constant(col_left->get_data(),
433
116
                                                       col_right->get_element(0), vec_res);
434
435
116
            block.replace_by_position(result, std::move(col_res));
436
116
        } else if (left_is_const && !right_is_const) {
437
1
            auto col_res = ColumnUInt8::create();
438
439
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
1
            vec_res.resize(col_right->size());
441
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
1
                              typename PrimitiveTypeTraits<PT>::CppType,
443
1
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
1
                                                       col_right->get_data(), vec_res);
445
446
1
            block.replace_by_position(result, std::move(col_res));
447
1
        }
448
137
        return Status::OK();
449
137
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
450
451
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
452
3.19k
                           const ColumnWithTypeAndName& col_right) const {
453
3.19k
        auto call = [&](const auto& type) -> bool {
454
3.19k
            using DispatchType = std::decay_t<decltype(type)>;
455
3.19k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
3.19k
                    block, result, col_left, col_right);
457
3.19k
            return true;
458
3.19k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
168
        auto call = [&](const auto& type) -> bool {
454
168
            using DispatchType = std::decay_t<decltype(type)>;
455
168
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
168
                    block, result, col_left, col_right);
457
168
            return true;
458
168
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
189
        auto call = [&](const auto& type) -> bool {
454
189
            using DispatchType = std::decay_t<decltype(type)>;
455
189
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
189
                    block, result, col_left, col_right);
457
189
            return true;
458
189
        };
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
453
831
        auto call = [&](const auto& type) -> bool {
454
831
            using DispatchType = std::decay_t<decltype(type)>;
455
831
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
831
                    block, result, col_left, col_right);
457
831
            return true;
458
831
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
34
        auto call = [&](const auto& type) -> bool {
454
34
            using DispatchType = std::decay_t<decltype(type)>;
455
34
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
34
                    block, result, col_left, col_right);
457
34
            return true;
458
34
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
61
        auto call = [&](const auto& type) -> bool {
454
61
            using DispatchType = std::decay_t<decltype(type)>;
455
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
61
                    block, result, col_left, col_right);
457
61
            return true;
458
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
453
28
        auto call = [&](const auto& type) -> bool {
454
28
            using DispatchType = std::decay_t<decltype(type)>;
455
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
28
                    block, result, col_left, col_right);
457
28
            return true;
458
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
30
        auto call = [&](const auto& type) -> bool {
454
30
            using DispatchType = std::decay_t<decltype(type)>;
455
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
30
                    block, result, col_left, col_right);
457
30
            return true;
458
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
8
        auto call = [&](const auto& type) -> bool {
454
8
            using DispatchType = std::decay_t<decltype(type)>;
455
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
8
                    block, result, col_left, col_right);
457
8
            return true;
458
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
66
        auto call = [&](const auto& type) -> bool {
454
66
            using DispatchType = std::decay_t<decltype(type)>;
455
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
66
                    block, result, col_left, col_right);
457
66
            return true;
458
66
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
453
698
        auto call = [&](const auto& type) -> bool {
454
698
            using DispatchType = std::decay_t<decltype(type)>;
455
698
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
698
                    block, result, col_left, col_right);
457
698
            return true;
458
698
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
2
        auto call = [&](const auto& type) -> bool {
454
2
            using DispatchType = std::decay_t<decltype(type)>;
455
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
2
                    block, result, col_left, col_right);
457
2
            return true;
458
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
1
        auto call = [&](const auto& type) -> bool {
454
1
            using DispatchType = std::decay_t<decltype(type)>;
455
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1
                    block, result, col_left, col_right);
457
1
            return true;
458
1
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
52
        auto call = [&](const auto& type) -> bool {
454
52
            using DispatchType = std::decay_t<decltype(type)>;
455
52
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
52
                    block, result, col_left, col_right);
457
52
            return true;
458
52
        };
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
453
94
        auto call = [&](const auto& type) -> bool {
454
94
            using DispatchType = std::decay_t<decltype(type)>;
455
94
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
94
                    block, result, col_left, col_right);
457
94
            return true;
458
94
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
21
        auto call = [&](const auto& type) -> bool {
454
21
            using DispatchType = std::decay_t<decltype(type)>;
455
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
21
                    block, result, col_left, col_right);
457
21
            return true;
458
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
203
        auto call = [&](const auto& type) -> bool {
454
203
            using DispatchType = std::decay_t<decltype(type)>;
455
203
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
203
                    block, result, col_left, col_right);
457
203
            return true;
458
203
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
229
        auto call = [&](const auto& type) -> bool {
454
229
            using DispatchType = std::decay_t<decltype(type)>;
455
229
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
229
                    block, result, col_left, col_right);
457
229
            return true;
458
229
        };
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
453
307
        auto call = [&](const auto& type) -> bool {
454
307
            using DispatchType = std::decay_t<decltype(type)>;
455
307
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
307
                    block, result, col_left, col_right);
457
307
            return true;
458
307
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
1
        auto call = [&](const auto& type) -> bool {
454
1
            using DispatchType = std::decay_t<decltype(type)>;
455
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1
                    block, result, col_left, col_right);
457
1
            return true;
458
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
4
        auto call = [&](const auto& type) -> bool {
454
4
            using DispatchType = std::decay_t<decltype(type)>;
455
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
4
                    block, result, col_left, col_right);
457
4
            return true;
458
4
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
67
        auto call = [&](const auto& type) -> bool {
454
67
            using DispatchType = std::decay_t<decltype(type)>;
455
67
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
67
                    block, result, col_left, col_right);
457
67
            return true;
458
67
        };
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
453
86
        auto call = [&](const auto& type) -> bool {
454
86
            using DispatchType = std::decay_t<decltype(type)>;
455
86
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
86
                    block, result, col_left, col_right);
457
86
            return true;
458
86
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
16
        auto call = [&](const auto& type) -> bool {
454
16
            using DispatchType = std::decay_t<decltype(type)>;
455
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
16
                    block, result, col_left, col_right);
457
16
            return true;
458
16
        };
459
460
3.19k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
3.19k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
3.19k
        return Status::OK();
471
3.19k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
1.22k
                           const ColumnWithTypeAndName& col_right) const {
453
1.22k
        auto call = [&](const auto& type) -> bool {
454
1.22k
            using DispatchType = std::decay_t<decltype(type)>;
455
1.22k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1.22k
                    block, result, col_left, col_right);
457
1.22k
            return true;
458
1.22k
        };
459
460
1.22k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
1.22k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
1.22k
        return Status::OK();
471
1.22k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
120
                           const ColumnWithTypeAndName& col_right) const {
453
120
        auto call = [&](const auto& type) -> bool {
454
120
            using DispatchType = std::decay_t<decltype(type)>;
455
120
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
120
                    block, result, col_left, col_right);
457
120
            return true;
458
120
        };
459
460
120
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
120
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
120
        return Status::OK();
471
120
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
774
                           const ColumnWithTypeAndName& col_right) const {
453
774
        auto call = [&](const auto& type) -> bool {
454
774
            using DispatchType = std::decay_t<decltype(type)>;
455
774
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
774
                    block, result, col_left, col_right);
457
774
            return true;
458
774
        };
459
460
774
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
774
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
774
        return Status::OK();
471
774
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
168
                           const ColumnWithTypeAndName& col_right) const {
453
168
        auto call = [&](const auto& type) -> bool {
454
168
            using DispatchType = std::decay_t<decltype(type)>;
455
168
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
168
                    block, result, col_left, col_right);
457
168
            return true;
458
168
        };
459
460
168
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
168
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
168
        return Status::OK();
471
168
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
740
                           const ColumnWithTypeAndName& col_right) const {
453
740
        auto call = [&](const auto& type) -> bool {
454
740
            using DispatchType = std::decay_t<decltype(type)>;
455
740
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
740
                    block, result, col_left, col_right);
457
740
            return true;
458
740
        };
459
460
740
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
740
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
740
        return Status::OK();
471
740
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
173
                           const ColumnWithTypeAndName& col_right) const {
453
173
        auto call = [&](const auto& type) -> bool {
454
173
            using DispatchType = std::decay_t<decltype(type)>;
455
173
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
173
                    block, result, col_left, col_right);
457
173
            return true;
458
173
        };
459
460
173
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
173
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
173
        return Status::OK();
471
173
    }
472
473
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
474
11.5k
                          const IColumn* c1) const {
475
11.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
11.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
11.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
11.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
11.5k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
11.5k
        DCHECK(!(c0_const && c1_const));
484
11.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
485
11.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
486
11.5k
        ColumnString::Offset c0_const_size = 0;
487
11.5k
        ColumnString::Offset c1_const_size = 0;
488
489
11.5k
        if (c0_const) {
490
6
            const ColumnString* c0_const_string =
491
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
6
            if (c0_const_string) {
494
6
                c0_const_chars = &c0_const_string->get_chars();
495
6
                c0_const_size = c0_const_string->get_offsets()[0];
496
6
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
6
        }
501
502
11.5k
        if (c1_const) {
503
10.6k
            const ColumnString* c1_const_string =
504
10.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
10.6k
            if (c1_const_string) {
507
10.6k
                c1_const_chars = &c1_const_string->get_chars();
508
10.6k
                c1_const_size = c1_const_string->get_offsets()[0];
509
10.6k
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
10.6k
        }
514
515
11.5k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
11.5k
        auto c_res = ColumnUInt8::create();
518
11.5k
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
11.5k
        vec_res.resize(c0->size());
520
521
11.5k
        if (c0_string && c1_string) {
522
920
            StringImpl::string_vector_string_vector(
523
920
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
920
                    c1_string->get_offsets(), vec_res);
525
10.6k
        } else if (c0_string && c1_const) {
526
10.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
10.6k
                                               *c1_const_chars, c1_const_size, vec_res);
528
10.6k
        } else if (c0_const && c1_string) {
529
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
6
                                               vec_res);
532
6
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
11.5k
        block.replace_by_position(result, std::move(c_res));
537
11.5k
        return Status::OK();
538
11.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
10.2k
                          const IColumn* c1) const {
475
10.2k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
10.2k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
10.2k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
10.2k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
10.2k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
10.2k
        DCHECK(!(c0_const && c1_const));
484
10.2k
        const ColumnString::Chars* c0_const_chars = nullptr;
485
10.2k
        const ColumnString::Chars* c1_const_chars = nullptr;
486
10.2k
        ColumnString::Offset c0_const_size = 0;
487
10.2k
        ColumnString::Offset c1_const_size = 0;
488
489
10.2k
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
10.2k
        if (c1_const) {
503
9.75k
            const ColumnString* c1_const_string =
504
9.75k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
9.75k
            if (c1_const_string) {
507
9.75k
                c1_const_chars = &c1_const_string->get_chars();
508
9.75k
                c1_const_size = c1_const_string->get_offsets()[0];
509
9.75k
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
9.75k
        }
514
515
10.2k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
10.2k
        auto c_res = ColumnUInt8::create();
518
10.2k
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
10.2k
        vec_res.resize(c0->size());
520
521
10.2k
        if (c0_string && c1_string) {
522
469
            StringImpl::string_vector_string_vector(
523
469
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
469
                    c1_string->get_offsets(), vec_res);
525
9.75k
        } else if (c0_string && c1_const) {
526
9.75k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
9.75k
                                               *c1_const_chars, c1_const_size, vec_res);
528
9.75k
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
10.2k
        block.replace_by_position(result, std::move(c_res));
537
10.2k
        return Status::OK();
538
10.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
88
                          const IColumn* c1) const {
475
88
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
88
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
88
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
88
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
88
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
88
        DCHECK(!(c0_const && c1_const));
484
88
        const ColumnString::Chars* c0_const_chars = nullptr;
485
88
        const ColumnString::Chars* c1_const_chars = nullptr;
486
88
        ColumnString::Offset c0_const_size = 0;
487
88
        ColumnString::Offset c1_const_size = 0;
488
489
88
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
88
        if (c1_const) {
503
87
            const ColumnString* c1_const_string =
504
87
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
87
            if (c1_const_string) {
507
87
                c1_const_chars = &c1_const_string->get_chars();
508
87
                c1_const_size = c1_const_string->get_offsets()[0];
509
87
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
87
        }
514
515
88
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
88
        auto c_res = ColumnUInt8::create();
518
88
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
88
        vec_res.resize(c0->size());
520
521
88
        if (c0_string && c1_string) {
522
1
            StringImpl::string_vector_string_vector(
523
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
1
                    c1_string->get_offsets(), vec_res);
525
87
        } else if (c0_string && c1_const) {
526
87
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
87
                                               *c1_const_chars, c1_const_size, vec_res);
528
87
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
88
        block.replace_by_position(result, std::move(c_res));
537
88
        return Status::OK();
538
88
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
184
                          const IColumn* c1) const {
475
184
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
184
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
184
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
184
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
184
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
184
        DCHECK(!(c0_const && c1_const));
484
184
        const ColumnString::Chars* c0_const_chars = nullptr;
485
184
        const ColumnString::Chars* c1_const_chars = nullptr;
486
184
        ColumnString::Offset c0_const_size = 0;
487
184
        ColumnString::Offset c1_const_size = 0;
488
489
184
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
184
        if (c1_const) {
503
182
            const ColumnString* c1_const_string =
504
182
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
182
            if (c1_const_string) {
507
182
                c1_const_chars = &c1_const_string->get_chars();
508
182
                c1_const_size = c1_const_string->get_offsets()[0];
509
182
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
182
        }
514
515
184
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
184
        auto c_res = ColumnUInt8::create();
518
184
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
184
        vec_res.resize(c0->size());
520
521
184
        if (c0_string && c1_string) {
522
2
            StringImpl::string_vector_string_vector(
523
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
2
                    c1_string->get_offsets(), vec_res);
525
182
        } else if (c0_string && c1_const) {
526
182
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
182
                                               *c1_const_chars, c1_const_size, vec_res);
528
182
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
184
        block.replace_by_position(result, std::move(c_res));
537
184
        return Status::OK();
538
184
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
331
                          const IColumn* c1) const {
475
331
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
331
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
331
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
331
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
331
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
331
        DCHECK(!(c0_const && c1_const));
484
331
        const ColumnString::Chars* c0_const_chars = nullptr;
485
331
        const ColumnString::Chars* c1_const_chars = nullptr;
486
331
        ColumnString::Offset c0_const_size = 0;
487
331
        ColumnString::Offset c1_const_size = 0;
488
489
331
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
331
        if (c1_const) {
503
295
            const ColumnString* c1_const_string =
504
295
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
295
            if (c1_const_string) {
507
295
                c1_const_chars = &c1_const_string->get_chars();
508
295
                c1_const_size = c1_const_string->get_offsets()[0];
509
295
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
295
        }
514
515
331
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
331
        auto c_res = ColumnUInt8::create();
518
331
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
331
        vec_res.resize(c0->size());
520
521
331
        if (c0_string && c1_string) {
522
36
            StringImpl::string_vector_string_vector(
523
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
36
                    c1_string->get_offsets(), vec_res);
525
295
        } else if (c0_string && c1_const) {
526
295
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
295
                                               *c1_const_chars, c1_const_size, vec_res);
528
295
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
331
        block.replace_by_position(result, std::move(c_res));
537
331
        return Status::OK();
538
331
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
514
                          const IColumn* c1) const {
475
514
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
514
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
514
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
514
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
514
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
514
        DCHECK(!(c0_const && c1_const));
484
514
        const ColumnString::Chars* c0_const_chars = nullptr;
485
514
        const ColumnString::Chars* c1_const_chars = nullptr;
486
514
        ColumnString::Offset c0_const_size = 0;
487
514
        ColumnString::Offset c1_const_size = 0;
488
489
514
        if (c0_const) {
490
6
            const ColumnString* c0_const_string =
491
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
6
            if (c0_const_string) {
494
6
                c0_const_chars = &c0_const_string->get_chars();
495
6
                c0_const_size = c0_const_string->get_offsets()[0];
496
6
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
6
        }
501
502
514
        if (c1_const) {
503
96
            const ColumnString* c1_const_string =
504
96
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
96
            if (c1_const_string) {
507
96
                c1_const_chars = &c1_const_string->get_chars();
508
96
                c1_const_size = c1_const_string->get_offsets()[0];
509
96
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
96
        }
514
515
514
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
514
        auto c_res = ColumnUInt8::create();
518
514
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
514
        vec_res.resize(c0->size());
520
521
514
        if (c0_string && c1_string) {
522
412
            StringImpl::string_vector_string_vector(
523
412
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
412
                    c1_string->get_offsets(), vec_res);
525
412
        } else if (c0_string && c1_const) {
526
96
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
96
                                               *c1_const_chars, c1_const_size, vec_res);
528
96
        } else if (c0_const && c1_string) {
529
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
6
                                               vec_res);
532
6
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
514
        block.replace_by_position(result, std::move(c_res));
537
514
        return Status::OK();
538
514
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
254
                          const IColumn* c1) const {
475
254
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
254
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
254
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
254
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
254
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
254
        DCHECK(!(c0_const && c1_const));
484
254
        const ColumnString::Chars* c0_const_chars = nullptr;
485
254
        const ColumnString::Chars* c1_const_chars = nullptr;
486
254
        ColumnString::Offset c0_const_size = 0;
487
254
        ColumnString::Offset c1_const_size = 0;
488
489
254
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
254
        if (c1_const) {
503
254
            const ColumnString* c1_const_string =
504
254
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
254
            if (c1_const_string) {
507
254
                c1_const_chars = &c1_const_string->get_chars();
508
254
                c1_const_size = c1_const_string->get_offsets()[0];
509
254
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
254
        }
514
515
254
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
254
        auto c_res = ColumnUInt8::create();
518
254
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
254
        vec_res.resize(c0->size());
520
521
254
        if (c0_string && c1_string) {
522
0
            StringImpl::string_vector_string_vector(
523
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
0
                    c1_string->get_offsets(), vec_res);
525
254
        } else if (c0_string && c1_const) {
526
254
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
254
                                               *c1_const_chars, c1_const_size, vec_res);
528
254
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
254
        block.replace_by_position(result, std::move(c_res));
537
254
        return Status::OK();
538
254
    }
539
540
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
541
138
                                         const IColumn* c1) const {
542
138
        bool c0_const = is_column_const(*c0);
543
138
        bool c1_const = is_column_const(*c1);
544
545
138
        DCHECK(!(c0_const && c1_const));
546
547
138
        auto c_res = ColumnUInt8::create();
548
138
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
138
        vec_res.resize(c0->size());
550
551
138
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
138
        } else if (c1_const) {
554
129
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
129
        } else {
556
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
9
        }
558
559
138
        block.replace_by_position(result, std::move(c_res));
560
138
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
17
                                         const IColumn* c1) const {
542
17
        bool c0_const = is_column_const(*c0);
543
17
        bool c1_const = is_column_const(*c1);
544
545
17
        DCHECK(!(c0_const && c1_const));
546
547
17
        auto c_res = ColumnUInt8::create();
548
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
17
        vec_res.resize(c0->size());
550
551
17
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
17
        } else if (c1_const) {
554
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
13
        } else {
556
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
4
        }
558
559
17
        block.replace_by_position(result, std::move(c_res));
560
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
8
                                         const IColumn* c1) const {
542
8
        bool c0_const = is_column_const(*c0);
543
8
        bool c1_const = is_column_const(*c1);
544
545
8
        DCHECK(!(c0_const && c1_const));
546
547
8
        auto c_res = ColumnUInt8::create();
548
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
8
        vec_res.resize(c0->size());
550
551
8
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
8
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
0
        }
558
559
8
        block.replace_by_position(result, std::move(c_res));
560
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
9
                                         const IColumn* c1) const {
542
9
        bool c0_const = is_column_const(*c0);
543
9
        bool c1_const = is_column_const(*c1);
544
545
9
        DCHECK(!(c0_const && c1_const));
546
547
9
        auto c_res = ColumnUInt8::create();
548
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
9
        vec_res.resize(c0->size());
550
551
9
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
9
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
1
        }
558
559
9
        block.replace_by_position(result, std::move(c_res));
560
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
39
                                         const IColumn* c1) const {
542
39
        bool c0_const = is_column_const(*c0);
543
39
        bool c1_const = is_column_const(*c1);
544
545
39
        DCHECK(!(c0_const && c1_const));
546
547
39
        auto c_res = ColumnUInt8::create();
548
39
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
39
        vec_res.resize(c0->size());
550
551
39
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
39
        } else if (c1_const) {
554
38
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
38
        } else {
556
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
1
        }
558
559
39
        block.replace_by_position(result, std::move(c_res));
560
39
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
11
                                         const IColumn* c1) const {
542
11
        bool c0_const = is_column_const(*c0);
543
11
        bool c1_const = is_column_const(*c1);
544
545
11
        DCHECK(!(c0_const && c1_const));
546
547
11
        auto c_res = ColumnUInt8::create();
548
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
11
        vec_res.resize(c0->size());
550
551
11
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
11
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
3
        }
558
559
11
        block.replace_by_position(result, std::move(c_res));
560
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
54
                                         const IColumn* c1) const {
542
54
        bool c0_const = is_column_const(*c0);
543
54
        bool c1_const = is_column_const(*c1);
544
545
54
        DCHECK(!(c0_const && c1_const));
546
547
54
        auto c_res = ColumnUInt8::create();
548
54
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
54
        vec_res.resize(c0->size());
550
551
54
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
54
        } else if (c1_const) {
554
54
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
54
        } else {
556
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
0
        }
558
559
54
        block.replace_by_position(result, std::move(c_res));
560
54
    }
561
562
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
563
138
                           const ColumnWithTypeAndName& c1) const {
564
138
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
138
        return Status::OK();
566
138
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
17
                           const ColumnWithTypeAndName& c1) const {
564
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
17
        return Status::OK();
566
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
8
                           const ColumnWithTypeAndName& c1) const {
564
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
8
        return Status::OK();
566
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
9
                           const ColumnWithTypeAndName& c1) const {
564
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
9
        return Status::OK();
566
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
39
                           const ColumnWithTypeAndName& c1) const {
564
39
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
39
        return Status::OK();
566
39
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
11
                           const ColumnWithTypeAndName& c1) const {
564
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
11
        return Status::OK();
566
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
54
                           const ColumnWithTypeAndName& c1) const {
564
54
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
54
        return Status::OK();
566
54
    }
567
568
public:
569
221
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
569
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
80
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
569
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
1
    String get_name() const override { return name; }
570
571
263k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
241k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
1.13k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
571
4.86k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
5.64k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
571
2.96k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
7.40k
    size_t get_number_of_arguments() const override { return 2; }
572
573
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
574
2.58k
                                                const VExprSPtrs& arguments) const override {
575
2.58k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
2.58k
        DORIS_CHECK(op.has_value());
577
2.58k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
2.58k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
1.55k
                                                const VExprSPtrs& arguments) const override {
575
1.55k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
1.55k
        DORIS_CHECK(op.has_value());
577
1.55k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
1.55k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
143
                                                const VExprSPtrs& arguments) const override {
575
143
        auto op = comparison_zonemap_detail::op_from_name(name);
576
143
        DORIS_CHECK(op.has_value());
577
143
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
143
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
198
                                                const VExprSPtrs& arguments) const override {
575
198
        auto op = comparison_zonemap_detail::op_from_name(name);
576
198
        DORIS_CHECK(op.has_value());
577
198
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
198
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
234
                                                const VExprSPtrs& arguments) const override {
575
234
        auto op = comparison_zonemap_detail::op_from_name(name);
576
234
        DORIS_CHECK(op.has_value());
577
234
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
234
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
268
                                                const VExprSPtrs& arguments) const override {
575
268
        auto op = comparison_zonemap_detail::op_from_name(name);
576
268
        DORIS_CHECK(op.has_value());
577
268
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
268
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
185
                                                const VExprSPtrs& arguments) const override {
575
185
        auto op = comparison_zonemap_detail::op_from_name(name);
576
185
        DORIS_CHECK(op.has_value());
577
185
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
185
    }
579
580
31.4k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
31.4k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
31.4k
               comparison_zonemap_detail::can_evaluate(arguments);
583
31.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
13.7k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
13.7k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
13.7k
               comparison_zonemap_detail::can_evaluate(arguments);
583
13.7k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
1.26k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
1.26k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
1.26k
               comparison_zonemap_detail::can_evaluate(arguments);
583
1.26k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
4.86k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
4.86k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
4.86k
               comparison_zonemap_detail::can_evaluate(arguments);
583
4.86k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
5.13k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
5.13k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
5.13k
               comparison_zonemap_detail::can_evaluate(arguments);
583
5.13k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
3.35k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
3.35k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
3.36k
               comparison_zonemap_detail::can_evaluate(arguments);
583
3.35k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
3.08k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
3.08k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
3.08k
               comparison_zonemap_detail::can_evaluate(arguments);
583
3.08k
    }
584
585
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
586
262k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
262k
        return std::make_shared<DataTypeUInt8>();
588
262k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
240k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
240k
        return std::make_shared<DataTypeUInt8>();
588
240k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
1.13k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
1.13k
        return std::make_shared<DataTypeUInt8>();
588
1.13k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
4.86k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
4.86k
        return std::make_shared<DataTypeUInt8>();
588
4.86k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
5.65k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
5.65k
        return std::make_shared<DataTypeUInt8>();
588
5.65k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
2.96k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
2.96k
        return std::make_shared<DataTypeUInt8>();
588
2.96k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
7.41k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
7.41k
        return std::make_shared<DataTypeUInt8>();
588
7.41k
    }
589
590
    Status evaluate_inverted_index(
591
            const ColumnsWithTypeAndName& arguments,
592
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
593
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
594
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
595
1.35k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
1.35k
        DCHECK(arguments.size() == 1);
597
1.35k
        DCHECK(data_type_with_names.size() == 1);
598
1.35k
        DCHECK(iterators.size() == 1);
599
1.35k
        auto* iter = iterators[0];
600
1.35k
        auto data_type_with_name = data_type_with_names[0];
601
1.35k
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
1.35k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
310
            return Status::OK();
606
310
        }
607
1.04k
        segment_v2::InvertedIndexQueryType query_type;
608
1.04k
        std::string_view name_view(name);
609
1.04k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
723
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
723
        } else if (name_view == NameLess::name) {
612
76
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
247
        } else if (name_view == NameLessOrEquals::name) {
614
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
166
        } else if (name_view == NameGreater::name) {
616
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
93
        } else if (name_view == NameGreaterOrEquals::name) {
618
93
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
93
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
1.04k
        if (segment_v2::is_range_query(query_type) &&
624
1.04k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
133
            return Status::OK();
627
133
        }
628
913
        Field param_value;
629
913
        arguments[0].column->get(0, param_value);
630
913
        if (param_value.is_null()) {
631
2
            return Status::OK();
632
2
        }
633
911
        segment_v2::InvertedIndexParam param;
634
911
        param.column_name = data_type_with_name.first;
635
911
        param.column_type = data_type_with_name.second;
636
911
        param.query_value = param_value;
637
911
        param.query_type = query_type;
638
911
        param.num_rows = num_rows;
639
911
        param.roaring = std::make_shared<roaring::Roaring>();
640
911
        param.analyzer_ctx = analyzer_ctx;
641
911
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
755
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
755
        if (iter->has_null()) {
644
753
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
753
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
753
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
753
        }
648
755
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
755
        bitmap_result = result;
650
755
        bitmap_result.mask_out_null();
651
652
755
        if (name_view == NameNotEquals::name) {
653
59
            roaring::Roaring full_result;
654
59
            full_result.addRange(0, num_rows);
655
59
            bitmap_result.op_not(&full_result);
656
59
        }
657
658
755
        return Status::OK();
659
755
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
699
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
699
        DCHECK(arguments.size() == 1);
597
699
        DCHECK(data_type_with_names.size() == 1);
598
699
        DCHECK(iterators.size() == 1);
599
699
        auto* iter = iterators[0];
600
699
        auto data_type_with_name = data_type_with_names[0];
601
699
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
699
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
42
            return Status::OK();
606
42
        }
607
657
        segment_v2::InvertedIndexQueryType query_type;
608
657
        std::string_view name_view(name);
609
657
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
657
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
657
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
0
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
657
        if (segment_v2::is_range_query(query_type) &&
624
657
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
0
            return Status::OK();
627
0
        }
628
657
        Field param_value;
629
657
        arguments[0].column->get(0, param_value);
630
657
        if (param_value.is_null()) {
631
2
            return Status::OK();
632
2
        }
633
655
        segment_v2::InvertedIndexParam param;
634
655
        param.column_name = data_type_with_name.first;
635
655
        param.column_type = data_type_with_name.second;
636
655
        param.query_value = param_value;
637
655
        param.query_type = query_type;
638
655
        param.num_rows = num_rows;
639
655
        param.roaring = std::make_shared<roaring::Roaring>();
640
655
        param.analyzer_ctx = analyzer_ctx;
641
655
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
605
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
605
        if (iter->has_null()) {
644
604
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
604
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
604
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
604
        }
648
605
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
605
        bitmap_result = result;
650
605
        bitmap_result.mask_out_null();
651
652
605
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
605
        return Status::OK();
659
605
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
72
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
72
        DCHECK(arguments.size() == 1);
597
72
        DCHECK(data_type_with_names.size() == 1);
598
72
        DCHECK(iterators.size() == 1);
599
72
        auto* iter = iterators[0];
600
72
        auto data_type_with_name = data_type_with_names[0];
601
72
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
72
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
6
            return Status::OK();
606
6
        }
607
66
        segment_v2::InvertedIndexQueryType query_type;
608
66
        std::string_view name_view(name);
609
66
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
66
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
66
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
0
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
66
        if (segment_v2::is_range_query(query_type) &&
624
66
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
0
            return Status::OK();
627
0
        }
628
66
        Field param_value;
629
66
        arguments[0].column->get(0, param_value);
630
66
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
66
        segment_v2::InvertedIndexParam param;
634
66
        param.column_name = data_type_with_name.first;
635
66
        param.column_type = data_type_with_name.second;
636
66
        param.query_value = param_value;
637
66
        param.query_type = query_type;
638
66
        param.num_rows = num_rows;
639
66
        param.roaring = std::make_shared<roaring::Roaring>();
640
66
        param.analyzer_ctx = analyzer_ctx;
641
66
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
59
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
59
        if (iter->has_null()) {
644
59
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
59
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
59
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
59
        }
648
59
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
59
        bitmap_result = result;
650
59
        bitmap_result.mask_out_null();
651
652
59
        if (name_view == NameNotEquals::name) {
653
59
            roaring::Roaring full_result;
654
59
            full_result.addRange(0, num_rows);
655
59
            bitmap_result.op_not(&full_result);
656
59
        }
657
658
59
        return Status::OK();
659
59
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
112
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
112
        DCHECK(arguments.size() == 1);
597
112
        DCHECK(data_type_with_names.size() == 1);
598
112
        DCHECK(iterators.size() == 1);
599
112
        auto* iter = iterators[0];
600
112
        auto data_type_with_name = data_type_with_names[0];
601
112
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
112
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
39
            return Status::OK();
606
39
        }
607
73
        segment_v2::InvertedIndexQueryType query_type;
608
73
        std::string_view name_view(name);
609
73
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
73
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
73
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
73
        } else if (name_view == NameGreater::name) {
616
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
73
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
73
        if (segment_v2::is_range_query(query_type) &&
624
73
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
17
            return Status::OK();
627
17
        }
628
56
        Field param_value;
629
56
        arguments[0].column->get(0, param_value);
630
56
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
56
        segment_v2::InvertedIndexParam param;
634
56
        param.column_name = data_type_with_name.first;
635
56
        param.column_type = data_type_with_name.second;
636
56
        param.query_value = param_value;
637
56
        param.query_type = query_type;
638
56
        param.num_rows = num_rows;
639
56
        param.roaring = std::make_shared<roaring::Roaring>();
640
56
        param.analyzer_ctx = analyzer_ctx;
641
56
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
37
        if (iter->has_null()) {
644
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
37
        }
648
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
37
        bitmap_result = result;
650
37
        bitmap_result.mask_out_null();
651
652
37
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
37
        return Status::OK();
659
37
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
179
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
179
        DCHECK(arguments.size() == 1);
597
179
        DCHECK(data_type_with_names.size() == 1);
598
179
        DCHECK(iterators.size() == 1);
599
179
        auto* iter = iterators[0];
600
179
        auto data_type_with_name = data_type_with_names[0];
601
179
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
179
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
86
            return Status::OK();
606
86
        }
607
93
        segment_v2::InvertedIndexQueryType query_type;
608
93
        std::string_view name_view(name);
609
93
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
93
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
93
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
93
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
93
        } else if (name_view == NameGreaterOrEquals::name) {
618
93
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
93
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
93
        if (segment_v2::is_range_query(query_type) &&
624
93
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
47
            return Status::OK();
627
47
        }
628
46
        Field param_value;
629
46
        arguments[0].column->get(0, param_value);
630
46
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
46
        segment_v2::InvertedIndexParam param;
634
46
        param.column_name = data_type_with_name.first;
635
46
        param.column_type = data_type_with_name.second;
636
46
        param.query_value = param_value;
637
46
        param.query_type = query_type;
638
46
        param.num_rows = num_rows;
639
46
        param.roaring = std::make_shared<roaring::Roaring>();
640
46
        param.analyzer_ctx = analyzer_ctx;
641
46
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
6
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
6
        if (iter->has_null()) {
644
5
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
5
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
5
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
5
        }
648
6
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
6
        bitmap_result = result;
650
6
        bitmap_result.mask_out_null();
651
652
6
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
6
        return Status::OK();
659
6
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
119
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
119
        DCHECK(arguments.size() == 1);
597
119
        DCHECK(data_type_with_names.size() == 1);
598
119
        DCHECK(iterators.size() == 1);
599
119
        auto* iter = iterators[0];
600
119
        auto data_type_with_name = data_type_with_names[0];
601
119
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
119
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
43
            return Status::OK();
606
43
        }
607
76
        segment_v2::InvertedIndexQueryType query_type;
608
76
        std::string_view name_view(name);
609
76
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
76
        } else if (name_view == NameLess::name) {
612
76
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
76
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
76
        if (segment_v2::is_range_query(query_type) &&
624
76
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
18
            return Status::OK();
627
18
        }
628
58
        Field param_value;
629
58
        arguments[0].column->get(0, param_value);
630
58
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
58
        segment_v2::InvertedIndexParam param;
634
58
        param.column_name = data_type_with_name.first;
635
58
        param.column_type = data_type_with_name.second;
636
58
        param.query_value = param_value;
637
58
        param.query_type = query_type;
638
58
        param.num_rows = num_rows;
639
58
        param.roaring = std::make_shared<roaring::Roaring>();
640
58
        param.analyzer_ctx = analyzer_ctx;
641
58
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
39
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
39
        if (iter->has_null()) {
644
39
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
39
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
39
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
39
        }
648
39
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
39
        bitmap_result = result;
650
39
        bitmap_result.mask_out_null();
651
652
39
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
39
        return Status::OK();
659
39
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
175
        DCHECK(arguments.size() == 1);
597
175
        DCHECK(data_type_with_names.size() == 1);
598
175
        DCHECK(iterators.size() == 1);
599
175
        auto* iter = iterators[0];
600
175
        auto data_type_with_name = data_type_with_names[0];
601
175
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
94
            return Status::OK();
606
94
        }
607
81
        segment_v2::InvertedIndexQueryType query_type;
608
81
        std::string_view name_view(name);
609
81
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
81
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
81
        } else if (name_view == NameLessOrEquals::name) {
614
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
81
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
81
        if (segment_v2::is_range_query(query_type) &&
624
81
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
51
            return Status::OK();
627
51
        }
628
30
        Field param_value;
629
30
        arguments[0].column->get(0, param_value);
630
30
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
30
        segment_v2::InvertedIndexParam param;
634
30
        param.column_name = data_type_with_name.first;
635
30
        param.column_type = data_type_with_name.second;
636
30
        param.query_value = param_value;
637
30
        param.query_type = query_type;
638
30
        param.num_rows = num_rows;
639
30
        param.roaring = std::make_shared<roaring::Roaring>();
640
30
        param.analyzer_ctx = analyzer_ctx;
641
30
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
9
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
9
        if (iter->has_null()) {
644
9
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
9
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
9
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
9
        }
648
9
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
9
        bitmap_result = result;
650
9
        bitmap_result.mask_out_null();
651
652
9
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
9
        return Status::OK();
659
9
    }
660
661
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
662
123k
                        uint32_t result, size_t input_rows_count) const override {
663
123k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
123k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
123k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
123k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
123k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
123k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
123k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
123k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
123k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
123k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
232k
        auto can_compare = [](PrimitiveType t) -> bool {
701
232k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
232k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
145k
        auto can_compare = [](PrimitiveType t) -> bool {
701
145k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
145k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
4.83k
        auto can_compare = [](PrimitiveType t) -> bool {
701
4.83k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
4.83k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
41.5k
        auto can_compare = [](PrimitiveType t) -> bool {
701
41.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
41.5k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
6.62k
        auto can_compare = [](PrimitiveType t) -> bool {
701
6.62k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
6.62k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
16.5k
        auto can_compare = [](PrimitiveType t) -> bool {
701
16.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
16.5k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
17.3k
        auto can_compare = [](PrimitiveType t) -> bool {
701
17.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
17.3k
        };
703
704
123k
        if (can_compare(left_type->get_primitive_type()) &&
705
123k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
108k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
108k
        }
713
714
123k
        auto compare_type = left_type->get_primitive_type();
715
123k
        switch (compare_type) {
716
244
        case TYPE_BOOLEAN:
717
244
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
5.37k
        case TYPE_DATEV2:
719
5.37k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
1.01k
        case TYPE_DATETIMEV2:
721
1.01k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
7
        case TYPE_TIMESTAMPTZ:
723
7
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
8.77k
        case TYPE_TINYINT:
725
8.77k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
2.51k
        case TYPE_SMALLINT:
727
2.51k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
80.8k
        case TYPE_INT:
729
80.8k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
6.62k
        case TYPE_BIGINT:
731
6.62k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
718
        case TYPE_LARGEINT:
733
718
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
74
        case TYPE_IPV4:
735
74
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
48
        case TYPE_IPV6:
737
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
582
        case TYPE_FLOAT:
739
582
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
1.96k
        case TYPE_DOUBLE:
741
1.96k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
4
        case TYPE_TIMEV2:
743
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
384
        case TYPE_DECIMAL32:
746
1.04k
        case TYPE_DECIMAL64:
747
3.09k
        case TYPE_DECIMAL128I:
748
3.19k
        case TYPE_DECIMAL256:
749
3.19k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
3.19k
                                   col_with_type_and_name_right);
751
703
        case TYPE_CHAR:
752
6.31k
        case TYPE_VARCHAR:
753
11.5k
        case TYPE_STRING:
754
11.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
138
        default:
756
138
            return execute_generic(block, result, col_with_type_and_name_left,
757
138
                                   col_with_type_and_name_right);
758
123k
        }
759
0
        return Status::OK();
760
123k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
78.5k
                        uint32_t result, size_t input_rows_count) const override {
663
78.5k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
78.5k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
78.5k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
78.5k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
78.5k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
78.5k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
78.5k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
78.5k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
78.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
78.6k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
78.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
78.5k
        };
703
704
78.5k
        if (can_compare(left_type->get_primitive_type()) &&
705
78.5k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
67.1k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
67.1k
        }
713
714
78.5k
        auto compare_type = left_type->get_primitive_type();
715
78.5k
        switch (compare_type) {
716
94
        case TYPE_BOOLEAN:
717
94
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
1.04k
        case TYPE_DATEV2:
719
1.04k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
480
        case TYPE_DATETIMEV2:
721
480
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
2
        case TYPE_TIMESTAMPTZ:
723
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
4.99k
        case TYPE_TINYINT:
725
4.99k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
453
        case TYPE_SMALLINT:
727
453
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
56.2k
        case TYPE_INT:
729
56.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
2.80k
        case TYPE_BIGINT:
731
2.80k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
143
        case TYPE_LARGEINT:
733
143
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
31
        case TYPE_IPV4:
735
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
30
        case TYPE_IPV6:
737
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
117
        case TYPE_FLOAT:
739
117
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
700
        case TYPE_DOUBLE:
741
700
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
4
        case TYPE_TIMEV2:
743
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
168
        case TYPE_DECIMAL32:
746
357
        case TYPE_DECIMAL64:
747
1.18k
        case TYPE_DECIMAL128I:
748
1.22k
        case TYPE_DECIMAL256:
749
1.22k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
1.22k
                                   col_with_type_and_name_right);
751
436
        case TYPE_CHAR:
752
5.52k
        case TYPE_VARCHAR:
753
10.2k
        case TYPE_STRING:
754
10.2k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
17
        default:
756
17
            return execute_generic(block, result, col_with_type_and_name_left,
757
17
                                   col_with_type_and_name_right);
758
78.5k
        }
759
0
        return Status::OK();
760
78.5k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
2.52k
                        uint32_t result, size_t input_rows_count) const override {
663
2.52k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
2.52k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
2.52k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
2.52k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
2.52k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
2.52k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
2.52k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
2.52k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
2.52k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
2.52k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
2.52k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
2.52k
        };
703
704
2.52k
        if (can_compare(left_type->get_primitive_type()) &&
705
2.52k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
2.31k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
2.31k
        }
713
714
2.52k
        auto compare_type = left_type->get_primitive_type();
715
2.52k
        switch (compare_type) {
716
0
        case TYPE_BOOLEAN:
717
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
70
        case TYPE_DATEV2:
719
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
0
        case TYPE_DATETIMEV2:
721
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
0
        case TYPE_TIMESTAMPTZ:
723
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
84
        case TYPE_TINYINT:
725
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
0
        case TYPE_SMALLINT:
727
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
1.13k
        case TYPE_INT:
729
1.13k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
916
        case TYPE_BIGINT:
731
916
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
0
        case TYPE_LARGEINT:
733
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
0
        case TYPE_IPV4:
735
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
0
        case TYPE_IPV6:
737
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
48
        case TYPE_FLOAT:
739
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
60
        case TYPE_DOUBLE:
741
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
0
        case TYPE_DECIMAL32:
746
62
        case TYPE_DECIMAL64:
747
90
        case TYPE_DECIMAL128I:
748
120
        case TYPE_DECIMAL256:
749
120
            return execute_decimal(block, result, col_with_type_and_name_left,
750
120
                                   col_with_type_and_name_right);
751
1
        case TYPE_CHAR:
752
26
        case TYPE_VARCHAR:
753
88
        case TYPE_STRING:
754
88
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
8
        default:
756
8
            return execute_generic(block, result, col_with_type_and_name_left,
757
8
                                   col_with_type_and_name_right);
758
2.52k
        }
759
0
        return Status::OK();
760
2.52k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
21.2k
                        uint32_t result, size_t input_rows_count) const override {
663
21.2k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
21.2k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
21.2k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
21.2k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
21.2k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
21.2k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
21.2k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
21.2k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
21.2k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
21.2k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
21.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
21.2k
        };
703
704
21.2k
        if (can_compare(left_type->get_primitive_type()) &&
705
21.2k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
20.3k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
20.3k
        }
713
714
21.2k
        auto compare_type = left_type->get_primitive_type();
715
21.2k
        switch (compare_type) {
716
0
        case TYPE_BOOLEAN:
717
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
1.12k
        case TYPE_DATEV2:
719
1.12k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
2
        case TYPE_DATETIMEV2:
721
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
1
        case TYPE_TIMESTAMPTZ:
723
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
1.43k
        case TYPE_TINYINT:
725
1.43k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
1.79k
        case TYPE_SMALLINT:
727
1.79k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
13.2k
        case TYPE_INT:
729
13.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
1.65k
        case TYPE_BIGINT:
731
1.65k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
250
        case TYPE_LARGEINT:
733
250
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
4
        case TYPE_IPV4:
735
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
1
        case TYPE_IPV6:
737
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
220
        case TYPE_FLOAT:
739
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
545
        case TYPE_DOUBLE:
741
545
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
8
        case TYPE_DECIMAL32:
746
74
        case TYPE_DECIMAL64:
747
772
        case TYPE_DECIMAL128I:
748
774
        case TYPE_DECIMAL256:
749
774
            return execute_decimal(block, result, col_with_type_and_name_left,
750
774
                                   col_with_type_and_name_right);
751
14
        case TYPE_CHAR:
752
76
        case TYPE_VARCHAR:
753
184
        case TYPE_STRING:
754
184
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
9
        default:
756
9
            return execute_generic(block, result, col_with_type_and_name_left,
757
9
                                   col_with_type_and_name_right);
758
21.2k
        }
759
0
        return Status::OK();
760
21.2k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
3.56k
                        uint32_t result, size_t input_rows_count) const override {
663
3.56k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
3.56k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
3.56k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
3.56k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
3.56k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
3.56k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
3.56k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
3.56k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
3.56k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
3.56k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
3.56k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
3.56k
        };
703
704
3.56k
        if (can_compare(left_type->get_primitive_type()) &&
705
3.56k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
3.06k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
3.06k
        }
713
714
3.56k
        auto compare_type = left_type->get_primitive_type();
715
3.56k
        switch (compare_type) {
716
26
        case TYPE_BOOLEAN:
717
26
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
513
        case TYPE_DATEV2:
719
513
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
143
        case TYPE_DATETIMEV2:
721
143
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
1
        case TYPE_TIMESTAMPTZ:
723
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
56
        case TYPE_TINYINT:
725
56
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
50
        case TYPE_SMALLINT:
727
50
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
1.82k
        case TYPE_INT:
729
1.82k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
182
        case TYPE_BIGINT:
731
182
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
24
        case TYPE_LARGEINT:
733
24
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
11
        case TYPE_IPV4:
735
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
1
        case TYPE_IPV6:
737
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
24
        case TYPE_FLOAT:
739
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
166
        case TYPE_DOUBLE:
741
166
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
1
        case TYPE_DECIMAL32:
746
53
        case TYPE_DECIMAL64:
747
147
        case TYPE_DECIMAL128I:
748
168
        case TYPE_DECIMAL256:
749
168
            return execute_decimal(block, result, col_with_type_and_name_left,
750
168
                                   col_with_type_and_name_right);
751
36
        case TYPE_CHAR:
752
211
        case TYPE_VARCHAR:
753
331
        case TYPE_STRING:
754
331
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
39
        default:
756
39
            return execute_generic(block, result, col_with_type_and_name_left,
757
39
                                   col_with_type_and_name_right);
758
3.56k
        }
759
0
        return Status::OK();
760
3.56k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
8.89k
                        uint32_t result, size_t input_rows_count) const override {
663
8.89k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
8.89k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
8.89k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
8.89k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
8.89k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
8.89k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
8.89k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
8.89k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
8.89k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
8.89k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
8.89k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
8.89k
        };
703
704
8.89k
        if (can_compare(left_type->get_primitive_type()) &&
705
8.89k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
7.62k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
7.62k
        }
713
714
8.89k
        auto compare_type = left_type->get_primitive_type();
715
8.89k
        switch (compare_type) {
716
95
        case TYPE_BOOLEAN:
717
95
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
2.07k
        case TYPE_DATEV2:
719
2.07k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
343
        case TYPE_DATETIMEV2:
721
343
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
2
        case TYPE_TIMESTAMPTZ:
723
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
2.15k
        case TYPE_TINYINT:
725
2.15k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
151
        case TYPE_SMALLINT:
727
151
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
1.20k
        case TYPE_INT:
729
1.20k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
793
        case TYPE_BIGINT:
731
793
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
271
        case TYPE_LARGEINT:
733
271
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
18
        case TYPE_IPV4:
735
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
16
        case TYPE_IPV6:
737
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
153
        case TYPE_FLOAT:
739
153
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
354
        case TYPE_DOUBLE:
741
354
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
203
        case TYPE_DECIMAL32:
746
432
        case TYPE_DECIMAL64:
747
739
        case TYPE_DECIMAL128I:
748
740
        case TYPE_DECIMAL256:
749
740
            return execute_decimal(block, result, col_with_type_and_name_left,
750
740
                                   col_with_type_and_name_right);
751
179
        case TYPE_CHAR:
752
353
        case TYPE_VARCHAR:
753
514
        case TYPE_STRING:
754
514
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
11
        default:
756
11
            return execute_generic(block, result, col_with_type_and_name_left,
757
11
                                   col_with_type_and_name_right);
758
8.89k
        }
759
0
        return Status::OK();
760
8.89k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
8.87k
                        uint32_t result, size_t input_rows_count) const override {
663
8.87k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
8.87k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
8.87k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
8.87k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
8.87k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
8.87k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
8.87k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
8.87k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
8.87k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
8.87k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
8.87k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
8.87k
        };
703
704
8.87k
        if (can_compare(left_type->get_primitive_type()) &&
705
8.87k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
8.44k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
8.44k
        }
713
714
8.87k
        auto compare_type = left_type->get_primitive_type();
715
8.87k
        switch (compare_type) {
716
29
        case TYPE_BOOLEAN:
717
29
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
557
        case TYPE_DATEV2:
719
557
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
45
        case TYPE_DATETIMEV2:
721
45
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
1
        case TYPE_TIMESTAMPTZ:
723
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
59
        case TYPE_TINYINT:
725
59
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
64
        case TYPE_SMALLINT:
727
64
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
7.17k
        case TYPE_INT:
729
7.17k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
268
        case TYPE_BIGINT:
731
268
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
30
        case TYPE_LARGEINT:
733
30
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
10
        case TYPE_IPV4:
735
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
0
        case TYPE_IPV6:
737
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
20
        case TYPE_FLOAT:
739
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
137
        case TYPE_DOUBLE:
741
137
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
4
        case TYPE_DECIMAL32:
746
71
        case TYPE_DECIMAL64:
747
156
        case TYPE_DECIMAL128I:
748
172
        case TYPE_DECIMAL256:
749
172
            return execute_decimal(block, result, col_with_type_and_name_left,
750
172
                                   col_with_type_and_name_right);
751
37
        case TYPE_CHAR:
752
127
        case TYPE_VARCHAR:
753
254
        case TYPE_STRING:
754
254
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
54
        default:
756
54
            return execute_generic(block, result, col_with_type_and_name_left,
757
54
                                   col_with_type_and_name_right);
758
8.87k
        }
759
0
        return Status::OK();
760
8.87k
    }
761
};
762
763
} // namespace doris