Coverage Report

Created: 2026-05-09 09:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/memcmp_small.h"
38
#include "core/value/vdatetime_value.h"
39
#include "exprs/function/function.h"
40
#include "exprs/function/function_helpers.h"
41
#include "exprs/function/functions_logical.h"
42
#include "storage/index/index_reader_helper.h"
43
44
namespace doris {
45
46
/** Comparison functions: ==, !=, <, >, <=, >=.
47
  * The comparison functions always return 0 or 1 (UInt8).
48
  *
49
  * You can compare the following types:
50
  * - numbers and decimals;
51
  * - strings and fixed strings;
52
  * - dates;
53
  * - datetimes;
54
  *   within each group, but not from different groups;
55
  * - tuples (lexicographic comparison).
56
  *
57
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
58
  */
59
60
template <typename A, typename B, typename Op>
61
struct NumComparisonImpl {
62
    /// 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.
63
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
64
11.3k
                                        PaddedPODArray<UInt8>& c) {
65
11.3k
        size_t size = a.size();
66
11.3k
        const A* __restrict a_pos = a.data();
67
11.3k
        const B* __restrict b_pos = b.data();
68
11.3k
        UInt8* __restrict c_pos = c.data();
69
11.3k
        const A* __restrict a_end = a_pos + size;
70
71
10.4M
        while (a_pos < a_end) {
72
10.4M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
10.4M
            ++a_pos;
74
10.4M
            ++b_pos;
75
10.4M
            ++c_pos;
76
10.4M
        }
77
11.3k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
64
70
                                        PaddedPODArray<UInt8>& c) {
65
70
        size_t size = a.size();
66
70
        const A* __restrict a_pos = a.data();
67
70
        const B* __restrict b_pos = b.data();
68
70
        UInt8* __restrict c_pos = c.data();
69
70
        const A* __restrict a_end = a_pos + size;
70
71
140
        while (a_pos < a_end) {
72
70
            *c_pos = Op::apply(*a_pos, *b_pos);
73
70
            ++a_pos;
74
70
            ++b_pos;
75
70
            ++c_pos;
76
70
        }
77
70
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
198
                                        PaddedPODArray<UInt8>& c) {
65
198
        size_t size = a.size();
66
198
        const A* __restrict a_pos = a.data();
67
198
        const B* __restrict b_pos = b.data();
68
198
        UInt8* __restrict c_pos = c.data();
69
198
        const A* __restrict a_end = a_pos + size;
70
71
402
        while (a_pos < a_end) {
72
204
            *c_pos = Op::apply(*a_pos, *b_pos);
73
204
            ++a_pos;
74
204
            ++b_pos;
75
204
            ++c_pos;
76
204
        }
77
198
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
250
                                        PaddedPODArray<UInt8>& c) {
65
250
        size_t size = a.size();
66
250
        const A* __restrict a_pos = a.data();
67
250
        const B* __restrict b_pos = b.data();
68
250
        UInt8* __restrict c_pos = c.data();
69
250
        const A* __restrict a_end = a_pos + size;
70
71
519
        while (a_pos < a_end) {
72
269
            *c_pos = Op::apply(*a_pos, *b_pos);
73
269
            ++a_pos;
74
269
            ++b_pos;
75
269
            ++c_pos;
76
269
        }
77
250
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
4
                                        PaddedPODArray<UInt8>& c) {
65
4
        size_t size = a.size();
66
4
        const A* __restrict a_pos = a.data();
67
4
        const B* __restrict b_pos = b.data();
68
4
        UInt8* __restrict c_pos = c.data();
69
4
        const A* __restrict a_end = a_pos + size;
70
71
14
        while (a_pos < a_end) {
72
10
            *c_pos = Op::apply(*a_pos, *b_pos);
73
10
            ++a_pos;
74
10
            ++b_pos;
75
10
            ++c_pos;
76
10
        }
77
4
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
594
                                        PaddedPODArray<UInt8>& c) {
65
594
        size_t size = a.size();
66
594
        const A* __restrict a_pos = a.data();
67
594
        const B* __restrict b_pos = b.data();
68
594
        UInt8* __restrict c_pos = c.data();
69
594
        const A* __restrict a_end = a_pos + size;
70
71
5.00k
        while (a_pos < a_end) {
72
4.41k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4.41k
            ++a_pos;
74
4.41k
            ++b_pos;
75
4.41k
            ++c_pos;
76
4.41k
        }
77
594
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
101
                                        PaddedPODArray<UInt8>& c) {
65
101
        size_t size = a.size();
66
101
        const A* __restrict a_pos = a.data();
67
101
        const B* __restrict b_pos = b.data();
68
101
        UInt8* __restrict c_pos = c.data();
69
101
        const A* __restrict a_end = a_pos + size;
70
71
515
        while (a_pos < a_end) {
72
414
            *c_pos = Op::apply(*a_pos, *b_pos);
73
414
            ++a_pos;
74
414
            ++b_pos;
75
414
            ++c_pos;
76
414
        }
77
101
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
247
                                        PaddedPODArray<UInt8>& c) {
65
247
        size_t size = a.size();
66
247
        const A* __restrict a_pos = a.data();
67
247
        const B* __restrict b_pos = b.data();
68
247
        UInt8* __restrict c_pos = c.data();
69
247
        const A* __restrict a_end = a_pos + size;
70
71
1.92k
        while (a_pos < a_end) {
72
1.67k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.67k
            ++a_pos;
74
1.67k
            ++b_pos;
75
1.67k
            ++c_pos;
76
1.67k
        }
77
247
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
410
                                        PaddedPODArray<UInt8>& c) {
65
410
        size_t size = a.size();
66
410
        const A* __restrict a_pos = a.data();
67
410
        const B* __restrict b_pos = b.data();
68
410
        UInt8* __restrict c_pos = c.data();
69
410
        const A* __restrict a_end = a_pos + size;
70
71
12.1k
        while (a_pos < a_end) {
72
11.7k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
11.7k
            ++a_pos;
74
11.7k
            ++b_pos;
75
11.7k
            ++c_pos;
76
11.7k
        }
77
410
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
76
                                        PaddedPODArray<UInt8>& c) {
65
76
        size_t size = a.size();
66
76
        const A* __restrict a_pos = a.data();
67
76
        const B* __restrict b_pos = b.data();
68
76
        UInt8* __restrict c_pos = c.data();
69
76
        const A* __restrict a_end = a_pos + size;
70
71
166
        while (a_pos < a_end) {
72
90
            *c_pos = Op::apply(*a_pos, *b_pos);
73
90
            ++a_pos;
74
90
            ++b_pos;
75
90
            ++c_pos;
76
90
        }
77
76
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
5
                                        PaddedPODArray<UInt8>& c) {
65
5
        size_t size = a.size();
66
5
        const A* __restrict a_pos = a.data();
67
5
        const B* __restrict b_pos = b.data();
68
5
        UInt8* __restrict c_pos = c.data();
69
5
        const A* __restrict a_end = a_pos + size;
70
71
10
        while (a_pos < a_end) {
72
5
            *c_pos = Op::apply(*a_pos, *b_pos);
73
5
            ++a_pos;
74
5
            ++b_pos;
75
5
            ++c_pos;
76
5
        }
77
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
13
                                        PaddedPODArray<UInt8>& c) {
65
13
        size_t size = a.size();
66
13
        const A* __restrict a_pos = a.data();
67
13
        const B* __restrict b_pos = b.data();
68
13
        UInt8* __restrict c_pos = c.data();
69
13
        const A* __restrict a_end = a_pos + size;
70
71
26
        while (a_pos < a_end) {
72
13
            *c_pos = Op::apply(*a_pos, *b_pos);
73
13
            ++a_pos;
74
13
            ++b_pos;
75
13
            ++c_pos;
76
13
        }
77
13
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
96
                                        PaddedPODArray<UInt8>& c) {
65
96
        size_t size = a.size();
66
96
        const A* __restrict a_pos = a.data();
67
96
        const B* __restrict b_pos = b.data();
68
96
        UInt8* __restrict c_pos = c.data();
69
96
        const A* __restrict a_end = a_pos + size;
70
71
211
        while (a_pos < a_end) {
72
115
            *c_pos = Op::apply(*a_pos, *b_pos);
73
115
            ++a_pos;
74
115
            ++b_pos;
75
115
            ++c_pos;
76
115
        }
77
96
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
96
                                        PaddedPODArray<UInt8>& c) {
65
96
        size_t size = a.size();
66
96
        const A* __restrict a_pos = a.data();
67
96
        const B* __restrict b_pos = b.data();
68
96
        UInt8* __restrict c_pos = c.data();
69
96
        const A* __restrict a_end = a_pos + size;
70
71
213
        while (a_pos < a_end) {
72
117
            *c_pos = Op::apply(*a_pos, *b_pos);
73
117
            ++a_pos;
74
117
            ++b_pos;
75
117
            ++c_pos;
76
117
        }
77
96
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
4
                                        PaddedPODArray<UInt8>& c) {
65
4
        size_t size = a.size();
66
4
        const A* __restrict a_pos = a.data();
67
4
        const B* __restrict b_pos = b.data();
68
4
        UInt8* __restrict c_pos = c.data();
69
4
        const A* __restrict a_end = a_pos + size;
70
71
8
        while (a_pos < a_end) {
72
4
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4
            ++a_pos;
74
4
            ++b_pos;
75
4
            ++c_pos;
76
4
        }
77
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
64
39
                                        PaddedPODArray<UInt8>& c) {
65
39
        size_t size = a.size();
66
39
        const A* __restrict a_pos = a.data();
67
39
        const B* __restrict b_pos = b.data();
68
39
        UInt8* __restrict c_pos = c.data();
69
39
        const A* __restrict a_end = a_pos + size;
70
71
108
        while (a_pos < a_end) {
72
69
            *c_pos = Op::apply(*a_pos, *b_pos);
73
69
            ++a_pos;
74
69
            ++b_pos;
75
69
            ++c_pos;
76
69
        }
77
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
64
56
                                        PaddedPODArray<UInt8>& c) {
65
56
        size_t size = a.size();
66
56
        const A* __restrict a_pos = a.data();
67
56
        const B* __restrict b_pos = b.data();
68
56
        UInt8* __restrict c_pos = c.data();
69
56
        const A* __restrict a_end = a_pos + size;
70
71
252
        while (a_pos < a_end) {
72
196
            *c_pos = Op::apply(*a_pos, *b_pos);
73
196
            ++a_pos;
74
196
            ++b_pos;
75
196
            ++c_pos;
76
196
        }
77
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
64
435
                                        PaddedPODArray<UInt8>& c) {
65
435
        size_t size = a.size();
66
435
        const A* __restrict a_pos = a.data();
67
435
        const B* __restrict b_pos = b.data();
68
435
        UInt8* __restrict c_pos = c.data();
69
435
        const A* __restrict a_end = a_pos + size;
70
71
296k
        while (a_pos < a_end) {
72
295k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
295k
            ++a_pos;
74
295k
            ++b_pos;
75
295k
            ++c_pos;
76
295k
        }
77
435
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
418
                                        PaddedPODArray<UInt8>& c) {
65
418
        size_t size = a.size();
66
418
        const A* __restrict a_pos = a.data();
67
418
        const B* __restrict b_pos = b.data();
68
418
        UInt8* __restrict c_pos = c.data();
69
418
        const A* __restrict a_end = a_pos + size;
70
71
25.4k
        while (a_pos < a_end) {
72
25.0k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
25.0k
            ++a_pos;
74
25.0k
            ++b_pos;
75
25.0k
            ++c_pos;
76
25.0k
        }
77
418
    }
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
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
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
64
1.05k
                                        PaddedPODArray<UInt8>& c) {
65
1.05k
        size_t size = a.size();
66
1.05k
        const A* __restrict a_pos = a.data();
67
1.05k
        const B* __restrict b_pos = b.data();
68
1.05k
        UInt8* __restrict c_pos = c.data();
69
1.05k
        const A* __restrict a_end = a_pos + size;
70
71
2.67M
        while (a_pos < a_end) {
72
2.67M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
2.67M
            ++a_pos;
74
2.67M
            ++b_pos;
75
2.67M
            ++c_pos;
76
2.67M
        }
77
1.05k
    }
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
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
200
                                        PaddedPODArray<UInt8>& c) {
65
200
        size_t size = a.size();
66
200
        const A* __restrict a_pos = a.data();
67
200
        const B* __restrict b_pos = b.data();
68
200
        UInt8* __restrict c_pos = c.data();
69
200
        const A* __restrict a_end = a_pos + size;
70
71
1.97k
        while (a_pos < a_end) {
72
1.77k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.77k
            ++a_pos;
74
1.77k
            ++b_pos;
75
1.77k
            ++c_pos;
76
1.77k
        }
77
200
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
452
                                        PaddedPODArray<UInt8>& c) {
65
452
        size_t size = a.size();
66
452
        const A* __restrict a_pos = a.data();
67
452
        const B* __restrict b_pos = b.data();
68
452
        UInt8* __restrict c_pos = c.data();
69
452
        const A* __restrict a_end = a_pos + size;
70
71
4.19k
        while (a_pos < a_end) {
72
3.74k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
3.74k
            ++a_pos;
74
3.74k
            ++b_pos;
75
3.74k
            ++c_pos;
76
3.74k
        }
77
452
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
2.00k
                                        PaddedPODArray<UInt8>& c) {
65
2.00k
        size_t size = a.size();
66
2.00k
        const A* __restrict a_pos = a.data();
67
2.00k
        const B* __restrict b_pos = b.data();
68
2.00k
        UInt8* __restrict c_pos = c.data();
69
2.00k
        const A* __restrict a_end = a_pos + size;
70
71
6.21M
        while (a_pos < a_end) {
72
6.21M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
6.21M
            ++a_pos;
74
6.21M
            ++b_pos;
75
6.21M
            ++c_pos;
76
6.21M
        }
77
2.00k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
148
                                        PaddedPODArray<UInt8>& c) {
65
148
        size_t size = a.size();
66
148
        const A* __restrict a_pos = a.data();
67
148
        const B* __restrict b_pos = b.data();
68
148
        UInt8* __restrict c_pos = c.data();
69
148
        const A* __restrict a_end = a_pos + size;
70
71
1.77k
        while (a_pos < a_end) {
72
1.62k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.62k
            ++a_pos;
74
1.62k
            ++b_pos;
75
1.62k
            ++c_pos;
76
1.62k
        }
77
148
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
12
                                        PaddedPODArray<UInt8>& c) {
65
12
        size_t size = a.size();
66
12
        const A* __restrict a_pos = a.data();
67
12
        const B* __restrict b_pos = b.data();
68
12
        UInt8* __restrict c_pos = c.data();
69
12
        const A* __restrict a_end = a_pos + size;
70
71
92
        while (a_pos < a_end) {
72
80
            *c_pos = Op::apply(*a_pos, *b_pos);
73
80
            ++a_pos;
74
80
            ++b_pos;
75
80
            ++c_pos;
76
80
        }
77
12
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
46
                                        PaddedPODArray<UInt8>& c) {
65
46
        size_t size = a.size();
66
46
        const A* __restrict a_pos = a.data();
67
46
        const B* __restrict b_pos = b.data();
68
46
        UInt8* __restrict c_pos = c.data();
69
46
        const A* __restrict a_end = a_pos + size;
70
71
144
        while (a_pos < a_end) {
72
98
            *c_pos = Op::apply(*a_pos, *b_pos);
73
98
            ++a_pos;
74
98
            ++b_pos;
75
98
            ++c_pos;
76
98
        }
77
46
    }
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
64
7
                                        PaddedPODArray<UInt8>& c) {
65
7
        size_t size = a.size();
66
7
        const A* __restrict a_pos = a.data();
67
7
        const B* __restrict b_pos = b.data();
68
7
        UInt8* __restrict c_pos = c.data();
69
7
        const A* __restrict a_end = a_pos + size;
70
71
38
        while (a_pos < a_end) {
72
31
            *c_pos = Op::apply(*a_pos, *b_pos);
73
31
            ++a_pos;
74
31
            ++b_pos;
75
31
            ++c_pos;
76
31
        }
77
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
8
                                        PaddedPODArray<UInt8>& c) {
65
8
        size_t size = a.size();
66
8
        const A* __restrict a_pos = a.data();
67
8
        const B* __restrict b_pos = b.data();
68
8
        UInt8* __restrict c_pos = c.data();
69
8
        const A* __restrict a_end = a_pos + size;
70
71
67
        while (a_pos < a_end) {
72
59
            *c_pos = Op::apply(*a_pos, *b_pos);
73
59
            ++a_pos;
74
59
            ++b_pos;
75
59
            ++c_pos;
76
59
        }
77
8
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
7
        while (a_pos < a_end) {
72
4
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4
            ++a_pos;
74
4
            ++b_pos;
75
4
            ++c_pos;
76
4
        }
77
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
9
                                        PaddedPODArray<UInt8>& c) {
65
9
        size_t size = a.size();
66
9
        const A* __restrict a_pos = a.data();
67
9
        const B* __restrict b_pos = b.data();
68
9
        UInt8* __restrict c_pos = c.data();
69
9
        const A* __restrict a_end = a_pos + size;
70
71
64
        while (a_pos < a_end) {
72
55
            *c_pos = Op::apply(*a_pos, *b_pos);
73
55
            ++a_pos;
74
55
            ++b_pos;
75
55
            ++c_pos;
76
55
        }
77
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
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
28
                                        PaddedPODArray<UInt8>& c) {
65
28
        size_t size = a.size();
66
28
        const A* __restrict a_pos = a.data();
67
28
        const B* __restrict b_pos = b.data();
68
28
        UInt8* __restrict c_pos = c.data();
69
28
        const A* __restrict a_end = a_pos + size;
70
71
134
        while (a_pos < a_end) {
72
106
            *c_pos = Op::apply(*a_pos, *b_pos);
73
106
            ++a_pos;
74
106
            ++b_pos;
75
106
            ++c_pos;
76
106
        }
77
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
64
75
                                        PaddedPODArray<UInt8>& c) {
65
75
        size_t size = a.size();
66
75
        const A* __restrict a_pos = a.data();
67
75
        const B* __restrict b_pos = b.data();
68
75
        UInt8* __restrict c_pos = c.data();
69
75
        const A* __restrict a_end = a_pos + size;
70
71
150
        while (a_pos < a_end) {
72
75
            *c_pos = Op::apply(*a_pos, *b_pos);
73
75
            ++a_pos;
74
75
            ++b_pos;
75
75
            ++c_pos;
76
75
        }
77
75
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
1.74k
                                        PaddedPODArray<UInt8>& c) {
65
1.74k
        size_t size = a.size();
66
1.74k
        const A* __restrict a_pos = a.data();
67
1.74k
        const B* __restrict b_pos = b.data();
68
1.74k
        UInt8* __restrict c_pos = c.data();
69
1.74k
        const A* __restrict a_end = a_pos + size;
70
71
1.22M
        while (a_pos < a_end) {
72
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.22M
            ++a_pos;
74
1.22M
            ++b_pos;
75
1.22M
            ++c_pos;
76
1.22M
        }
77
1.74k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
241
                                        PaddedPODArray<UInt8>& c) {
65
241
        size_t size = a.size();
66
241
        const A* __restrict a_pos = a.data();
67
241
        const B* __restrict b_pos = b.data();
68
241
        UInt8* __restrict c_pos = c.data();
69
241
        const A* __restrict a_end = a_pos + size;
70
71
482
        while (a_pos < a_end) {
72
241
            *c_pos = Op::apply(*a_pos, *b_pos);
73
241
            ++a_pos;
74
241
            ++b_pos;
75
241
            ++c_pos;
76
241
        }
77
241
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
553
                                        PaddedPODArray<UInt8>& c) {
65
553
        size_t size = a.size();
66
553
        const A* __restrict a_pos = a.data();
67
553
        const B* __restrict b_pos = b.data();
68
553
        UInt8* __restrict c_pos = c.data();
69
553
        const A* __restrict a_end = a_pos + size;
70
71
4.46k
        while (a_pos < a_end) {
72
3.91k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
3.91k
            ++a_pos;
74
3.91k
            ++b_pos;
75
3.91k
            ++c_pos;
76
3.91k
        }
77
553
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
106
                                        PaddedPODArray<UInt8>& c) {
65
106
        size_t size = a.size();
66
106
        const A* __restrict a_pos = a.data();
67
106
        const B* __restrict b_pos = b.data();
68
106
        UInt8* __restrict c_pos = c.data();
69
106
        const A* __restrict a_end = a_pos + size;
70
71
213
        while (a_pos < a_end) {
72
107
            *c_pos = Op::apply(*a_pos, *b_pos);
73
107
            ++a_pos;
74
107
            ++b_pos;
75
107
            ++c_pos;
76
107
        }
77
106
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
144
                                        PaddedPODArray<UInt8>& c) {
65
144
        size_t size = a.size();
66
144
        const A* __restrict a_pos = a.data();
67
144
        const B* __restrict b_pos = b.data();
68
144
        UInt8* __restrict c_pos = c.data();
69
144
        const A* __restrict a_end = a_pos + size;
70
71
790
        while (a_pos < a_end) {
72
646
            *c_pos = Op::apply(*a_pos, *b_pos);
73
646
            ++a_pos;
74
646
            ++b_pos;
75
646
            ++c_pos;
76
646
        }
77
144
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
252
                                        PaddedPODArray<UInt8>& c) {
65
252
        size_t size = a.size();
66
252
        const A* __restrict a_pos = a.data();
67
252
        const B* __restrict b_pos = b.data();
68
252
        UInt8* __restrict c_pos = c.data();
69
252
        const A* __restrict a_end = a_pos + size;
70
71
5.76k
        while (a_pos < a_end) {
72
5.51k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
5.51k
            ++a_pos;
74
5.51k
            ++b_pos;
75
5.51k
            ++c_pos;
76
5.51k
        }
77
252
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
153
                                        PaddedPODArray<UInt8>& c) {
65
153
        size_t size = a.size();
66
153
        const A* __restrict a_pos = a.data();
67
153
        const B* __restrict b_pos = b.data();
68
153
        UInt8* __restrict c_pos = c.data();
69
153
        const A* __restrict a_end = a_pos + size;
70
71
409
        while (a_pos < a_end) {
72
256
            *c_pos = Op::apply(*a_pos, *b_pos);
73
256
            ++a_pos;
74
256
            ++b_pos;
75
256
            ++c_pos;
76
256
        }
77
153
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
16
                                        PaddedPODArray<UInt8>& c) {
65
16
        size_t size = a.size();
66
16
        const A* __restrict a_pos = a.data();
67
16
        const B* __restrict b_pos = b.data();
68
16
        UInt8* __restrict c_pos = c.data();
69
16
        const A* __restrict a_end = a_pos + size;
70
71
32
        while (a_pos < a_end) {
72
16
            *c_pos = Op::apply(*a_pos, *b_pos);
73
16
            ++a_pos;
74
16
            ++b_pos;
75
16
            ++c_pos;
76
16
        }
77
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
16
                                        PaddedPODArray<UInt8>& c) {
65
16
        size_t size = a.size();
66
16
        const A* __restrict a_pos = a.data();
67
16
        const B* __restrict b_pos = b.data();
68
16
        UInt8* __restrict c_pos = c.data();
69
16
        const A* __restrict a_end = a_pos + size;
70
71
32
        while (a_pos < a_end) {
72
16
            *c_pos = Op::apply(*a_pos, *b_pos);
73
16
            ++a_pos;
74
16
            ++b_pos;
75
16
            ++c_pos;
76
16
        }
77
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
131
                                        PaddedPODArray<UInt8>& c) {
65
131
        size_t size = a.size();
66
131
        const A* __restrict a_pos = a.data();
67
131
        const B* __restrict b_pos = b.data();
68
131
        UInt8* __restrict c_pos = c.data();
69
131
        const A* __restrict a_end = a_pos + size;
70
71
281
        while (a_pos < a_end) {
72
150
            *c_pos = Op::apply(*a_pos, *b_pos);
73
150
            ++a_pos;
74
150
            ++b_pos;
75
150
            ++c_pos;
76
150
        }
77
131
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
149
                                        PaddedPODArray<UInt8>& c) {
65
149
        size_t size = a.size();
66
149
        const A* __restrict a_pos = a.data();
67
149
        const B* __restrict b_pos = b.data();
68
149
        UInt8* __restrict c_pos = c.data();
69
149
        const A* __restrict a_end = a_pos + size;
70
71
329
        while (a_pos < a_end) {
72
180
            *c_pos = Op::apply(*a_pos, *b_pos);
73
180
            ++a_pos;
74
180
            ++b_pos;
75
180
            ++c_pos;
76
180
        }
77
149
    }
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
64
426
                                        PaddedPODArray<UInt8>& c) {
65
426
        size_t size = a.size();
66
426
        const A* __restrict a_pos = a.data();
67
426
        const B* __restrict b_pos = b.data();
68
426
        UInt8* __restrict c_pos = c.data();
69
426
        const A* __restrict a_end = a_pos + size;
70
71
6.73k
        while (a_pos < a_end) {
72
6.30k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
6.30k
            ++a_pos;
74
6.30k
            ++b_pos;
75
6.30k
            ++c_pos;
76
6.30k
        }
77
426
    }
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
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
5
        while (a_pos < a_end) {
72
4
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4
            ++a_pos;
74
4
            ++b_pos;
75
4
            ++c_pos;
76
4
        }
77
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
64
52
                                        PaddedPODArray<UInt8>& c) {
65
52
        size_t size = a.size();
66
52
        const A* __restrict a_pos = a.data();
67
52
        const B* __restrict b_pos = b.data();
68
52
        UInt8* __restrict c_pos = c.data();
69
52
        const A* __restrict a_end = a_pos + size;
70
71
1.04k
        while (a_pos < a_end) {
72
996
            *c_pos = Op::apply(*a_pos, *b_pos);
73
996
            ++a_pos;
74
996
            ++b_pos;
75
996
            ++c_pos;
76
996
        }
77
52
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
77
                                        PaddedPODArray<UInt8>& c) {
65
77
        size_t size = a.size();
66
77
        const A* __restrict a_pos = a.data();
67
77
        const B* __restrict b_pos = b.data();
68
77
        UInt8* __restrict c_pos = c.data();
69
77
        const A* __restrict a_end = a_pos + size;
70
71
333
        while (a_pos < a_end) {
72
256
            *c_pos = Op::apply(*a_pos, *b_pos);
73
256
            ++a_pos;
74
256
            ++b_pos;
75
256
            ++c_pos;
76
256
        }
77
77
    }
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
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
78
79
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
80
157k
                                          PaddedPODArray<UInt8>& c) {
81
157k
        size_t size = a.size();
82
157k
        const A* __restrict a_pos = a.data();
83
157k
        UInt8* __restrict c_pos = c.data();
84
157k
        const A* __restrict a_end = a_pos + size;
85
86
192M
        while (a_pos < a_end) {
87
192M
            *c_pos = Op::apply(*a_pos, b);
88
192M
            ++a_pos;
89
192M
            ++c_pos;
90
192M
        }
91
157k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
1.54k
                                          PaddedPODArray<UInt8>& c) {
81
1.54k
        size_t size = a.size();
82
1.54k
        const A* __restrict a_pos = a.data();
83
1.54k
        UInt8* __restrict c_pos = c.data();
84
1.54k
        const A* __restrict a_end = a_pos + size;
85
86
5.05k
        while (a_pos < a_end) {
87
3.50k
            *c_pos = Op::apply(*a_pos, b);
88
3.50k
            ++a_pos;
89
3.50k
            ++c_pos;
90
3.50k
        }
91
1.54k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
1.02k
                                          PaddedPODArray<UInt8>& c) {
81
1.02k
        size_t size = a.size();
82
1.02k
        const A* __restrict a_pos = a.data();
83
1.02k
        UInt8* __restrict c_pos = c.data();
84
1.02k
        const A* __restrict a_end = a_pos + size;
85
86
204k
        while (a_pos < a_end) {
87
203k
            *c_pos = Op::apply(*a_pos, b);
88
203k
            ++a_pos;
89
203k
            ++c_pos;
90
203k
        }
91
1.02k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
411
                                          PaddedPODArray<UInt8>& c) {
81
411
        size_t size = a.size();
82
411
        const A* __restrict a_pos = a.data();
83
411
        UInt8* __restrict c_pos = c.data();
84
411
        const A* __restrict a_end = a_pos + size;
85
86
101k
        while (a_pos < a_end) {
87
100k
            *c_pos = Op::apply(*a_pos, b);
88
100k
            ++a_pos;
89
100k
            ++c_pos;
90
100k
        }
91
411
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
4.68k
                                          PaddedPODArray<UInt8>& c) {
81
4.68k
        size_t size = a.size();
82
4.68k
        const A* __restrict a_pos = a.data();
83
4.68k
        UInt8* __restrict c_pos = c.data();
84
4.68k
        const A* __restrict a_end = a_pos + size;
85
86
9.12M
        while (a_pos < a_end) {
87
9.12M
            *c_pos = Op::apply(*a_pos, b);
88
9.12M
            ++a_pos;
89
9.12M
            ++c_pos;
90
9.12M
        }
91
4.68k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.21k
                                          PaddedPODArray<UInt8>& c) {
81
1.21k
        size_t size = a.size();
82
1.21k
        const A* __restrict a_pos = a.data();
83
1.21k
        UInt8* __restrict c_pos = c.data();
84
1.21k
        const A* __restrict a_end = a_pos + size;
85
86
127k
        while (a_pos < a_end) {
87
126k
            *c_pos = Op::apply(*a_pos, b);
88
126k
            ++a_pos;
89
126k
            ++c_pos;
90
126k
        }
91
1.21k
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
30.1k
                                          PaddedPODArray<UInt8>& c) {
81
30.1k
        size_t size = a.size();
82
30.1k
        const A* __restrict a_pos = a.data();
83
30.1k
        UInt8* __restrict c_pos = c.data();
84
30.1k
        const A* __restrict a_end = a_pos + size;
85
86
2.04M
        while (a_pos < a_end) {
87
2.01M
            *c_pos = Op::apply(*a_pos, b);
88
2.01M
            ++a_pos;
89
2.01M
            ++c_pos;
90
2.01M
        }
91
30.1k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
22.6k
                                          PaddedPODArray<UInt8>& c) {
81
22.6k
        size_t size = a.size();
82
22.6k
        const A* __restrict a_pos = a.data();
83
22.6k
        UInt8* __restrict c_pos = c.data();
84
22.6k
        const A* __restrict a_end = a_pos + size;
85
86
2.84M
        while (a_pos < a_end) {
87
2.82M
            *c_pos = Op::apply(*a_pos, b);
88
2.82M
            ++a_pos;
89
2.82M
            ++c_pos;
90
2.82M
        }
91
22.6k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
54
                                          PaddedPODArray<UInt8>& c) {
81
54
        size_t size = a.size();
82
54
        const A* __restrict a_pos = a.data();
83
54
        UInt8* __restrict c_pos = c.data();
84
54
        const A* __restrict a_end = a_pos + size;
85
86
101k
        while (a_pos < a_end) {
87
101k
            *c_pos = Op::apply(*a_pos, b);
88
101k
            ++a_pos;
89
101k
            ++c_pos;
90
101k
        }
91
54
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
15
                                          PaddedPODArray<UInt8>& c) {
81
15
        size_t size = a.size();
82
15
        const A* __restrict a_pos = a.data();
83
15
        UInt8* __restrict c_pos = c.data();
84
15
        const A* __restrict a_end = a_pos + size;
85
86
129
        while (a_pos < a_end) {
87
114
            *c_pos = Op::apply(*a_pos, b);
88
114
            ++a_pos;
89
114
            ++c_pos;
90
114
        }
91
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
6
                                          PaddedPODArray<UInt8>& c) {
81
6
        size_t size = a.size();
82
6
        const A* __restrict a_pos = a.data();
83
6
        UInt8* __restrict c_pos = c.data();
84
6
        const A* __restrict a_end = a_pos + size;
85
86
12
        while (a_pos < a_end) {
87
6
            *c_pos = Op::apply(*a_pos, b);
88
6
            ++a_pos;
89
6
            ++c_pos;
90
6
        }
91
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
4
                                          PaddedPODArray<UInt8>& c) {
81
4
        size_t size = a.size();
82
4
        const A* __restrict a_pos = a.data();
83
4
        UInt8* __restrict c_pos = c.data();
84
4
        const A* __restrict a_end = a_pos + size;
85
86
26
        while (a_pos < a_end) {
87
22
            *c_pos = Op::apply(*a_pos, b);
88
22
            ++a_pos;
89
22
            ++c_pos;
90
22
        }
91
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
240
                                          PaddedPODArray<UInt8>& c) {
81
240
        size_t size = a.size();
82
240
        const A* __restrict a_pos = a.data();
83
240
        UInt8* __restrict c_pos = c.data();
84
240
        const A* __restrict a_end = a_pos + size;
85
86
701k
        while (a_pos < a_end) {
87
701k
            *c_pos = Op::apply(*a_pos, b);
88
701k
            ++a_pos;
89
701k
            ++c_pos;
90
701k
        }
91
240
    }
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
80
10
                                          PaddedPODArray<UInt8>& c) {
81
10
        size_t size = a.size();
82
10
        const A* __restrict a_pos = a.data();
83
10
        UInt8* __restrict c_pos = c.data();
84
10
        const A* __restrict a_end = a_pos + size;
85
86
21
        while (a_pos < a_end) {
87
11
            *c_pos = Op::apply(*a_pos, b);
88
11
            ++a_pos;
89
11
            ++c_pos;
90
11
        }
91
10
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
2
                                          PaddedPODArray<UInt8>& c) {
81
2
        size_t size = a.size();
82
2
        const A* __restrict a_pos = a.data();
83
2
        UInt8* __restrict c_pos = c.data();
84
2
        const A* __restrict a_end = a_pos + size;
85
86
4
        while (a_pos < a_end) {
87
2
            *c_pos = Op::apply(*a_pos, b);
88
2
            ++a_pos;
89
2
            ++c_pos;
90
2
        }
91
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
44
                                          PaddedPODArray<UInt8>& c) {
81
44
        size_t size = a.size();
82
44
        const A* __restrict a_pos = a.data();
83
44
        UInt8* __restrict c_pos = c.data();
84
44
        const A* __restrict a_end = a_pos + size;
85
86
1.24k
        while (a_pos < a_end) {
87
1.19k
            *c_pos = Op::apply(*a_pos, b);
88
1.19k
            ++a_pos;
89
1.19k
            ++c_pos;
90
1.19k
        }
91
44
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
26
                                          PaddedPODArray<UInt8>& c) {
81
26
        size_t size = a.size();
82
26
        const A* __restrict a_pos = a.data();
83
26
        UInt8* __restrict c_pos = c.data();
84
26
        const A* __restrict a_end = a_pos + size;
85
86
802
        while (a_pos < a_end) {
87
776
            *c_pos = Op::apply(*a_pos, b);
88
776
            ++a_pos;
89
776
            ++c_pos;
90
776
        }
91
26
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
2.73k
                                          PaddedPODArray<UInt8>& c) {
81
2.73k
        size_t size = a.size();
82
2.73k
        const A* __restrict a_pos = a.data();
83
2.73k
        UInt8* __restrict c_pos = c.data();
84
2.73k
        const A* __restrict a_end = a_pos + size;
85
86
657k
        while (a_pos < a_end) {
87
655k
            *c_pos = Op::apply(*a_pos, b);
88
655k
            ++a_pos;
89
655k
            ++c_pos;
90
655k
        }
91
2.73k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.92k
                                          PaddedPODArray<UInt8>& c) {
81
1.92k
        size_t size = a.size();
82
1.92k
        const A* __restrict a_pos = a.data();
83
1.92k
        UInt8* __restrict c_pos = c.data();
84
1.92k
        const A* __restrict a_end = a_pos + size;
85
86
269k
        while (a_pos < a_end) {
87
267k
            *c_pos = Op::apply(*a_pos, b);
88
267k
            ++a_pos;
89
267k
            ++c_pos;
90
267k
        }
91
1.92k
    }
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
80
28
                                          PaddedPODArray<UInt8>& c) {
81
28
        size_t size = a.size();
82
28
        const A* __restrict a_pos = a.data();
83
28
        UInt8* __restrict c_pos = c.data();
84
28
        const A* __restrict a_end = a_pos + size;
85
86
70
        while (a_pos < a_end) {
87
42
            *c_pos = Op::apply(*a_pos, b);
88
42
            ++a_pos;
89
42
            ++c_pos;
90
42
        }
91
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
40
                                          PaddedPODArray<UInt8>& c) {
81
40
        size_t size = a.size();
82
40
        const A* __restrict a_pos = a.data();
83
40
        UInt8* __restrict c_pos = c.data();
84
40
        const A* __restrict a_end = a_pos + size;
85
86
282
        while (a_pos < a_end) {
87
242
            *c_pos = Op::apply(*a_pos, b);
88
242
            ++a_pos;
89
242
            ++c_pos;
90
242
        }
91
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
80
128
                                          PaddedPODArray<UInt8>& c) {
81
128
        size_t size = a.size();
82
128
        const A* __restrict a_pos = a.data();
83
128
        UInt8* __restrict c_pos = c.data();
84
128
        const A* __restrict a_end = a_pos + size;
85
86
666
        while (a_pos < a_end) {
87
538
            *c_pos = Op::apply(*a_pos, b);
88
538
            ++a_pos;
89
538
            ++c_pos;
90
538
        }
91
128
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
544
                                          PaddedPODArray<UInt8>& c) {
81
544
        size_t size = a.size();
82
544
        const A* __restrict a_pos = a.data();
83
544
        UInt8* __restrict c_pos = c.data();
84
544
        const A* __restrict a_end = a_pos + size;
85
86
1.34M
        while (a_pos < a_end) {
87
1.34M
            *c_pos = Op::apply(*a_pos, b);
88
1.34M
            ++a_pos;
89
1.34M
            ++c_pos;
90
1.34M
        }
91
544
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
94
                                          PaddedPODArray<UInt8>& c) {
81
94
        size_t size = a.size();
82
94
        const A* __restrict a_pos = a.data();
83
94
        UInt8* __restrict c_pos = c.data();
84
94
        const A* __restrict a_end = a_pos + size;
85
86
210
        while (a_pos < a_end) {
87
116
            *c_pos = Op::apply(*a_pos, b);
88
116
            ++a_pos;
89
116
            ++c_pos;
90
116
        }
91
94
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
337
                                          PaddedPODArray<UInt8>& c) {
81
337
        size_t size = a.size();
82
337
        const A* __restrict a_pos = a.data();
83
337
        UInt8* __restrict c_pos = c.data();
84
337
        const A* __restrict a_end = a_pos + size;
85
86
45.4k
        while (a_pos < a_end) {
87
45.1k
            *c_pos = Op::apply(*a_pos, b);
88
45.1k
            ++a_pos;
89
45.1k
            ++c_pos;
90
45.1k
        }
91
337
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
80
1
                                          PaddedPODArray<UInt8>& c) {
81
1
        size_t size = a.size();
82
1
        const A* __restrict a_pos = a.data();
83
1
        UInt8* __restrict c_pos = c.data();
84
1
        const A* __restrict a_end = a_pos + size;
85
86
8
        while (a_pos < a_end) {
87
7
            *c_pos = Op::apply(*a_pos, b);
88
7
            ++a_pos;
89
7
            ++c_pos;
90
7
        }
91
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
386
                                          PaddedPODArray<UInt8>& c) {
81
386
        size_t size = a.size();
82
386
        const A* __restrict a_pos = a.data();
83
386
        UInt8* __restrict c_pos = c.data();
84
386
        const A* __restrict a_end = a_pos + size;
85
86
4.02k
        while (a_pos < a_end) {
87
3.63k
            *c_pos = Op::apply(*a_pos, b);
88
3.63k
            ++a_pos;
89
3.63k
            ++c_pos;
90
3.63k
        }
91
386
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
57
                                          PaddedPODArray<UInt8>& c) {
81
57
        size_t size = a.size();
82
57
        const A* __restrict a_pos = a.data();
83
57
        UInt8* __restrict c_pos = c.data();
84
57
        const A* __restrict a_end = a_pos + size;
85
86
2.33k
        while (a_pos < a_end) {
87
2.27k
            *c_pos = Op::apply(*a_pos, b);
88
2.27k
            ++a_pos;
89
2.27k
            ++c_pos;
90
2.27k
        }
91
57
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
563
                                          PaddedPODArray<UInt8>& c) {
81
563
        size_t size = a.size();
82
563
        const A* __restrict a_pos = a.data();
83
563
        UInt8* __restrict c_pos = c.data();
84
563
        const A* __restrict a_end = a_pos + size;
85
86
7.96k
        while (a_pos < a_end) {
87
7.40k
            *c_pos = Op::apply(*a_pos, b);
88
7.40k
            ++a_pos;
89
7.40k
            ++c_pos;
90
7.40k
        }
91
563
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
268
                                          PaddedPODArray<UInt8>& c) {
81
268
        size_t size = a.size();
82
268
        const A* __restrict a_pos = a.data();
83
268
        UInt8* __restrict c_pos = c.data();
84
268
        const A* __restrict a_end = a_pos + size;
85
86
12.7k
        while (a_pos < a_end) {
87
12.4k
            *c_pos = Op::apply(*a_pos, b);
88
12.4k
            ++a_pos;
89
12.4k
            ++c_pos;
90
12.4k
        }
91
268
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
18.2k
                                          PaddedPODArray<UInt8>& c) {
81
18.2k
        size_t size = a.size();
82
18.2k
        const A* __restrict a_pos = a.data();
83
18.2k
        UInt8* __restrict c_pos = c.data();
84
18.2k
        const A* __restrict a_end = a_pos + size;
85
86
1.44M
        while (a_pos < a_end) {
87
1.42M
            *c_pos = Op::apply(*a_pos, b);
88
1.42M
            ++a_pos;
89
1.42M
            ++c_pos;
90
1.42M
        }
91
18.2k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
5.71k
                                          PaddedPODArray<UInt8>& c) {
81
5.71k
        size_t size = a.size();
82
5.71k
        const A* __restrict a_pos = a.data();
83
5.71k
        UInt8* __restrict c_pos = c.data();
84
5.71k
        const A* __restrict a_end = a_pos + size;
85
86
4.42M
        while (a_pos < a_end) {
87
4.41M
            *c_pos = Op::apply(*a_pos, b);
88
4.41M
            ++a_pos;
89
4.41M
            ++c_pos;
90
4.41M
        }
91
5.71k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
13.2k
                                          PaddedPODArray<UInt8>& c) {
81
13.2k
        size_t size = a.size();
82
13.2k
        const A* __restrict a_pos = a.data();
83
13.2k
        UInt8* __restrict c_pos = c.data();
84
13.2k
        const A* __restrict a_end = a_pos + size;
85
86
171k
        while (a_pos < a_end) {
87
158k
            *c_pos = Op::apply(*a_pos, b);
88
158k
            ++a_pos;
89
158k
            ++c_pos;
90
158k
        }
91
13.2k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.41k
                                          PaddedPODArray<UInt8>& c) {
81
1.41k
        size_t size = a.size();
82
1.41k
        const A* __restrict a_pos = a.data();
83
1.41k
        UInt8* __restrict c_pos = c.data();
84
1.41k
        const A* __restrict a_end = a_pos + size;
85
86
3.97k
        while (a_pos < a_end) {
87
2.55k
            *c_pos = Op::apply(*a_pos, b);
88
2.55k
            ++a_pos;
89
2.55k
            ++c_pos;
90
2.55k
        }
91
1.41k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
201
                                          PaddedPODArray<UInt8>& c) {
81
201
        size_t size = a.size();
82
201
        const A* __restrict a_pos = a.data();
83
201
        UInt8* __restrict c_pos = c.data();
84
201
        const A* __restrict a_end = a_pos + size;
85
86
1.74k
        while (a_pos < a_end) {
87
1.54k
            *c_pos = Op::apply(*a_pos, b);
88
1.54k
            ++a_pos;
89
1.54k
            ++c_pos;
90
1.54k
        }
91
201
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
22
                                          PaddedPODArray<UInt8>& c) {
81
22
        size_t size = a.size();
82
22
        const A* __restrict a_pos = a.data();
83
22
        UInt8* __restrict c_pos = c.data();
84
22
        const A* __restrict a_end = a_pos + size;
85
86
86.0k
        while (a_pos < a_end) {
87
86.0k
            *c_pos = Op::apply(*a_pos, b);
88
86.0k
            ++a_pos;
89
86.0k
            ++c_pos;
90
86.0k
        }
91
22
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1
                                          PaddedPODArray<UInt8>& c) {
81
1
        size_t size = a.size();
82
1
        const A* __restrict a_pos = a.data();
83
1
        UInt8* __restrict c_pos = c.data();
84
1
        const A* __restrict a_end = a_pos + size;
85
86
9
        while (a_pos < a_end) {
87
8
            *c_pos = Op::apply(*a_pos, b);
88
8
            ++a_pos;
89
8
            ++c_pos;
90
8
        }
91
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
216
                                          PaddedPODArray<UInt8>& c) {
81
216
        size_t size = a.size();
82
216
        const A* __restrict a_pos = a.data();
83
216
        UInt8* __restrict c_pos = c.data();
84
216
        const A* __restrict a_end = a_pos + size;
85
86
3.77k
        while (a_pos < a_end) {
87
3.55k
            *c_pos = Op::apply(*a_pos, b);
88
3.55k
            ++a_pos;
89
3.55k
            ++c_pos;
90
3.55k
        }
91
216
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
26
                                          PaddedPODArray<UInt8>& c) {
81
26
        size_t size = a.size();
82
26
        const A* __restrict a_pos = a.data();
83
26
        UInt8* __restrict c_pos = c.data();
84
26
        const A* __restrict a_end = a_pos + size;
85
86
64
        while (a_pos < a_end) {
87
38
            *c_pos = Op::apply(*a_pos, b);
88
38
            ++a_pos;
89
38
            ++c_pos;
90
38
        }
91
26
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
2.44k
                                          PaddedPODArray<UInt8>& c) {
81
2.44k
        size_t size = a.size();
82
2.44k
        const A* __restrict a_pos = a.data();
83
2.44k
        UInt8* __restrict c_pos = c.data();
84
2.44k
        const A* __restrict a_end = a_pos + size;
85
86
346k
        while (a_pos < a_end) {
87
344k
            *c_pos = Op::apply(*a_pos, b);
88
344k
            ++a_pos;
89
344k
            ++c_pos;
90
344k
        }
91
2.44k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
216
                                          PaddedPODArray<UInt8>& c) {
81
216
        size_t size = a.size();
82
216
        const A* __restrict a_pos = a.data();
83
216
        UInt8* __restrict c_pos = c.data();
84
216
        const A* __restrict a_end = a_pos + size;
85
86
316k
        while (a_pos < a_end) {
87
316k
            *c_pos = Op::apply(*a_pos, b);
88
316k
            ++a_pos;
89
316k
            ++c_pos;
90
316k
        }
91
216
    }
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
80
152
                                          PaddedPODArray<UInt8>& c) {
81
152
        size_t size = a.size();
82
152
        const A* __restrict a_pos = a.data();
83
152
        UInt8* __restrict c_pos = c.data();
84
152
        const A* __restrict a_end = a_pos + size;
85
86
155k
        while (a_pos < a_end) {
87
155k
            *c_pos = Op::apply(*a_pos, b);
88
155k
            ++a_pos;
89
155k
            ++c_pos;
90
155k
        }
91
152
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
424
                                          PaddedPODArray<UInt8>& c) {
81
424
        size_t size = a.size();
82
424
        const A* __restrict a_pos = a.data();
83
424
        UInt8* __restrict c_pos = c.data();
84
424
        const A* __restrict a_end = a_pos + size;
85
86
187k
        while (a_pos < a_end) {
87
186k
            *c_pos = Op::apply(*a_pos, b);
88
186k
            ++a_pos;
89
186k
            ++c_pos;
90
186k
        }
91
424
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
1.58k
                                          PaddedPODArray<UInt8>& c) {
81
1.58k
        size_t size = a.size();
82
1.58k
        const A* __restrict a_pos = a.data();
83
1.58k
        UInt8* __restrict c_pos = c.data();
84
1.58k
        const A* __restrict a_end = a_pos + size;
85
86
4.58M
        while (a_pos < a_end) {
87
4.58M
            *c_pos = Op::apply(*a_pos, b);
88
4.58M
            ++a_pos;
89
4.58M
            ++c_pos;
90
4.58M
        }
91
1.58k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
10.2k
                                          PaddedPODArray<UInt8>& c) {
81
10.2k
        size_t size = a.size();
82
10.2k
        const A* __restrict a_pos = a.data();
83
10.2k
        UInt8* __restrict c_pos = c.data();
84
10.2k
        const A* __restrict a_end = a_pos + size;
85
86
75.4M
        while (a_pos < a_end) {
87
75.3M
            *c_pos = Op::apply(*a_pos, b);
88
75.3M
            ++a_pos;
89
75.3M
            ++c_pos;
90
75.3M
        }
91
10.2k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
610
                                          PaddedPODArray<UInt8>& c) {
81
610
        size_t size = a.size();
82
610
        const A* __restrict a_pos = a.data();
83
610
        UInt8* __restrict c_pos = c.data();
84
610
        const A* __restrict a_end = a_pos + size;
85
86
30.6k
        while (a_pos < a_end) {
87
29.9k
            *c_pos = Op::apply(*a_pos, b);
88
29.9k
            ++a_pos;
89
29.9k
            ++c_pos;
90
29.9k
        }
91
610
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
455
                                          PaddedPODArray<UInt8>& c) {
81
455
        size_t size = a.size();
82
455
        const A* __restrict a_pos = a.data();
83
455
        UInt8* __restrict c_pos = c.data();
84
455
        const A* __restrict a_end = a_pos + size;
85
86
26.0k
        while (a_pos < a_end) {
87
25.6k
            *c_pos = Op::apply(*a_pos, b);
88
25.6k
            ++a_pos;
89
25.6k
            ++c_pos;
90
25.6k
        }
91
455
    }
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
80
69
                                          PaddedPODArray<UInt8>& c) {
81
69
        size_t size = a.size();
82
69
        const A* __restrict a_pos = a.data();
83
69
        UInt8* __restrict c_pos = c.data();
84
69
        const A* __restrict a_end = a_pos + size;
85
86
132k
        while (a_pos < a_end) {
87
132k
            *c_pos = Op::apply(*a_pos, b);
88
132k
            ++a_pos;
89
132k
            ++c_pos;
90
132k
        }
91
69
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
269
                                          PaddedPODArray<UInt8>& c) {
81
269
        size_t size = a.size();
82
269
        const A* __restrict a_pos = a.data();
83
269
        UInt8* __restrict c_pos = c.data();
84
269
        const A* __restrict a_end = a_pos + size;
85
86
133k
        while (a_pos < a_end) {
87
133k
            *c_pos = Op::apply(*a_pos, b);
88
133k
            ++a_pos;
89
133k
            ++c_pos;
90
133k
        }
91
269
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
113
                                          PaddedPODArray<UInt8>& c) {
81
113
        size_t size = a.size();
82
113
        const A* __restrict a_pos = a.data();
83
113
        UInt8* __restrict c_pos = c.data();
84
113
        const A* __restrict a_end = a_pos + size;
85
86
116k
        while (a_pos < a_end) {
87
116k
            *c_pos = Op::apply(*a_pos, b);
88
116k
            ++a_pos;
89
116k
            ++c_pos;
90
116k
        }
91
113
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
310
                                          PaddedPODArray<UInt8>& c) {
81
310
        size_t size = a.size();
82
310
        const A* __restrict a_pos = a.data();
83
310
        UInt8* __restrict c_pos = c.data();
84
310
        const A* __restrict a_end = a_pos + size;
85
86
68.3k
        while (a_pos < a_end) {
87
68.0k
            *c_pos = Op::apply(*a_pos, b);
88
68.0k
            ++a_pos;
89
68.0k
            ++c_pos;
90
68.0k
        }
91
310
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
12.0k
                                          PaddedPODArray<UInt8>& c) {
81
12.0k
        size_t size = a.size();
82
12.0k
        const A* __restrict a_pos = a.data();
83
12.0k
        UInt8* __restrict c_pos = c.data();
84
12.0k
        const A* __restrict a_end = a_pos + size;
85
86
41.3M
        while (a_pos < a_end) {
87
41.3M
            *c_pos = Op::apply(*a_pos, b);
88
41.3M
            ++a_pos;
89
41.3M
            ++c_pos;
90
41.3M
        }
91
12.0k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
18.2k
                                          PaddedPODArray<UInt8>& c) {
81
18.2k
        size_t size = a.size();
82
18.2k
        const A* __restrict a_pos = a.data();
83
18.2k
        UInt8* __restrict c_pos = c.data();
84
18.2k
        const A* __restrict a_end = a_pos + size;
85
86
45.5M
        while (a_pos < a_end) {
87
45.4M
            *c_pos = Op::apply(*a_pos, b);
88
45.4M
            ++a_pos;
89
45.4M
            ++c_pos;
90
45.4M
        }
91
18.2k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
787
                                          PaddedPODArray<UInt8>& c) {
81
787
        size_t size = a.size();
82
787
        const A* __restrict a_pos = a.data();
83
787
        UInt8* __restrict c_pos = c.data();
84
787
        const A* __restrict a_end = a_pos + size;
85
86
40.4k
        while (a_pos < a_end) {
87
39.6k
            *c_pos = Op::apply(*a_pos, b);
88
39.6k
            ++a_pos;
89
39.6k
            ++c_pos;
90
39.6k
        }
91
787
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
820
                                          PaddedPODArray<UInt8>& c) {
81
820
        size_t size = a.size();
82
820
        const A* __restrict a_pos = a.data();
83
820
        UInt8* __restrict c_pos = c.data();
84
820
        const A* __restrict a_end = a_pos + size;
85
86
38.4k
        while (a_pos < a_end) {
87
37.5k
            *c_pos = Op::apply(*a_pos, b);
88
37.5k
            ++a_pos;
89
37.5k
            ++c_pos;
90
37.5k
        }
91
820
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
41
                                          PaddedPODArray<UInt8>& c) {
81
41
        size_t size = a.size();
82
41
        const A* __restrict a_pos = a.data();
83
41
        UInt8* __restrict c_pos = c.data();
84
41
        const A* __restrict a_end = a_pos + size;
85
86
110k
        while (a_pos < a_end) {
87
110k
            *c_pos = Op::apply(*a_pos, b);
88
110k
            ++a_pos;
89
110k
            ++c_pos;
90
110k
        }
91
41
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
35
                                          PaddedPODArray<UInt8>& c) {
81
35
        size_t size = a.size();
82
35
        const A* __restrict a_pos = a.data();
83
35
        UInt8* __restrict c_pos = c.data();
84
35
        const A* __restrict a_end = a_pos + size;
85
86
80.5k
        while (a_pos < a_end) {
87
80.4k
            *c_pos = Op::apply(*a_pos, b);
88
80.4k
            ++a_pos;
89
80.4k
            ++c_pos;
90
80.4k
        }
91
35
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
10
                                          PaddedPODArray<UInt8>& c) {
81
10
        size_t size = a.size();
82
10
        const A* __restrict a_pos = a.data();
83
10
        UInt8* __restrict c_pos = c.data();
84
10
        const A* __restrict a_end = a_pos + size;
85
86
110
        while (a_pos < a_end) {
87
100
            *c_pos = Op::apply(*a_pos, b);
88
100
            ++a_pos;
89
100
            ++c_pos;
90
100
        }
91
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
10
                                          PaddedPODArray<UInt8>& c) {
81
10
        size_t size = a.size();
82
10
        const A* __restrict a_pos = a.data();
83
10
        UInt8* __restrict c_pos = c.data();
84
10
        const A* __restrict a_end = a_pos + size;
85
86
110
        while (a_pos < a_end) {
87
100
            *c_pos = Op::apply(*a_pos, b);
88
100
            ++a_pos;
89
100
            ++c_pos;
90
100
        }
91
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
80
108
                                          PaddedPODArray<UInt8>& c) {
81
108
        size_t size = a.size();
82
108
        const A* __restrict a_pos = a.data();
83
108
        UInt8* __restrict c_pos = c.data();
84
108
        const A* __restrict a_end = a_pos + size;
85
86
218
        while (a_pos < a_end) {
87
110
            *c_pos = Op::apply(*a_pos, b);
88
110
            ++a_pos;
89
110
            ++c_pos;
90
110
        }
91
108
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
104
                                          PaddedPODArray<UInt8>& c) {
81
104
        size_t size = a.size();
82
104
        const A* __restrict a_pos = a.data();
83
104
        UInt8* __restrict c_pos = c.data();
84
104
        const A* __restrict a_end = a_pos + size;
85
86
208
        while (a_pos < a_end) {
87
104
            *c_pos = Op::apply(*a_pos, b);
88
104
            ++a_pos;
89
104
            ++c_pos;
90
104
        }
91
104
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
127
                                          PaddedPODArray<UInt8>& c) {
81
127
        size_t size = a.size();
82
127
        const A* __restrict a_pos = a.data();
83
127
        UInt8* __restrict c_pos = c.data();
84
127
        const A* __restrict a_end = a_pos + size;
85
86
356k
        while (a_pos < a_end) {
87
355k
            *c_pos = Op::apply(*a_pos, b);
88
355k
            ++a_pos;
89
355k
            ++c_pos;
90
355k
        }
91
127
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
124
                                          PaddedPODArray<UInt8>& c) {
81
124
        size_t size = a.size();
82
124
        const A* __restrict a_pos = a.data();
83
124
        UInt8* __restrict c_pos = c.data();
84
124
        const A* __restrict a_end = a_pos + size;
85
86
275k
        while (a_pos < a_end) {
87
275k
            *c_pos = Op::apply(*a_pos, b);
88
275k
            ++a_pos;
89
275k
            ++c_pos;
90
275k
        }
91
124
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
92
93
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
94
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
95
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
93
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
94
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
95
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
96
};
97
98
/// Generic version, implemented for columns of same type.
99
template <typename Op>
100
struct GenericComparisonImpl {
101
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
11
        }
105
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
6
        }
105
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
1
        }
105
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
1
        }
105
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
3
        }
105
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
106
107
132
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
132
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
426k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
426k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
426k
        }
112
132
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
18
        }
112
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
46
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
46
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
220k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
220k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
220k
        }
112
46
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
49
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
49
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
206k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
205k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
205k
        }
112
49
    }
113
114
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
116
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
117
};
118
119
template <typename Op>
120
struct StringComparisonImpl {
121
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
122
                                                      const ColumnString::Offsets& a_offsets,
123
                                                      const ColumnString::Chars& b_data,
124
                                                      const ColumnString::Offsets& b_offsets,
125
430
                                                      PaddedPODArray<UInt8>& c) {
126
430
        size_t size = a_offsets.size();
127
430
        ColumnString::Offset prev_a_offset = 0;
128
430
        ColumnString::Offset prev_b_offset = 0;
129
430
        const auto* a_pos = a_data.data();
130
430
        const auto* b_pos = b_data.data();
131
132
1.13k
        for (size_t i = 0; i < size; ++i) {
133
702
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
702
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
702
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
702
                             0);
137
138
702
            prev_a_offset = a_offsets[i];
139
702
            prev_b_offset = b_offsets[i];
140
702
        }
141
430
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
2
                                                      PaddedPODArray<UInt8>& c) {
126
2
        size_t size = a_offsets.size();
127
2
        ColumnString::Offset prev_a_offset = 0;
128
2
        ColumnString::Offset prev_b_offset = 0;
129
2
        const auto* a_pos = a_data.data();
130
2
        const auto* b_pos = b_data.data();
131
132
49
        for (size_t i = 0; i < size; ++i) {
133
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
47
                             0);
137
138
47
            prev_a_offset = a_offsets[i];
139
47
            prev_b_offset = b_offsets[i];
140
47
        }
141
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
41
                                                      PaddedPODArray<UInt8>& c) {
126
41
        size_t size = a_offsets.size();
127
41
        ColumnString::Offset prev_a_offset = 0;
128
41
        ColumnString::Offset prev_b_offset = 0;
129
41
        const auto* a_pos = a_data.data();
130
41
        const auto* b_pos = b_data.data();
131
132
305
        for (size_t i = 0; i < size; ++i) {
133
264
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
264
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
264
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
264
                             0);
137
138
264
            prev_a_offset = a_offsets[i];
139
264
            prev_b_offset = b_offsets[i];
140
264
        }
141
41
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
387
                                                      PaddedPODArray<UInt8>& c) {
126
387
        size_t size = a_offsets.size();
127
387
        ColumnString::Offset prev_a_offset = 0;
128
387
        ColumnString::Offset prev_b_offset = 0;
129
387
        const auto* a_pos = a_data.data();
130
387
        const auto* b_pos = b_data.data();
131
132
778
        for (size_t i = 0; i < size; ++i) {
133
391
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
391
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
391
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
391
                             0);
137
138
391
            prev_a_offset = a_offsets[i];
139
391
            prev_b_offset = b_offsets[i];
140
391
        }
141
387
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
142
143
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
144
                                                 const ColumnString::Offsets& a_offsets,
145
                                                 const ColumnString::Chars& b_data,
146
                                                 ColumnString::Offset b_size,
147
3.12k
                                                 PaddedPODArray<UInt8>& c) {
148
3.12k
        size_t size = a_offsets.size();
149
3.12k
        ColumnString::Offset prev_a_offset = 0;
150
3.12k
        const auto* a_pos = a_data.data();
151
3.12k
        const auto* b_pos = b_data.data();
152
153
1.57M
        for (size_t i = 0; i < size; ++i) {
154
1.57M
            c[i] = Op::apply(
155
1.57M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
1.57M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
1.57M
                    0);
158
159
1.57M
            prev_a_offset = a_offsets[i];
160
1.57M
        }
161
3.12k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
191
                                                 PaddedPODArray<UInt8>& c) {
148
191
        size_t size = a_offsets.size();
149
191
        ColumnString::Offset prev_a_offset = 0;
150
191
        const auto* a_pos = a_data.data();
151
191
        const auto* b_pos = b_data.data();
152
153
325k
        for (size_t i = 0; i < size; ++i) {
154
325k
            c[i] = Op::apply(
155
325k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
325k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
325k
                    0);
158
159
325k
            prev_a_offset = a_offsets[i];
160
325k
        }
161
191
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
253
                                                 PaddedPODArray<UInt8>& c) {
148
253
        size_t size = a_offsets.size();
149
253
        ColumnString::Offset prev_a_offset = 0;
150
253
        const auto* a_pos = a_data.data();
151
253
        const auto* b_pos = b_data.data();
152
153
73.2k
        for (size_t i = 0; i < size; ++i) {
154
73.0k
            c[i] = Op::apply(
155
73.0k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
73.0k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
73.0k
                    0);
158
159
73.0k
            prev_a_offset = a_offsets[i];
160
73.0k
        }
161
253
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
623
                                                 PaddedPODArray<UInt8>& c) {
148
623
        size_t size = a_offsets.size();
149
623
        ColumnString::Offset prev_a_offset = 0;
150
623
        const auto* a_pos = a_data.data();
151
623
        const auto* b_pos = b_data.data();
152
153
556k
        for (size_t i = 0; i < size; ++i) {
154
556k
            c[i] = Op::apply(
155
556k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
556k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
556k
                    0);
158
159
556k
            prev_a_offset = a_offsets[i];
160
556k
        }
161
623
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
2.06k
                                                 PaddedPODArray<UInt8>& c) {
148
2.06k
        size_t size = a_offsets.size();
149
2.06k
        ColumnString::Offset prev_a_offset = 0;
150
2.06k
        const auto* a_pos = a_data.data();
151
2.06k
        const auto* b_pos = b_data.data();
152
153
617k
        for (size_t i = 0; i < size; ++i) {
154
615k
            c[i] = Op::apply(
155
615k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
615k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
615k
                    0);
158
159
615k
            prev_a_offset = a_offsets[i];
160
615k
        }
161
2.06k
    }
162
163
    static void constant_string_vector(const ColumnString::Chars& a_data,
164
                                       ColumnString::Offset a_size,
165
                                       const ColumnString::Chars& b_data,
166
                                       const ColumnString::Offsets& b_offsets,
167
0
                                       PaddedPODArray<UInt8>& c) {
168
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
169
0
                                                                               a_data, a_size, c);
170
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
171
};
172
173
template <bool positive>
174
struct StringEqualsImpl {
175
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
176
                                                      const ColumnString::Offsets& a_offsets,
177
                                                      const ColumnString::Chars& b_data,
178
                                                      const ColumnString::Offsets& b_offsets,
179
424
                                                      PaddedPODArray<UInt8>& c) {
180
424
        size_t size = a_offsets.size();
181
424
        ColumnString::Offset prev_a_offset = 0;
182
424
        ColumnString::Offset prev_b_offset = 0;
183
424
        const auto* a_pos = a_data.data();
184
424
        const auto* b_pos = b_data.data();
185
186
1.31k
        for (size_t i = 0; i < size; ++i) {
187
895
            auto a_size = a_offsets[i] - prev_a_offset;
188
895
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
895
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
895
                                                               b_pos + prev_b_offset, b_size);
192
193
895
            prev_a_offset = a_offsets[i];
194
895
            prev_b_offset = b_offsets[i];
195
895
        }
196
424
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
179
423
                                                      PaddedPODArray<UInt8>& c) {
180
423
        size_t size = a_offsets.size();
181
423
        ColumnString::Offset prev_a_offset = 0;
182
423
        ColumnString::Offset prev_b_offset = 0;
183
423
        const auto* a_pos = a_data.data();
184
423
        const auto* b_pos = b_data.data();
185
186
1.31k
        for (size_t i = 0; i < size; ++i) {
187
891
            auto a_size = a_offsets[i] - prev_a_offset;
188
891
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
891
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
891
                                                               b_pos + prev_b_offset, b_size);
192
193
891
            prev_a_offset = a_offsets[i];
194
891
            prev_b_offset = b_offsets[i];
195
891
        }
196
423
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
179
1
                                                      PaddedPODArray<UInt8>& c) {
180
1
        size_t size = a_offsets.size();
181
1
        ColumnString::Offset prev_a_offset = 0;
182
1
        ColumnString::Offset prev_b_offset = 0;
183
1
        const auto* a_pos = a_data.data();
184
1
        const auto* b_pos = b_data.data();
185
186
5
        for (size_t i = 0; i < size; ++i) {
187
4
            auto a_size = a_offsets[i] - prev_a_offset;
188
4
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
4
                                                               b_pos + prev_b_offset, b_size);
192
193
4
            prev_a_offset = a_offsets[i];
194
4
            prev_b_offset = b_offsets[i];
195
4
        }
196
1
    }
197
198
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
199
                                                 const ColumnString::Offsets& a_offsets,
200
                                                 const ColumnString::Chars& b_data,
201
                                                 ColumnString::Offset b_size,
202
21.6k
                                                 PaddedPODArray<UInt8>& c) {
203
21.6k
        size_t size = a_offsets.size();
204
21.6k
        if (b_size == 0) {
205
1
            auto* __restrict data = c.data();
206
1
            auto* __restrict offsets = a_offsets.data();
207
208
1
            ColumnString::Offset prev_a_offset = 0;
209
4
            for (size_t i = 0; i < size; ++i) {
210
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
3
                prev_a_offset = offsets[i];
212
3
            }
213
21.6k
        } else {
214
21.6k
            ColumnString::Offset prev_a_offset = 0;
215
21.6k
            const auto* a_pos = a_data.data();
216
21.6k
            const auto* b_pos = b_data.data();
217
8.62M
            for (size_t i = 0; i < size; ++i) {
218
8.59M
                auto a_size = a_offsets[i] - prev_a_offset;
219
8.59M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
8.59M
                                                                   b_pos, b_size);
221
8.59M
                prev_a_offset = a_offsets[i];
222
8.59M
            }
223
21.6k
        }
224
21.6k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
202
20.1k
                                                 PaddedPODArray<UInt8>& c) {
203
20.1k
        size_t size = a_offsets.size();
204
20.1k
        if (b_size == 0) {
205
0
            auto* __restrict data = c.data();
206
0
            auto* __restrict offsets = a_offsets.data();
207
208
0
            ColumnString::Offset prev_a_offset = 0;
209
0
            for (size_t i = 0; i < size; ++i) {
210
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
0
                prev_a_offset = offsets[i];
212
0
            }
213
20.1k
        } else {
214
20.1k
            ColumnString::Offset prev_a_offset = 0;
215
20.1k
            const auto* a_pos = a_data.data();
216
20.1k
            const auto* b_pos = b_data.data();
217
7.66M
            for (size_t i = 0; i < size; ++i) {
218
7.64M
                auto a_size = a_offsets[i] - prev_a_offset;
219
7.64M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
7.64M
                                                                   b_pos, b_size);
221
7.64M
                prev_a_offset = a_offsets[i];
222
7.64M
            }
223
20.1k
        }
224
20.1k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
202
1.50k
                                                 PaddedPODArray<UInt8>& c) {
203
1.50k
        size_t size = a_offsets.size();
204
1.50k
        if (b_size == 0) {
205
1
            auto* __restrict data = c.data();
206
1
            auto* __restrict offsets = a_offsets.data();
207
208
1
            ColumnString::Offset prev_a_offset = 0;
209
4
            for (size_t i = 0; i < size; ++i) {
210
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
3
                prev_a_offset = offsets[i];
212
3
            }
213
1.49k
        } else {
214
1.49k
            ColumnString::Offset prev_a_offset = 0;
215
1.49k
            const auto* a_pos = a_data.data();
216
1.49k
            const auto* b_pos = b_data.data();
217
960k
            for (size_t i = 0; i < size; ++i) {
218
959k
                auto a_size = a_offsets[i] - prev_a_offset;
219
959k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
959k
                                                                   b_pos, b_size);
221
959k
                prev_a_offset = a_offsets[i];
222
959k
            }
223
1.49k
        }
224
1.50k
    }
225
226
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
227
                                                 ColumnString::Offset a_size,
228
                                                 const ColumnString::Chars& b_data,
229
                                                 const ColumnString::Offsets& b_offsets,
230
0
                                                 PaddedPODArray<UInt8>& c) {
231
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
232
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
233
};
234
235
template <PrimitiveType PT>
236
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
237
238
template <PrimitiveType PT>
239
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
240
241
struct NameEquals {
242
    static constexpr auto name = "eq";
243
};
244
struct NameNotEquals {
245
    static constexpr auto name = "ne";
246
};
247
struct NameLess {
248
    static constexpr auto name = "lt";
249
};
250
struct NameGreater {
251
    static constexpr auto name = "gt";
252
};
253
struct NameLessOrEquals {
254
    static constexpr auto name = "le";
255
};
256
struct NameGreaterOrEquals {
257
    static constexpr auto name = "ge";
258
};
259
260
template <template <PrimitiveType> class Op, typename Name>
261
class FunctionComparison : public IFunction {
262
public:
263
    static constexpr auto name = Name::name;
264
476k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
264
424k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
264
1.34k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
264
6.29k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
264
18.9k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
264
3.14k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
264
22.3k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
265
266
476k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
266
424k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
266
1.34k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
266
6.29k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
266
18.9k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
266
3.14k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
266
22.3k
    FunctionComparison() = default;
267
268
1.22M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
268
1.18M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
268
1.17k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
268
6.56k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
268
18.4k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
268
3.28k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
268
17.3k
    double execute_cost() const override { return 0.5; }
269
270
private:
271
    template <PrimitiveType PT>
272
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
273
168k
                            const ColumnPtr& col_right_ptr) const {
274
168k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
168k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
168k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
168k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
168k
        DCHECK(!(left_is_const && right_is_const));
281
282
168k
        if (!left_is_const && !right_is_const) {
283
11.3k
            auto col_res = ColumnUInt8::create();
284
285
11.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
11.3k
            vec_res.resize(col_left->get_data().size());
287
11.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
11.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
11.3k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
11.3k
                                                     vec_res);
291
292
11.3k
            block.replace_by_position(result, std::move(col_res));
293
157k
        } else if (!left_is_const && right_is_const) {
294
157k
            auto col_res = ColumnUInt8::create();
295
296
157k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
157k
            vec_res.resize(col_left->size());
298
157k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
157k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
157k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
157k
                                                       col_right->get_element(0), vec_res);
302
303
157k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
5
            auto col_res = ColumnUInt8::create();
306
307
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
5
            vec_res.resize(col_right->size());
309
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
5
                              typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
5
                                                       col_right->get_data(), vec_res);
313
314
5
            block.replace_by_position(result, std::move(col_res));
315
5
        }
316
168k
        return Status::OK();
317
168k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.61k
                            const ColumnPtr& col_right_ptr) const {
274
1.61k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.61k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.61k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.61k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.61k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.61k
        if (!left_is_const && !right_is_const) {
283
70
            auto col_res = ColumnUInt8::create();
284
285
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
70
            vec_res.resize(col_left->get_data().size());
287
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
70
                              typename PrimitiveTypeTraits<PT>::CppType,
289
70
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
70
                                                     vec_res);
291
292
70
            block.replace_by_position(result, std::move(col_res));
293
1.54k
        } else if (!left_is_const && right_is_const) {
294
1.54k
            auto col_res = ColumnUInt8::create();
295
296
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.54k
            vec_res.resize(col_left->size());
298
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.54k
                                                       col_right->get_element(0), vec_res);
302
303
1.54k
            block.replace_by_position(result, std::move(col_res));
304
1.54k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.61k
        return Status::OK();
317
1.61k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.21k
                            const ColumnPtr& col_right_ptr) const {
274
1.21k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.21k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.21k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.21k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.21k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.21k
        if (!left_is_const && !right_is_const) {
283
198
            auto col_res = ColumnUInt8::create();
284
285
198
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
198
            vec_res.resize(col_left->get_data().size());
287
198
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
198
                              typename PrimitiveTypeTraits<PT>::CppType,
289
198
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
198
                                                     vec_res);
291
292
198
            block.replace_by_position(result, std::move(col_res));
293
1.02k
        } else if (!left_is_const && right_is_const) {
294
1.02k
            auto col_res = ColumnUInt8::create();
295
296
1.02k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.02k
            vec_res.resize(col_left->size());
298
1.02k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.02k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.02k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.02k
                                                       col_right->get_element(0), vec_res);
302
303
1.02k
            block.replace_by_position(result, std::move(col_res));
304
1.02k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.21k
        return Status::OK();
317
1.21k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
661
                            const ColumnPtr& col_right_ptr) const {
274
661
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
661
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
661
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
661
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
661
        DCHECK(!(left_is_const && right_is_const));
281
282
661
        if (!left_is_const && !right_is_const) {
283
250
            auto col_res = ColumnUInt8::create();
284
285
250
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
250
            vec_res.resize(col_left->get_data().size());
287
250
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
250
                              typename PrimitiveTypeTraits<PT>::CppType,
289
250
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
250
                                                     vec_res);
291
292
250
            block.replace_by_position(result, std::move(col_res));
293
411
        } else if (!left_is_const && right_is_const) {
294
411
            auto col_res = ColumnUInt8::create();
295
296
411
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
411
            vec_res.resize(col_left->size());
298
411
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
411
                              typename PrimitiveTypeTraits<PT>::CppType,
300
411
                              Op<PT>>::vector_constant(col_left->get_data(),
301
411
                                                       col_right->get_element(0), vec_res);
302
303
411
            block.replace_by_position(result, std::move(col_res));
304
411
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
661
        return Status::OK();
317
661
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
4
            auto col_res = ColumnUInt8::create();
284
285
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
4
            vec_res.resize(col_left->get_data().size());
287
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
4
                              typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
4
                                                     vec_res);
291
292
4
            block.replace_by_position(result, std::move(col_res));
293
4
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
4
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
5.27k
                            const ColumnPtr& col_right_ptr) const {
274
5.27k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
5.27k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
5.27k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
5.27k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
5.27k
        DCHECK(!(left_is_const && right_is_const));
281
282
5.27k
        if (!left_is_const && !right_is_const) {
283
594
            auto col_res = ColumnUInt8::create();
284
285
594
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
594
            vec_res.resize(col_left->get_data().size());
287
594
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
594
                              typename PrimitiveTypeTraits<PT>::CppType,
289
594
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
594
                                                     vec_res);
291
292
594
            block.replace_by_position(result, std::move(col_res));
293
4.68k
        } else if (!left_is_const && right_is_const) {
294
4.68k
            auto col_res = ColumnUInt8::create();
295
296
4.68k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
4.68k
            vec_res.resize(col_left->size());
298
4.68k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
4.68k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
4.68k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
4.68k
                                                       col_right->get_element(0), vec_res);
302
303
4.68k
            block.replace_by_position(result, std::move(col_res));
304
4.68k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
5.27k
        return Status::OK();
317
5.27k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.31k
                            const ColumnPtr& col_right_ptr) const {
274
1.31k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.31k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.31k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.31k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.31k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.31k
        if (!left_is_const && !right_is_const) {
283
101
            auto col_res = ColumnUInt8::create();
284
285
101
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
101
            vec_res.resize(col_left->get_data().size());
287
101
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
101
                              typename PrimitiveTypeTraits<PT>::CppType,
289
101
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
101
                                                     vec_res);
291
292
101
            block.replace_by_position(result, std::move(col_res));
293
1.21k
        } else if (!left_is_const && right_is_const) {
294
1.21k
            auto col_res = ColumnUInt8::create();
295
296
1.21k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.21k
            vec_res.resize(col_left->size());
298
1.21k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.21k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.21k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.21k
                                                       col_right->get_element(0), vec_res);
302
303
1.21k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.31k
        return Status::OK();
317
1.31k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
30.4k
                            const ColumnPtr& col_right_ptr) const {
274
30.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
30.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
30.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
30.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
30.4k
        DCHECK(!(left_is_const && right_is_const));
281
282
30.4k
        if (!left_is_const && !right_is_const) {
283
247
            auto col_res = ColumnUInt8::create();
284
285
247
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
247
            vec_res.resize(col_left->get_data().size());
287
247
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
247
                              typename PrimitiveTypeTraits<PT>::CppType,
289
247
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
247
                                                     vec_res);
291
292
247
            block.replace_by_position(result, std::move(col_res));
293
30.1k
        } else if (!left_is_const && right_is_const) {
294
30.1k
            auto col_res = ColumnUInt8::create();
295
296
30.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
30.1k
            vec_res.resize(col_left->size());
298
30.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
30.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
30.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
30.1k
                                                       col_right->get_element(0), vec_res);
302
303
30.1k
            block.replace_by_position(result, std::move(col_res));
304
30.1k
        } else if (left_is_const && !right_is_const) {
305
5
            auto col_res = ColumnUInt8::create();
306
307
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
5
            vec_res.resize(col_right->size());
309
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
5
                              typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
5
                                                       col_right->get_data(), vec_res);
313
314
5
            block.replace_by_position(result, std::move(col_res));
315
5
        }
316
30.4k
        return Status::OK();
317
30.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
23.0k
                            const ColumnPtr& col_right_ptr) const {
274
23.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
23.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
23.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
23.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
23.0k
        DCHECK(!(left_is_const && right_is_const));
281
282
23.0k
        if (!left_is_const && !right_is_const) {
283
410
            auto col_res = ColumnUInt8::create();
284
285
410
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
410
            vec_res.resize(col_left->get_data().size());
287
410
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
410
                              typename PrimitiveTypeTraits<PT>::CppType,
289
410
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
410
                                                     vec_res);
291
292
410
            block.replace_by_position(result, std::move(col_res));
293
22.6k
        } else if (!left_is_const && right_is_const) {
294
22.6k
            auto col_res = ColumnUInt8::create();
295
296
22.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
22.6k
            vec_res.resize(col_left->size());
298
22.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
22.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
22.6k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
22.6k
                                                       col_right->get_element(0), vec_res);
302
303
22.6k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
23.0k
        return Status::OK();
317
23.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
130
                            const ColumnPtr& col_right_ptr) const {
274
130
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
130
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
130
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
130
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
130
        DCHECK(!(left_is_const && right_is_const));
281
282
130
        if (!left_is_const && !right_is_const) {
283
76
            auto col_res = ColumnUInt8::create();
284
285
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
76
            vec_res.resize(col_left->get_data().size());
287
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
76
                              typename PrimitiveTypeTraits<PT>::CppType,
289
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
76
                                                     vec_res);
291
292
76
            block.replace_by_position(result, std::move(col_res));
293
76
        } else if (!left_is_const && right_is_const) {
294
54
            auto col_res = ColumnUInt8::create();
295
296
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
54
            vec_res.resize(col_left->size());
298
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
54
                              typename PrimitiveTypeTraits<PT>::CppType,
300
54
                              Op<PT>>::vector_constant(col_left->get_data(),
301
54
                                                       col_right->get_element(0), vec_res);
302
303
54
            block.replace_by_position(result, std::move(col_res));
304
54
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
130
        return Status::OK();
317
130
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
20
                            const ColumnPtr& col_right_ptr) const {
274
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
20
        DCHECK(!(left_is_const && right_is_const));
281
282
20
        if (!left_is_const && !right_is_const) {
283
5
            auto col_res = ColumnUInt8::create();
284
285
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
5
            vec_res.resize(col_left->get_data().size());
287
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
5
                              typename PrimitiveTypeTraits<PT>::CppType,
289
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
5
                                                     vec_res);
291
292
5
            block.replace_by_position(result, std::move(col_res));
293
15
        } else if (!left_is_const && right_is_const) {
294
15
            auto col_res = ColumnUInt8::create();
295
296
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
15
            vec_res.resize(col_left->size());
298
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
15
                              typename PrimitiveTypeTraits<PT>::CppType,
300
15
                              Op<PT>>::vector_constant(col_left->get_data(),
301
15
                                                       col_right->get_element(0), vec_res);
302
303
15
            block.replace_by_position(result, std::move(col_res));
304
15
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
20
        return Status::OK();
317
20
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
19
                            const ColumnPtr& col_right_ptr) const {
274
19
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
19
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
19
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
19
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
19
        DCHECK(!(left_is_const && right_is_const));
281
282
19
        if (!left_is_const && !right_is_const) {
283
13
            auto col_res = ColumnUInt8::create();
284
285
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
13
            vec_res.resize(col_left->get_data().size());
287
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
13
                              typename PrimitiveTypeTraits<PT>::CppType,
289
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
13
                                                     vec_res);
291
292
13
            block.replace_by_position(result, std::move(col_res));
293
13
        } else if (!left_is_const && right_is_const) {
294
6
            auto col_res = ColumnUInt8::create();
295
296
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
6
            vec_res.resize(col_left->size());
298
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
6
                              typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              Op<PT>>::vector_constant(col_left->get_data(),
301
6
                                                       col_right->get_element(0), vec_res);
302
303
6
            block.replace_by_position(result, std::move(col_res));
304
6
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
19
        return Status::OK();
317
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
100
                            const ColumnPtr& col_right_ptr) const {
274
100
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
100
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
100
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
100
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
100
        DCHECK(!(left_is_const && right_is_const));
281
282
100
        if (!left_is_const && !right_is_const) {
283
96
            auto col_res = ColumnUInt8::create();
284
285
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
96
            vec_res.resize(col_left->get_data().size());
287
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
96
                              typename PrimitiveTypeTraits<PT>::CppType,
289
96
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
96
                                                     vec_res);
291
292
96
            block.replace_by_position(result, std::move(col_res));
293
96
        } else if (!left_is_const && right_is_const) {
294
4
            auto col_res = ColumnUInt8::create();
295
296
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
4
            vec_res.resize(col_left->size());
298
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
4
                              typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              Op<PT>>::vector_constant(col_left->get_data(),
301
4
                                                       col_right->get_element(0), vec_res);
302
303
4
            block.replace_by_position(result, std::move(col_res));
304
4
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
100
        return Status::OK();
317
100
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
336
                            const ColumnPtr& col_right_ptr) const {
274
336
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
336
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
336
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
336
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
336
        DCHECK(!(left_is_const && right_is_const));
281
282
336
        if (!left_is_const && !right_is_const) {
283
96
            auto col_res = ColumnUInt8::create();
284
285
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
96
            vec_res.resize(col_left->get_data().size());
287
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
96
                              typename PrimitiveTypeTraits<PT>::CppType,
289
96
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
96
                                                     vec_res);
291
292
96
            block.replace_by_position(result, std::move(col_res));
293
240
        } else if (!left_is_const && right_is_const) {
294
240
            auto col_res = ColumnUInt8::create();
295
296
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
240
            vec_res.resize(col_left->size());
298
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
240
                              typename PrimitiveTypeTraits<PT>::CppType,
300
240
                              Op<PT>>::vector_constant(col_left->get_data(),
301
240
                                                       col_right->get_element(0), vec_res);
302
303
240
            block.replace_by_position(result, std::move(col_res));
304
240
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
336
        return Status::OK();
317
336
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
4
            auto col_res = ColumnUInt8::create();
284
285
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
4
            vec_res.resize(col_left->get_data().size());
287
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
4
                              typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
4
                                                     vec_res);
291
292
4
            block.replace_by_position(result, std::move(col_res));
293
4
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
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
273
49
                            const ColumnPtr& col_right_ptr) const {
274
49
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
49
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
49
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
49
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
49
        DCHECK(!(left_is_const && right_is_const));
281
282
49
        if (!left_is_const && !right_is_const) {
283
39
            auto col_res = ColumnUInt8::create();
284
285
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
39
            vec_res.resize(col_left->get_data().size());
287
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
39
                              typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
39
                                                     vec_res);
291
292
39
            block.replace_by_position(result, std::move(col_res));
293
39
        } else if (!left_is_const && right_is_const) {
294
10
            auto col_res = ColumnUInt8::create();
295
296
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10
            vec_res.resize(col_left->size());
298
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10
                                                       col_right->get_element(0), vec_res);
302
303
10
            block.replace_by_position(result, std::move(col_res));
304
10
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
49
        return Status::OK();
317
49
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2
                            const ColumnPtr& col_right_ptr) const {
274
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2
        DCHECK(!(left_is_const && right_is_const));
281
282
2
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
2
        } else if (!left_is_const && right_is_const) {
294
2
            auto col_res = ColumnUInt8::create();
295
296
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2
            vec_res.resize(col_left->size());
298
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2
                                                       col_right->get_element(0), vec_res);
302
303
2
            block.replace_by_position(result, std::move(col_res));
304
2
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2
        return Status::OK();
317
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
100
                            const ColumnPtr& col_right_ptr) const {
274
100
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
100
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
100
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
100
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
100
        DCHECK(!(left_is_const && right_is_const));
281
282
100
        if (!left_is_const && !right_is_const) {
283
56
            auto col_res = ColumnUInt8::create();
284
285
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
56
            vec_res.resize(col_left->get_data().size());
287
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
56
                              typename PrimitiveTypeTraits<PT>::CppType,
289
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
56
                                                     vec_res);
291
292
56
            block.replace_by_position(result, std::move(col_res));
293
56
        } else if (!left_is_const && right_is_const) {
294
44
            auto col_res = ColumnUInt8::create();
295
296
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
44
            vec_res.resize(col_left->size());
298
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
44
                              typename PrimitiveTypeTraits<PT>::CppType,
300
44
                              Op<PT>>::vector_constant(col_left->get_data(),
301
44
                                                       col_right->get_element(0), vec_res);
302
303
44
            block.replace_by_position(result, std::move(col_res));
304
44
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
100
        return Status::OK();
317
100
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
26
                            const ColumnPtr& col_right_ptr) const {
274
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
26
        DCHECK(!(left_is_const && right_is_const));
281
282
26
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
26
        } else if (!left_is_const && right_is_const) {
294
26
            auto col_res = ColumnUInt8::create();
295
296
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
26
            vec_res.resize(col_left->size());
298
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
26
                              typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              Op<PT>>::vector_constant(col_left->get_data(),
301
26
                                                       col_right->get_element(0), vec_res);
302
303
26
            block.replace_by_position(result, std::move(col_res));
304
26
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
26
        return Status::OK();
317
26
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3.16k
                            const ColumnPtr& col_right_ptr) const {
274
3.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3.16k
        DCHECK(!(left_is_const && right_is_const));
281
282
3.16k
        if (!left_is_const && !right_is_const) {
283
435
            auto col_res = ColumnUInt8::create();
284
285
435
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
435
            vec_res.resize(col_left->get_data().size());
287
435
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
435
                              typename PrimitiveTypeTraits<PT>::CppType,
289
435
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
435
                                                     vec_res);
291
292
435
            block.replace_by_position(result, std::move(col_res));
293
2.73k
        } else if (!left_is_const && right_is_const) {
294
2.73k
            auto col_res = ColumnUInt8::create();
295
296
2.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2.73k
            vec_res.resize(col_left->size());
298
2.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2.73k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2.73k
                                                       col_right->get_element(0), vec_res);
302
303
2.73k
            block.replace_by_position(result, std::move(col_res));
304
2.73k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3.16k
        return Status::OK();
317
3.16k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2.34k
                            const ColumnPtr& col_right_ptr) const {
274
2.34k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2.34k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2.34k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2.34k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2.34k
        DCHECK(!(left_is_const && right_is_const));
281
282
2.34k
        if (!left_is_const && !right_is_const) {
283
418
            auto col_res = ColumnUInt8::create();
284
285
418
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
418
            vec_res.resize(col_left->get_data().size());
287
418
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
418
                              typename PrimitiveTypeTraits<PT>::CppType,
289
418
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
418
                                                     vec_res);
291
292
418
            block.replace_by_position(result, std::move(col_res));
293
1.92k
        } else if (!left_is_const && right_is_const) {
294
1.92k
            auto col_res = ColumnUInt8::create();
295
296
1.92k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.92k
            vec_res.resize(col_left->size());
298
1.92k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.92k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.92k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.92k
                                                       col_right->get_element(0), vec_res);
302
303
1.92k
            block.replace_by_position(result, std::move(col_res));
304
1.92k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2.34k
        return Status::OK();
317
2.34k
    }
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
273
48
                            const ColumnPtr& col_right_ptr) const {
274
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
48
        DCHECK(!(left_is_const && right_is_const));
281
282
48
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
28
        } else if (!left_is_const && right_is_const) {
294
28
            auto col_res = ColumnUInt8::create();
295
296
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
28
            vec_res.resize(col_left->size());
298
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
28
                              typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              Op<PT>>::vector_constant(col_left->get_data(),
301
28
                                                       col_right->get_element(0), vec_res);
302
303
28
            block.replace_by_position(result, std::move(col_res));
304
28
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
48
        return Status::OK();
317
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
60
                            const ColumnPtr& col_right_ptr) const {
274
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
60
        DCHECK(!(left_is_const && right_is_const));
281
282
60
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
40
        } else if (!left_is_const && right_is_const) {
294
40
            auto col_res = ColumnUInt8::create();
295
296
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
40
            vec_res.resize(col_left->size());
298
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
40
                              typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              Op<PT>>::vector_constant(col_left->get_data(),
301
40
                                                       col_right->get_element(0), vec_res);
302
303
40
            block.replace_by_position(result, std::move(col_res));
304
40
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
60
        return Status::OK();
317
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
273
1.18k
                            const ColumnPtr& col_right_ptr) const {
274
1.18k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.18k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.18k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.18k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.18k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.18k
        if (!left_is_const && !right_is_const) {
283
1.05k
            auto col_res = ColumnUInt8::create();
284
285
1.05k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1.05k
            vec_res.resize(col_left->get_data().size());
287
1.05k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1.05k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1.05k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1.05k
                                                     vec_res);
291
292
1.05k
            block.replace_by_position(result, std::move(col_res));
293
1.05k
        } else if (!left_is_const && right_is_const) {
294
128
            auto col_res = ColumnUInt8::create();
295
296
128
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
128
            vec_res.resize(col_left->size());
298
128
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
128
                              typename PrimitiveTypeTraits<PT>::CppType,
300
128
                              Op<PT>>::vector_constant(col_left->get_data(),
301
128
                                                       col_right->get_element(0), vec_res);
302
303
128
            block.replace_by_position(result, std::move(col_res));
304
128
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.18k
        return Status::OK();
317
1.18k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
94
                            const ColumnPtr& col_right_ptr) const {
274
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
94
        DCHECK(!(left_is_const && right_is_const));
281
282
94
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
94
        } else if (!left_is_const && right_is_const) {
294
94
            auto col_res = ColumnUInt8::create();
295
296
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
94
            vec_res.resize(col_left->size());
298
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
94
                              typename PrimitiveTypeTraits<PT>::CppType,
300
94
                              Op<PT>>::vector_constant(col_left->get_data(),
301
94
                                                       col_right->get_element(0), vec_res);
302
303
94
            block.replace_by_position(result, std::move(col_res));
304
94
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
94
        return Status::OK();
317
94
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
584
                            const ColumnPtr& col_right_ptr) const {
274
584
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
584
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
584
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
584
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
584
        DCHECK(!(left_is_const && right_is_const));
281
282
584
        if (!left_is_const && !right_is_const) {
283
200
            auto col_res = ColumnUInt8::create();
284
285
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
200
            vec_res.resize(col_left->get_data().size());
287
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
200
                              typename PrimitiveTypeTraits<PT>::CppType,
289
200
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
200
                                                     vec_res);
291
292
200
            block.replace_by_position(result, std::move(col_res));
293
384
        } else if (!left_is_const && right_is_const) {
294
384
            auto col_res = ColumnUInt8::create();
295
296
384
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
384
            vec_res.resize(col_left->size());
298
384
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
384
                              typename PrimitiveTypeTraits<PT>::CppType,
300
384
                              Op<PT>>::vector_constant(col_left->get_data(),
301
384
                                                       col_right->get_element(0), vec_res);
302
303
384
            block.replace_by_position(result, std::move(col_res));
304
384
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
584
        return Status::OK();
317
584
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.01k
                            const ColumnPtr& col_right_ptr) const {
274
1.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.01k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.01k
        if (!left_is_const && !right_is_const) {
283
452
            auto col_res = ColumnUInt8::create();
284
285
452
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
452
            vec_res.resize(col_left->get_data().size());
287
452
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
452
                              typename PrimitiveTypeTraits<PT>::CppType,
289
452
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
452
                                                     vec_res);
291
292
452
            block.replace_by_position(result, std::move(col_res));
293
563
        } else if (!left_is_const && right_is_const) {
294
563
            auto col_res = ColumnUInt8::create();
295
296
563
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
563
            vec_res.resize(col_left->size());
298
563
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
563
                              typename PrimitiveTypeTraits<PT>::CppType,
300
563
                              Op<PT>>::vector_constant(col_left->get_data(),
301
563
                                                       col_right->get_element(0), vec_res);
302
303
563
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.01k
        return Status::OK();
317
1.01k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
20.2k
                            const ColumnPtr& col_right_ptr) const {
274
20.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
20.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
20.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
20.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
20.2k
        DCHECK(!(left_is_const && right_is_const));
281
282
20.2k
        if (!left_is_const && !right_is_const) {
283
2.00k
            auto col_res = ColumnUInt8::create();
284
285
2.00k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
2.00k
            vec_res.resize(col_left->get_data().size());
287
2.00k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
2.00k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
2.00k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
2.00k
                                                     vec_res);
291
292
2.00k
            block.replace_by_position(result, std::move(col_res));
293
18.2k
        } else if (!left_is_const && right_is_const) {
294
18.2k
            auto col_res = ColumnUInt8::create();
295
296
18.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
18.2k
            vec_res.resize(col_left->size());
298
18.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
18.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
18.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
18.2k
                                                       col_right->get_element(0), vec_res);
302
303
18.2k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
20.2k
        return Status::OK();
317
20.2k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
13.3k
                            const ColumnPtr& col_right_ptr) const {
274
13.3k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
13.3k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
13.3k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
13.3k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
13.3k
        DCHECK(!(left_is_const && right_is_const));
281
282
13.3k
        if (!left_is_const && !right_is_const) {
283
148
            auto col_res = ColumnUInt8::create();
284
285
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
148
            vec_res.resize(col_left->get_data().size());
287
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
148
                              typename PrimitiveTypeTraits<PT>::CppType,
289
148
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
148
                                                     vec_res);
291
292
148
            block.replace_by_position(result, std::move(col_res));
293
13.2k
        } else if (!left_is_const && right_is_const) {
294
13.2k
            auto col_res = ColumnUInt8::create();
295
296
13.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
13.2k
            vec_res.resize(col_left->size());
298
13.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
13.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
13.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
13.2k
                                                       col_right->get_element(0), vec_res);
302
303
13.2k
            block.replace_by_position(result, std::move(col_res));
304
13.2k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
13.3k
        return Status::OK();
317
13.3k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
213
                            const ColumnPtr& col_right_ptr) const {
274
213
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
213
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
213
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
213
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
213
        DCHECK(!(left_is_const && right_is_const));
281
282
213
        if (!left_is_const && !right_is_const) {
283
12
            auto col_res = ColumnUInt8::create();
284
285
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
12
            vec_res.resize(col_left->get_data().size());
287
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
12
                              typename PrimitiveTypeTraits<PT>::CppType,
289
12
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
12
                                                     vec_res);
291
292
12
            block.replace_by_position(result, std::move(col_res));
293
201
        } else if (!left_is_const && right_is_const) {
294
201
            auto col_res = ColumnUInt8::create();
295
296
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
201
            vec_res.resize(col_left->size());
298
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
201
                              typename PrimitiveTypeTraits<PT>::CppType,
300
201
                              Op<PT>>::vector_constant(col_left->get_data(),
301
201
                                                       col_right->get_element(0), vec_res);
302
303
201
            block.replace_by_position(result, std::move(col_res));
304
201
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
213
        return Status::OK();
317
213
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2
                            const ColumnPtr& col_right_ptr) const {
274
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2
        DCHECK(!(left_is_const && right_is_const));
281
282
2
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
1
            auto col_res = ColumnUInt8::create();
295
296
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1
            vec_res.resize(col_left->size());
298
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1
                                                       col_right->get_element(0), vec_res);
302
303
1
            block.replace_by_position(result, std::move(col_res));
304
1
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2
        return Status::OK();
317
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1
                            const ColumnPtr& col_right_ptr) const {
274
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1
        DCHECK(!(left_is_const && right_is_const));
281
282
1
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1
        return Status::OK();
317
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
235
                            const ColumnPtr& col_right_ptr) const {
274
235
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
235
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
235
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
235
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
235
        DCHECK(!(left_is_const && right_is_const));
281
282
235
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
216
        } else if (!left_is_const && right_is_const) {
294
216
            auto col_res = ColumnUInt8::create();
295
296
216
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
216
            vec_res.resize(col_left->size());
298
216
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
216
                              typename PrimitiveTypeTraits<PT>::CppType,
300
216
                              Op<PT>>::vector_constant(col_left->get_data(),
301
216
                                                       col_right->get_element(0), vec_res);
302
303
216
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
235
        return Status::OK();
317
235
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2.48k
                            const ColumnPtr& col_right_ptr) const {
274
2.48k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2.48k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2.48k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2.48k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2.48k
        DCHECK(!(left_is_const && right_is_const));
281
282
2.48k
        if (!left_is_const && !right_is_const) {
283
45
            auto col_res = ColumnUInt8::create();
284
285
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
45
            vec_res.resize(col_left->get_data().size());
287
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
45
                              typename PrimitiveTypeTraits<PT>::CppType,
289
45
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
45
                                                     vec_res);
291
292
45
            block.replace_by_position(result, std::move(col_res));
293
2.44k
        } else if (!left_is_const && right_is_const) {
294
2.44k
            auto col_res = ColumnUInt8::create();
295
296
2.44k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2.44k
            vec_res.resize(col_left->size());
298
2.44k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2.44k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2.44k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2.44k
                                                       col_right->get_element(0), vec_res);
302
303
2.44k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2.48k
        return Status::OK();
317
2.48k
    }
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
273
152
                            const ColumnPtr& col_right_ptr) const {
274
152
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
152
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
152
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
152
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
152
        DCHECK(!(left_is_const && right_is_const));
281
282
152
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
152
        } else if (!left_is_const && right_is_const) {
294
152
            auto col_res = ColumnUInt8::create();
295
296
152
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
152
            vec_res.resize(col_left->size());
298
152
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
152
                              typename PrimitiveTypeTraits<PT>::CppType,
300
152
                              Op<PT>>::vector_constant(col_left->get_data(),
301
152
                                                       col_right->get_element(0), vec_res);
302
303
152
            block.replace_by_position(result, std::move(col_res));
304
152
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
152
        return Status::OK();
317
152
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.58k
                            const ColumnPtr& col_right_ptr) const {
274
1.58k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.58k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.58k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.58k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.58k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.58k
        if (!left_is_const && !right_is_const) {
283
7
            auto col_res = ColumnUInt8::create();
284
285
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
7
            vec_res.resize(col_left->get_data().size());
287
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
7
                              typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
7
                                                     vec_res);
291
292
7
            block.replace_by_position(result, std::move(col_res));
293
1.58k
        } else if (!left_is_const && right_is_const) {
294
1.58k
            auto col_res = ColumnUInt8::create();
295
296
1.58k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.58k
            vec_res.resize(col_left->size());
298
1.58k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.58k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.58k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.58k
                                                       col_right->get_element(0), vec_res);
302
303
1.58k
            block.replace_by_position(result, std::move(col_res));
304
1.58k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.58k
        return Status::OK();
317
1.58k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
618
                            const ColumnPtr& col_right_ptr) const {
274
618
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
618
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
618
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
618
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
618
        DCHECK(!(left_is_const && right_is_const));
281
282
618
        if (!left_is_const && !right_is_const) {
283
8
            auto col_res = ColumnUInt8::create();
284
285
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
8
            vec_res.resize(col_left->get_data().size());
287
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
8
                              typename PrimitiveTypeTraits<PT>::CppType,
289
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
8
                                                     vec_res);
291
292
8
            block.replace_by_position(result, std::move(col_res));
293
610
        } else if (!left_is_const && right_is_const) {
294
608
            auto col_res = ColumnUInt8::create();
295
296
608
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
608
            vec_res.resize(col_left->size());
298
608
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
608
                              typename PrimitiveTypeTraits<PT>::CppType,
300
608
                              Op<PT>>::vector_constant(col_left->get_data(),
301
608
                                                       col_right->get_element(0), vec_res);
302
303
608
            block.replace_by_position(result, std::move(col_res));
304
608
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
618
        return Status::OK();
317
618
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
69
                            const ColumnPtr& col_right_ptr) const {
274
69
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
69
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
69
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
69
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
69
        DCHECK(!(left_is_const && right_is_const));
281
282
69
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
69
        } else if (!left_is_const && right_is_const) {
294
69
            auto col_res = ColumnUInt8::create();
295
296
69
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
69
            vec_res.resize(col_left->size());
298
69
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
69
                              typename PrimitiveTypeTraits<PT>::CppType,
300
69
                              Op<PT>>::vector_constant(col_left->get_data(),
301
69
                                                       col_right->get_element(0), vec_res);
302
303
69
            block.replace_by_position(result, std::move(col_res));
304
69
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
69
        return Status::OK();
317
69
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
112
                            const ColumnPtr& col_right_ptr) const {
274
112
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
112
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
112
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
112
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
112
        DCHECK(!(left_is_const && right_is_const));
281
282
113
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
113
        } else if (!left_is_const && right_is_const) {
294
113
            auto col_res = ColumnUInt8::create();
295
296
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
113
            vec_res.resize(col_left->size());
298
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
113
                              typename PrimitiveTypeTraits<PT>::CppType,
300
113
                              Op<PT>>::vector_constant(col_left->get_data(),
301
113
                                                       col_right->get_element(0), vec_res);
302
303
113
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
112
        return Status::OK();
317
112
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
12.0k
                            const ColumnPtr& col_right_ptr) const {
274
12.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
12.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
12.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
12.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
12.0k
        DCHECK(!(left_is_const && right_is_const));
281
282
12.0k
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
12.0k
        } else if (!left_is_const && right_is_const) {
294
12.0k
            auto col_res = ColumnUInt8::create();
295
296
12.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
12.0k
            vec_res.resize(col_left->size());
298
12.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
12.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
12.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
12.0k
                                                       col_right->get_element(0), vec_res);
302
303
12.0k
            block.replace_by_position(result, std::move(col_res));
304
12.0k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
12.0k
        return Status::OK();
317
12.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
796
                            const ColumnPtr& col_right_ptr) const {
274
796
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
796
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
796
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
796
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
796
        DCHECK(!(left_is_const && right_is_const));
281
282
796
        if (!left_is_const && !right_is_const) {
283
9
            auto col_res = ColumnUInt8::create();
284
285
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
9
            vec_res.resize(col_left->get_data().size());
287
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
9
                              typename PrimitiveTypeTraits<PT>::CppType,
289
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
9
                                                     vec_res);
291
292
9
            block.replace_by_position(result, std::move(col_res));
293
787
        } else if (!left_is_const && right_is_const) {
294
787
            auto col_res = ColumnUInt8::create();
295
296
787
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
787
            vec_res.resize(col_left->size());
298
787
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
787
                              typename PrimitiveTypeTraits<PT>::CppType,
300
787
                              Op<PT>>::vector_constant(col_left->get_data(),
301
787
                                                       col_right->get_element(0), vec_res);
302
303
787
            block.replace_by_position(result, std::move(col_res));
304
787
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
796
        return Status::OK();
317
796
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
41
                            const ColumnPtr& col_right_ptr) const {
274
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
41
        DCHECK(!(left_is_const && right_is_const));
281
282
41
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
41
        } else if (!left_is_const && right_is_const) {
294
41
            auto col_res = ColumnUInt8::create();
295
296
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
41
            vec_res.resize(col_left->size());
298
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
41
                              typename PrimitiveTypeTraits<PT>::CppType,
300
41
                              Op<PT>>::vector_constant(col_left->get_data(),
301
41
                                                       col_right->get_element(0), vec_res);
302
303
41
            block.replace_by_position(result, std::move(col_res));
304
41
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
41
        return Status::OK();
317
41
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
11
                            const ColumnPtr& col_right_ptr) const {
274
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
11
        DCHECK(!(left_is_const && right_is_const));
281
282
11
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
10
        } else if (!left_is_const && right_is_const) {
294
10
            auto col_res = ColumnUInt8::create();
295
296
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10
            vec_res.resize(col_left->size());
298
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10
                                                       col_right->get_element(0), vec_res);
302
303
10
            block.replace_by_position(result, std::move(col_res));
304
10
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
11
        return Status::OK();
317
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1
                            const ColumnPtr& col_right_ptr) const {
274
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1
        DCHECK(!(left_is_const && right_is_const));
281
282
1
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1
        return Status::OK();
317
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
128
                            const ColumnPtr& col_right_ptr) const {
274
128
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
128
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
128
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
128
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
128
        DCHECK(!(left_is_const && right_is_const));
281
282
128
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
108
        } else if (!left_is_const && right_is_const) {
294
108
            auto col_res = ColumnUInt8::create();
295
296
108
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
108
            vec_res.resize(col_left->size());
298
108
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
108
                              typename PrimitiveTypeTraits<PT>::CppType,
300
108
                              Op<PT>>::vector_constant(col_left->get_data(),
301
108
                                                       col_right->get_element(0), vec_res);
302
303
108
            block.replace_by_position(result, std::move(col_res));
304
108
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
128
        return Status::OK();
317
128
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
155
                            const ColumnPtr& col_right_ptr) const {
274
155
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
155
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
155
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
155
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
155
        DCHECK(!(left_is_const && right_is_const));
281
282
155
        if (!left_is_const && !right_is_const) {
283
28
            auto col_res = ColumnUInt8::create();
284
285
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
28
            vec_res.resize(col_left->get_data().size());
287
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
28
                              typename PrimitiveTypeTraits<PT>::CppType,
289
28
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
28
                                                     vec_res);
291
292
28
            block.replace_by_position(result, std::move(col_res));
293
127
        } else if (!left_is_const && right_is_const) {
294
127
            auto col_res = ColumnUInt8::create();
295
296
127
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
127
            vec_res.resize(col_left->size());
298
127
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
127
                              typename PrimitiveTypeTraits<PT>::CppType,
300
127
                              Op<PT>>::vector_constant(col_left->get_data(),
301
127
                                                       col_right->get_element(0), vec_res);
302
303
127
            block.replace_by_position(result, std::move(col_res));
304
127
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
155
        return Status::OK();
317
155
    }
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
273
75
                            const ColumnPtr& col_right_ptr) const {
274
75
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
75
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
75
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
75
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
75
        DCHECK(!(left_is_const && right_is_const));
281
282
75
        if (!left_is_const && !right_is_const) {
283
75
            auto col_res = ColumnUInt8::create();
284
285
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
75
            vec_res.resize(col_left->get_data().size());
287
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
75
                              typename PrimitiveTypeTraits<PT>::CppType,
289
75
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
75
                                                     vec_res);
291
292
75
            block.replace_by_position(result, std::move(col_res));
293
75
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
75
        return Status::OK();
317
75
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2.29k
                            const ColumnPtr& col_right_ptr) const {
274
2.29k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2.29k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2.29k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2.29k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2.29k
        DCHECK(!(left_is_const && right_is_const));
281
282
2.29k
        if (!left_is_const && !right_is_const) {
283
1.74k
            auto col_res = ColumnUInt8::create();
284
285
1.74k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1.74k
            vec_res.resize(col_left->get_data().size());
287
1.74k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1.74k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1.74k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1.74k
                                                     vec_res);
291
292
1.74k
            block.replace_by_position(result, std::move(col_res));
293
1.74k
        } else if (!left_is_const && right_is_const) {
294
544
            auto col_res = ColumnUInt8::create();
295
296
544
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
544
            vec_res.resize(col_left->size());
298
544
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
544
                              typename PrimitiveTypeTraits<PT>::CppType,
300
544
                              Op<PT>>::vector_constant(col_left->get_data(),
301
544
                                                       col_right->get_element(0), vec_res);
302
303
544
            block.replace_by_position(result, std::move(col_res));
304
544
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2.29k
        return Status::OK();
317
2.29k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
577
                            const ColumnPtr& col_right_ptr) const {
274
577
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
577
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
577
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
577
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
577
        DCHECK(!(left_is_const && right_is_const));
281
282
578
        if (!left_is_const && !right_is_const) {
283
241
            auto col_res = ColumnUInt8::create();
284
285
241
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
241
            vec_res.resize(col_left->get_data().size());
287
241
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
241
                              typename PrimitiveTypeTraits<PT>::CppType,
289
241
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
241
                                                     vec_res);
291
292
241
            block.replace_by_position(result, std::move(col_res));
293
337
        } else if (!left_is_const && right_is_const) {
294
336
            auto col_res = ColumnUInt8::create();
295
296
336
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
336
            vec_res.resize(col_left->size());
298
336
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
336
                              typename PrimitiveTypeTraits<PT>::CppType,
300
336
                              Op<PT>>::vector_constant(col_left->get_data(),
301
336
                                                       col_right->get_element(0), vec_res);
302
303
336
            block.replace_by_position(result, std::move(col_res));
304
336
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
577
        return Status::OK();
317
577
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
1
            auto col_res = ColumnUInt8::create();
295
296
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1
            vec_res.resize(col_left->size());
298
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1
                                                       col_right->get_element(0), vec_res);
302
303
1
            block.replace_by_position(result, std::move(col_res));
304
1
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
610
                            const ColumnPtr& col_right_ptr) const {
274
610
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
610
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
610
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
610
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
610
        DCHECK(!(left_is_const && right_is_const));
281
282
610
        if (!left_is_const && !right_is_const) {
283
553
            auto col_res = ColumnUInt8::create();
284
285
553
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
553
            vec_res.resize(col_left->get_data().size());
287
553
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
553
                              typename PrimitiveTypeTraits<PT>::CppType,
289
553
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
553
                                                     vec_res);
291
292
553
            block.replace_by_position(result, std::move(col_res));
293
553
        } else if (!left_is_const && right_is_const) {
294
57
            auto col_res = ColumnUInt8::create();
295
296
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
57
            vec_res.resize(col_left->size());
298
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
57
                              typename PrimitiveTypeTraits<PT>::CppType,
300
57
                              Op<PT>>::vector_constant(col_left->get_data(),
301
57
                                                       col_right->get_element(0), vec_res);
302
303
57
            block.replace_by_position(result, std::move(col_res));
304
57
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
610
        return Status::OK();
317
610
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
374
                            const ColumnPtr& col_right_ptr) const {
274
374
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
374
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
374
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
374
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
374
        DCHECK(!(left_is_const && right_is_const));
281
282
374
        if (!left_is_const && !right_is_const) {
283
106
            auto col_res = ColumnUInt8::create();
284
285
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
106
            vec_res.resize(col_left->get_data().size());
287
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
106
                              typename PrimitiveTypeTraits<PT>::CppType,
289
106
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
106
                                                     vec_res);
291
292
106
            block.replace_by_position(result, std::move(col_res));
293
268
        } else if (!left_is_const && right_is_const) {
294
268
            auto col_res = ColumnUInt8::create();
295
296
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
268
            vec_res.resize(col_left->size());
298
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
268
                              typename PrimitiveTypeTraits<PT>::CppType,
300
268
                              Op<PT>>::vector_constant(col_left->get_data(),
301
268
                                                       col_right->get_element(0), vec_res);
302
303
268
            block.replace_by_position(result, std::move(col_res));
304
268
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
374
        return Status::OK();
317
374
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
5.85k
                            const ColumnPtr& col_right_ptr) const {
274
5.85k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
5.85k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
5.85k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
5.85k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
5.85k
        DCHECK(!(left_is_const && right_is_const));
281
282
5.85k
        if (!left_is_const && !right_is_const) {
283
144
            auto col_res = ColumnUInt8::create();
284
285
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
144
            vec_res.resize(col_left->get_data().size());
287
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
144
                              typename PrimitiveTypeTraits<PT>::CppType,
289
144
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
144
                                                     vec_res);
291
292
144
            block.replace_by_position(result, std::move(col_res));
293
5.70k
        } else if (!left_is_const && right_is_const) {
294
5.70k
            auto col_res = ColumnUInt8::create();
295
296
5.70k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
5.70k
            vec_res.resize(col_left->size());
298
5.70k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
5.70k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
5.70k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
5.70k
                                                       col_right->get_element(0), vec_res);
302
303
5.70k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
5.85k
        return Status::OK();
317
5.85k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.66k
                            const ColumnPtr& col_right_ptr) const {
274
1.66k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.66k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.66k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.66k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.66k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.66k
        if (!left_is_const && !right_is_const) {
283
252
            auto col_res = ColumnUInt8::create();
284
285
252
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
252
            vec_res.resize(col_left->get_data().size());
287
252
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
252
                              typename PrimitiveTypeTraits<PT>::CppType,
289
252
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
252
                                                     vec_res);
291
292
252
            block.replace_by_position(result, std::move(col_res));
293
1.41k
        } else if (!left_is_const && right_is_const) {
294
1.41k
            auto col_res = ColumnUInt8::create();
295
296
1.41k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.41k
            vec_res.resize(col_left->size());
298
1.41k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.41k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.41k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.41k
                                                       col_right->get_element(0), vec_res);
302
303
1.41k
            block.replace_by_position(result, std::move(col_res));
304
1.41k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.66k
        return Status::OK();
317
1.66k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
175
                            const ColumnPtr& col_right_ptr) const {
274
175
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
175
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
175
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
175
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
175
        DCHECK(!(left_is_const && right_is_const));
281
282
175
        if (!left_is_const && !right_is_const) {
283
153
            auto col_res = ColumnUInt8::create();
284
285
153
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
153
            vec_res.resize(col_left->get_data().size());
287
153
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
153
                              typename PrimitiveTypeTraits<PT>::CppType,
289
153
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
153
                                                     vec_res);
291
292
153
            block.replace_by_position(result, std::move(col_res));
293
153
        } else if (!left_is_const && right_is_const) {
294
22
            auto col_res = ColumnUInt8::create();
295
296
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
22
            vec_res.resize(col_left->size());
298
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
22
                              typename PrimitiveTypeTraits<PT>::CppType,
300
22
                              Op<PT>>::vector_constant(col_left->get_data(),
301
22
                                                       col_right->get_element(0), vec_res);
302
303
22
            block.replace_by_position(result, std::move(col_res));
304
22
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
175
        return Status::OK();
317
175
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
16
            auto col_res = ColumnUInt8::create();
284
285
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
16
            vec_res.resize(col_left->get_data().size());
287
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
16
                              typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
16
                                                     vec_res);
291
292
16
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
16
            auto col_res = ColumnUInt8::create();
284
285
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
16
            vec_res.resize(col_left->get_data().size());
287
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
16
                              typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
16
                                                     vec_res);
291
292
16
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
157
                            const ColumnPtr& col_right_ptr) const {
274
157
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
157
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
157
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
157
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
157
        DCHECK(!(left_is_const && right_is_const));
281
282
157
        if (!left_is_const && !right_is_const) {
283
131
            auto col_res = ColumnUInt8::create();
284
285
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
131
            vec_res.resize(col_left->get_data().size());
287
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
131
                              typename PrimitiveTypeTraits<PT>::CppType,
289
131
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
131
                                                     vec_res);
291
292
131
            block.replace_by_position(result, std::move(col_res));
293
131
        } else if (!left_is_const && right_is_const) {
294
26
            auto col_res = ColumnUInt8::create();
295
296
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
26
            vec_res.resize(col_left->size());
298
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
26
                              typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              Op<PT>>::vector_constant(col_left->get_data(),
301
26
                                                       col_right->get_element(0), vec_res);
302
303
26
            block.replace_by_position(result, std::move(col_res));
304
26
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
157
        return Status::OK();
317
157
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
365
                            const ColumnPtr& col_right_ptr) const {
274
365
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
365
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
365
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
365
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
365
        DCHECK(!(left_is_const && right_is_const));
281
282
365
        if (!left_is_const && !right_is_const) {
283
149
            auto col_res = ColumnUInt8::create();
284
285
149
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
149
            vec_res.resize(col_left->get_data().size());
287
149
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
149
                              typename PrimitiveTypeTraits<PT>::CppType,
289
149
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
149
                                                     vec_res);
291
292
149
            block.replace_by_position(result, std::move(col_res));
293
216
        } else if (!left_is_const && right_is_const) {
294
214
            auto col_res = ColumnUInt8::create();
295
296
214
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
214
            vec_res.resize(col_left->size());
298
214
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
214
                              typename PrimitiveTypeTraits<PT>::CppType,
300
214
                              Op<PT>>::vector_constant(col_left->get_data(),
301
214
                                                       col_right->get_element(0), vec_res);
302
303
214
            block.replace_by_position(result, std::move(col_res));
304
214
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
365
        return Status::OK();
317
365
    }
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
273
424
                            const ColumnPtr& col_right_ptr) const {
274
424
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
424
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
424
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
424
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
424
        DCHECK(!(left_is_const && right_is_const));
281
282
424
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
424
        } else if (!left_is_const && right_is_const) {
294
424
            auto col_res = ColumnUInt8::create();
295
296
424
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
424
            vec_res.resize(col_left->size());
298
424
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
424
                              typename PrimitiveTypeTraits<PT>::CppType,
300
424
                              Op<PT>>::vector_constant(col_left->get_data(),
301
424
                                                       col_right->get_element(0), vec_res);
302
303
424
            block.replace_by_position(result, std::move(col_res));
304
424
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
424
        return Status::OK();
317
424
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
10.6k
                            const ColumnPtr& col_right_ptr) const {
274
10.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
10.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
10.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
10.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
10.6k
        DCHECK(!(left_is_const && right_is_const));
281
282
10.6k
        if (!left_is_const && !right_is_const) {
283
424
            auto col_res = ColumnUInt8::create();
284
285
424
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
424
            vec_res.resize(col_left->get_data().size());
287
424
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
424
                              typename PrimitiveTypeTraits<PT>::CppType,
289
424
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
424
                                                     vec_res);
291
292
424
            block.replace_by_position(result, std::move(col_res));
293
10.2k
        } else if (!left_is_const && right_is_const) {
294
10.2k
            auto col_res = ColumnUInt8::create();
295
296
10.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10.2k
            vec_res.resize(col_left->size());
298
10.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10.2k
                                                       col_right->get_element(0), vec_res);
302
303
10.2k
            block.replace_by_position(result, std::move(col_res));
304
10.2k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
10.6k
        return Status::OK();
317
10.6k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
454
                            const ColumnPtr& col_right_ptr) const {
274
454
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
454
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
454
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
454
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
454
        DCHECK(!(left_is_const && right_is_const));
281
282
455
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
455
        } else if (!left_is_const && right_is_const) {
294
455
            auto col_res = ColumnUInt8::create();
295
296
455
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
455
            vec_res.resize(col_left->size());
298
455
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
455
                              typename PrimitiveTypeTraits<PT>::CppType,
300
455
                              Op<PT>>::vector_constant(col_left->get_data(),
301
455
                                                       col_right->get_element(0), vec_res);
302
303
455
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
454
        return Status::OK();
317
454
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
270
                            const ColumnPtr& col_right_ptr) const {
274
270
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
270
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
270
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
270
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
270
        DCHECK(!(left_is_const && right_is_const));
281
282
270
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
269
        } else if (!left_is_const && right_is_const) {
294
269
            auto col_res = ColumnUInt8::create();
295
296
269
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
269
            vec_res.resize(col_left->size());
298
269
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
269
                              typename PrimitiveTypeTraits<PT>::CppType,
300
269
                              Op<PT>>::vector_constant(col_left->get_data(),
301
269
                                                       col_right->get_element(0), vec_res);
302
303
269
            block.replace_by_position(result, std::move(col_res));
304
269
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
270
        return Status::OK();
317
270
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
310
                            const ColumnPtr& col_right_ptr) const {
274
310
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
310
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
310
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
310
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
310
        DCHECK(!(left_is_const && right_is_const));
281
282
310
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
310
        } else if (!left_is_const && right_is_const) {
294
310
            auto col_res = ColumnUInt8::create();
295
296
310
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
310
            vec_res.resize(col_left->size());
298
310
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
310
                              typename PrimitiveTypeTraits<PT>::CppType,
300
310
                              Op<PT>>::vector_constant(col_left->get_data(),
301
310
                                                       col_right->get_element(0), vec_res);
302
303
310
            block.replace_by_position(result, std::move(col_res));
304
310
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
310
        return Status::OK();
317
310
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
18.2k
                            const ColumnPtr& col_right_ptr) const {
274
18.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
18.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
18.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
18.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
18.2k
        DCHECK(!(left_is_const && right_is_const));
281
282
18.2k
        if (!left_is_const && !right_is_const) {
283
52
            auto col_res = ColumnUInt8::create();
284
285
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
52
            vec_res.resize(col_left->get_data().size());
287
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
52
                              typename PrimitiveTypeTraits<PT>::CppType,
289
52
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
52
                                                     vec_res);
291
292
52
            block.replace_by_position(result, std::move(col_res));
293
18.2k
        } else if (!left_is_const && right_is_const) {
294
18.2k
            auto col_res = ColumnUInt8::create();
295
296
18.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
18.2k
            vec_res.resize(col_left->size());
298
18.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
18.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
18.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
18.2k
                                                       col_right->get_element(0), vec_res);
302
303
18.2k
            block.replace_by_position(result, std::move(col_res));
304
18.2k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
18.2k
        return Status::OK();
317
18.2k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
897
                            const ColumnPtr& col_right_ptr) const {
274
897
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
897
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
897
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
897
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
897
        DCHECK(!(left_is_const && right_is_const));
281
282
897
        if (!left_is_const && !right_is_const) {
283
77
            auto col_res = ColumnUInt8::create();
284
285
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
77
            vec_res.resize(col_left->get_data().size());
287
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
77
                              typename PrimitiveTypeTraits<PT>::CppType,
289
77
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
77
                                                     vec_res);
291
292
77
            block.replace_by_position(result, std::move(col_res));
293
820
        } else if (!left_is_const && right_is_const) {
294
820
            auto col_res = ColumnUInt8::create();
295
296
820
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
820
            vec_res.resize(col_left->size());
298
820
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
820
                              typename PrimitiveTypeTraits<PT>::CppType,
300
820
                              Op<PT>>::vector_constant(col_left->get_data(),
301
820
                                                       col_right->get_element(0), vec_res);
302
303
820
            block.replace_by_position(result, std::move(col_res));
304
820
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
897
        return Status::OK();
317
897
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
35
                            const ColumnPtr& col_right_ptr) const {
274
35
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
35
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
35
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
35
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
35
        DCHECK(!(left_is_const && right_is_const));
281
282
35
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
35
        } else if (!left_is_const && right_is_const) {
294
35
            auto col_res = ColumnUInt8::create();
295
296
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
35
            vec_res.resize(col_left->size());
298
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
35
                              typename PrimitiveTypeTraits<PT>::CppType,
300
35
                              Op<PT>>::vector_constant(col_left->get_data(),
301
35
                                                       col_right->get_element(0), vec_res);
302
303
35
            block.replace_by_position(result, std::move(col_res));
304
35
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
35
        return Status::OK();
317
35
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
10
                            const ColumnPtr& col_right_ptr) const {
274
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
10
        DCHECK(!(left_is_const && right_is_const));
281
282
10
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
10
        } else if (!left_is_const && right_is_const) {
294
10
            auto col_res = ColumnUInt8::create();
295
296
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10
            vec_res.resize(col_left->size());
298
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10
                                                       col_right->get_element(0), vec_res);
302
303
10
            block.replace_by_position(result, std::move(col_res));
304
10
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
10
        return Status::OK();
317
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
273
123
                            const ColumnPtr& col_right_ptr) const {
274
123
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
123
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
123
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
123
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
123
        DCHECK(!(left_is_const && right_is_const));
281
282
123
        if (!left_is_const && !right_is_const) {
283
19
            auto col_res = ColumnUInt8::create();
284
285
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
19
            vec_res.resize(col_left->get_data().size());
287
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
19
                              typename PrimitiveTypeTraits<PT>::CppType,
289
19
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
19
                                                     vec_res);
291
292
19
            block.replace_by_position(result, std::move(col_res));
293
104
        } else if (!left_is_const && right_is_const) {
294
104
            auto col_res = ColumnUInt8::create();
295
296
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
104
            vec_res.resize(col_left->size());
298
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
104
                              typename PrimitiveTypeTraits<PT>::CppType,
300
104
                              Op<PT>>::vector_constant(col_left->get_data(),
301
104
                                                       col_right->get_element(0), vec_res);
302
303
104
            block.replace_by_position(result, std::move(col_res));
304
104
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
123
        return Status::OK();
317
123
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
144
                            const ColumnPtr& col_right_ptr) const {
274
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
144
        DCHECK(!(left_is_const && right_is_const));
281
282
144
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
124
        } else if (!left_is_const && right_is_const) {
294
124
            auto col_res = ColumnUInt8::create();
295
296
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
124
            vec_res.resize(col_left->size());
298
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
124
                              typename PrimitiveTypeTraits<PT>::CppType,
300
124
                              Op<PT>>::vector_constant(col_left->get_data(),
301
124
                                                       col_right->get_element(0), vec_res);
302
303
124
            block.replace_by_position(result, std::move(col_res));
304
124
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
144
        return Status::OK();
317
144
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
318
319
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
320
147k
                           const ColumnWithTypeAndName& col_right) const {
321
147k
        auto call = [&](const auto& type) -> bool {
322
147k
            using DispatchType = std::decay_t<decltype(type)>;
323
147k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
147k
                    block, result, col_left, col_right);
325
147k
            return true;
326
147k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
236
        auto call = [&](const auto& type) -> bool {
322
236
            using DispatchType = std::decay_t<decltype(type)>;
323
236
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
236
                    block, result, col_left, col_right);
325
236
            return true;
326
236
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
264
        auto call = [&](const auto& type) -> bool {
322
264
            using DispatchType = std::decay_t<decltype(type)>;
323
264
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
264
                    block, result, col_left, col_right);
325
264
            return true;
326
264
        };
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
321
1.18k
        auto call = [&](const auto& type) -> bool {
322
1.18k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.18k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.18k
                    block, result, col_left, col_right);
325
1.18k
            return true;
326
1.18k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
30
        auto call = [&](const auto& type) -> bool {
322
30
            using DispatchType = std::decay_t<decltype(type)>;
323
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
30
                    block, result, col_left, col_right);
325
30
            return true;
326
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
61
        auto call = [&](const auto& type) -> bool {
322
61
            using DispatchType = std::decay_t<decltype(type)>;
323
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
61
                    block, result, col_left, col_right);
325
61
            return true;
326
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
321
312
        auto call = [&](const auto& type) -> bool {
322
312
            using DispatchType = std::decay_t<decltype(type)>;
323
312
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
312
                    block, result, col_left, col_right);
325
312
            return true;
326
312
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
30
        auto call = [&](const auto& type) -> bool {
322
30
            using DispatchType = std::decay_t<decltype(type)>;
323
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
30
                    block, result, col_left, col_right);
325
30
            return true;
326
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
46
        auto call = [&](const auto& type) -> bool {
322
46
            using DispatchType = std::decay_t<decltype(type)>;
323
46
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
46
                    block, result, col_left, col_right);
325
46
            return true;
326
46
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
1.59k
        auto call = [&](const auto& type) -> bool {
322
1.59k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.59k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.59k
                    block, result, col_left, col_right);
325
1.59k
            return true;
326
1.59k
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
321
1.45k
        auto call = [&](const auto& type) -> bool {
322
1.45k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.45k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.45k
                    block, result, col_left, col_right);
325
1.45k
            return true;
326
1.45k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
2
        auto call = [&](const auto& type) -> bool {
322
2
            using DispatchType = std::decay_t<decltype(type)>;
323
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
2
                    block, result, col_left, col_right);
325
2
            return true;
326
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
9
        auto call = [&](const auto& type) -> bool {
322
9
            using DispatchType = std::decay_t<decltype(type)>;
323
9
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
9
                    block, result, col_left, col_right);
325
9
            return true;
326
9
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
260
        auto call = [&](const auto& type) -> bool {
322
260
            using DispatchType = std::decay_t<decltype(type)>;
323
260
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
260
                    block, result, col_left, col_right);
325
260
            return true;
326
260
        };
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
321
47
        auto call = [&](const auto& type) -> bool {
322
47
            using DispatchType = std::decay_t<decltype(type)>;
323
47
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
47
                    block, result, col_left, col_right);
325
47
            return true;
326
47
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
21
        auto call = [&](const auto& type) -> bool {
322
21
            using DispatchType = std::decay_t<decltype(type)>;
323
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
21
                    block, result, col_left, col_right);
325
21
            return true;
326
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
204
        auto call = [&](const auto& type) -> bool {
322
204
            using DispatchType = std::decay_t<decltype(type)>;
323
204
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
204
                    block, result, col_left, col_right);
325
204
            return true;
326
204
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
257
        auto call = [&](const auto& type) -> bool {
322
257
            using DispatchType = std::decay_t<decltype(type)>;
323
257
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
257
                    block, result, col_left, col_right);
325
257
            return true;
326
257
        };
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
321
471
        auto call = [&](const auto& type) -> bool {
322
471
            using DispatchType = std::decay_t<decltype(type)>;
323
471
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
471
                    block, result, col_left, col_right);
325
471
            return true;
326
471
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
1
        auto call = [&](const auto& type) -> bool {
322
1
            using DispatchType = std::decay_t<decltype(type)>;
323
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1
                    block, result, col_left, col_right);
325
1
            return true;
326
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
4
        auto call = [&](const auto& type) -> bool {
322
4
            using DispatchType = std::decay_t<decltype(type)>;
323
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
4
                    block, result, col_left, col_right);
325
4
            return true;
326
4
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
140k
        auto call = [&](const auto& type) -> bool {
322
140k
            using DispatchType = std::decay_t<decltype(type)>;
323
140k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
140k
                    block, result, col_left, col_right);
325
140k
            return true;
326
140k
        };
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
321
741
        auto call = [&](const auto& type) -> bool {
322
741
            using DispatchType = std::decay_t<decltype(type)>;
323
741
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
741
                    block, result, col_left, col_right);
325
741
            return true;
326
741
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
16
        auto call = [&](const auto& type) -> bool {
322
16
            using DispatchType = std::decay_t<decltype(type)>;
323
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
16
                    block, result, col_left, col_right);
325
16
            return true;
326
16
        };
327
328
147k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
147k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
147k
        return Status::OK();
339
147k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
1.71k
                           const ColumnWithTypeAndName& col_right) const {
321
1.71k
        auto call = [&](const auto& type) -> bool {
322
1.71k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.71k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.71k
                    block, result, col_left, col_right);
325
1.71k
            return true;
326
1.71k
        };
327
328
1.71k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
1.71k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
1.71k
        return Status::OK();
339
1.71k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
403
                           const ColumnWithTypeAndName& col_right) const {
321
403
        auto call = [&](const auto& type) -> bool {
322
403
            using DispatchType = std::decay_t<decltype(type)>;
323
403
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
403
                    block, result, col_left, col_right);
325
403
            return true;
326
403
        };
327
328
403
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
403
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
403
        return Status::OK();
339
403
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
3.10k
                           const ColumnWithTypeAndName& col_right) const {
321
3.10k
        auto call = [&](const auto& type) -> bool {
322
3.10k
            using DispatchType = std::decay_t<decltype(type)>;
323
3.10k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
3.10k
                    block, result, col_left, col_right);
325
3.10k
            return true;
326
3.10k
        };
327
328
3.10k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
3.10k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
3.10k
        return Status::OK();
339
3.10k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
337
                           const ColumnWithTypeAndName& col_right) const {
321
337
        auto call = [&](const auto& type) -> bool {
322
337
            using DispatchType = std::decay_t<decltype(type)>;
323
337
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
337
                    block, result, col_left, col_right);
325
337
            return true;
326
337
        };
327
328
337
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
337
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
337
        return Status::OK();
339
337
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
933
                           const ColumnWithTypeAndName& col_right) const {
321
933
        auto call = [&](const auto& type) -> bool {
322
933
            using DispatchType = std::decay_t<decltype(type)>;
323
933
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
933
                    block, result, col_left, col_right);
325
933
            return true;
326
933
        };
327
328
933
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
933
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
933
        return Status::OK();
339
933
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
141k
                           const ColumnWithTypeAndName& col_right) const {
321
141k
        auto call = [&](const auto& type) -> bool {
322
141k
            using DispatchType = std::decay_t<decltype(type)>;
323
141k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
141k
                    block, result, col_left, col_right);
325
141k
            return true;
326
141k
        };
327
328
141k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
141k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
141k
        return Status::OK();
339
141k
    }
340
341
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
342
25.6k
                          const IColumn* c1) const {
343
25.6k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
25.6k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
25.6k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
25.6k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
25.6k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
25.6k
        DCHECK(!(c0_const && c1_const));
352
25.6k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
25.6k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
25.6k
        ColumnString::Offset c0_const_size = 0;
355
25.6k
        ColumnString::Offset c1_const_size = 0;
356
357
25.6k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
25.6k
        if (c1_const) {
371
24.7k
            const ColumnString* c1_const_string =
372
24.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
24.7k
            if (c1_const_string) {
375
24.7k
                c1_const_chars = &c1_const_string->get_chars();
376
24.7k
                c1_const_size = c1_const_string->get_offsets()[0];
377
24.7k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
24.7k
        }
382
383
25.6k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
25.6k
        auto c_res = ColumnUInt8::create();
386
25.6k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
25.6k
        vec_res.resize(c0->size());
388
389
25.6k
        if (c0_string && c1_string) {
390
854
            StringImpl::string_vector_string_vector(
391
854
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
854
                    c1_string->get_offsets(), vec_res);
393
24.7k
        } else if (c0_string && c1_const) {
394
24.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
24.7k
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
25.6k
        block.replace_by_position(result, std::move(c_res));
405
25.6k
        return Status::OK();
406
25.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
20.5k
                          const IColumn* c1) const {
343
20.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
20.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
20.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
20.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
20.5k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
20.5k
        DCHECK(!(c0_const && c1_const));
352
20.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
20.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
20.5k
        ColumnString::Offset c0_const_size = 0;
355
20.5k
        ColumnString::Offset c1_const_size = 0;
356
357
20.5k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
20.5k
        if (c1_const) {
371
20.1k
            const ColumnString* c1_const_string =
372
20.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
20.1k
            if (c1_const_string) {
375
20.1k
                c1_const_chars = &c1_const_string->get_chars();
376
20.1k
                c1_const_size = c1_const_string->get_offsets()[0];
377
20.1k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
20.1k
        }
382
383
20.5k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
20.5k
        auto c_res = ColumnUInt8::create();
386
20.5k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
20.5k
        vec_res.resize(c0->size());
388
389
20.5k
        if (c0_string && c1_string) {
390
423
            StringImpl::string_vector_string_vector(
391
423
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
423
                    c1_string->get_offsets(), vec_res);
393
20.1k
        } else if (c0_string && c1_const) {
394
20.1k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
20.1k
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
20.5k
        block.replace_by_position(result, std::move(c_res));
405
20.5k
        return Status::OK();
406
20.5k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
1.50k
                          const IColumn* c1) const {
343
1.50k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
1.50k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
1.50k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
1.50k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
1.50k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
1.50k
        DCHECK(!(c0_const && c1_const));
352
1.50k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
1.50k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
1.50k
        ColumnString::Offset c0_const_size = 0;
355
1.50k
        ColumnString::Offset c1_const_size = 0;
356
357
1.50k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
1.50k
        if (c1_const) {
371
1.50k
            const ColumnString* c1_const_string =
372
1.50k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
1.50k
            if (c1_const_string) {
375
1.50k
                c1_const_chars = &c1_const_string->get_chars();
376
1.50k
                c1_const_size = c1_const_string->get_offsets()[0];
377
1.50k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
1.50k
        }
382
383
1.50k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
1.50k
        auto c_res = ColumnUInt8::create();
386
1.50k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
1.50k
        vec_res.resize(c0->size());
388
389
1.50k
        if (c0_string && c1_string) {
390
1
            StringImpl::string_vector_string_vector(
391
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
1
                    c1_string->get_offsets(), vec_res);
393
1.50k
        } else if (c0_string && c1_const) {
394
1.50k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
1.50k
                                               *c1_const_chars, c1_const_size, vec_res);
396
1.50k
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
1.50k
        block.replace_by_position(result, std::move(c_res));
405
1.50k
        return Status::OK();
406
1.50k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
193
                          const IColumn* c1) const {
343
193
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
193
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
193
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
193
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
193
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
193
        DCHECK(!(c0_const && c1_const));
352
193
        const ColumnString::Chars* c0_const_chars = nullptr;
353
193
        const ColumnString::Chars* c1_const_chars = nullptr;
354
193
        ColumnString::Offset c0_const_size = 0;
355
193
        ColumnString::Offset c1_const_size = 0;
356
357
193
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
193
        if (c1_const) {
371
191
            const ColumnString* c1_const_string =
372
191
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
191
            if (c1_const_string) {
375
191
                c1_const_chars = &c1_const_string->get_chars();
376
191
                c1_const_size = c1_const_string->get_offsets()[0];
377
191
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
191
        }
382
383
193
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
193
        auto c_res = ColumnUInt8::create();
386
193
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
193
        vec_res.resize(c0->size());
388
389
193
        if (c0_string && c1_string) {
390
2
            StringImpl::string_vector_string_vector(
391
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
2
                    c1_string->get_offsets(), vec_res);
393
191
        } else if (c0_string && c1_const) {
394
191
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
191
                                               *c1_const_chars, c1_const_size, vec_res);
396
191
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
193
        block.replace_by_position(result, std::move(c_res));
405
193
        return Status::OK();
406
193
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
663
                          const IColumn* c1) const {
343
663
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
663
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
663
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
663
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
663
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
663
        DCHECK(!(c0_const && c1_const));
352
663
        const ColumnString::Chars* c0_const_chars = nullptr;
353
663
        const ColumnString::Chars* c1_const_chars = nullptr;
354
663
        ColumnString::Offset c0_const_size = 0;
355
663
        ColumnString::Offset c1_const_size = 0;
356
357
663
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
663
        if (c1_const) {
371
621
            const ColumnString* c1_const_string =
372
621
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
621
            if (c1_const_string) {
375
621
                c1_const_chars = &c1_const_string->get_chars();
376
621
                c1_const_size = c1_const_string->get_offsets()[0];
377
621
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
621
        }
382
383
663
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
663
        auto c_res = ColumnUInt8::create();
386
663
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
663
        vec_res.resize(c0->size());
388
389
664
        if (c0_string && c1_string) {
390
41
            StringImpl::string_vector_string_vector(
391
41
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
41
                    c1_string->get_offsets(), vec_res);
393
623
        } else if (c0_string && c1_const) {
394
623
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
623
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
664
        block.replace_by_position(result, std::move(c_res));
405
664
        return Status::OK();
406
663
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
640
                          const IColumn* c1) const {
343
640
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
640
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
640
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
640
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
640
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
640
        DCHECK(!(c0_const && c1_const));
352
640
        const ColumnString::Chars* c0_const_chars = nullptr;
353
640
        const ColumnString::Chars* c1_const_chars = nullptr;
354
640
        ColumnString::Offset c0_const_size = 0;
355
640
        ColumnString::Offset c1_const_size = 0;
356
357
640
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
640
        if (c1_const) {
371
253
            const ColumnString* c1_const_string =
372
253
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
253
            if (c1_const_string) {
375
253
                c1_const_chars = &c1_const_string->get_chars();
376
253
                c1_const_size = c1_const_string->get_offsets()[0];
377
253
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
253
        }
382
383
640
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
640
        auto c_res = ColumnUInt8::create();
386
640
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
640
        vec_res.resize(c0->size());
388
389
640
        if (c0_string && c1_string) {
390
387
            StringImpl::string_vector_string_vector(
391
387
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
387
                    c1_string->get_offsets(), vec_res);
393
387
        } else if (c0_string && c1_const) {
394
253
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
253
                                               *c1_const_chars, c1_const_size, vec_res);
396
253
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
640
        block.replace_by_position(result, std::move(c_res));
405
640
        return Status::OK();
406
640
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
2.06k
                          const IColumn* c1) const {
343
2.06k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
2.06k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
2.06k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
2.06k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
2.06k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
2.06k
        DCHECK(!(c0_const && c1_const));
352
2.06k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
2.06k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
2.06k
        ColumnString::Offset c0_const_size = 0;
355
2.06k
        ColumnString::Offset c1_const_size = 0;
356
357
2.06k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
2.06k
        if (c1_const) {
371
2.06k
            const ColumnString* c1_const_string =
372
2.06k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
2.06k
            if (c1_const_string) {
375
2.06k
                c1_const_chars = &c1_const_string->get_chars();
376
2.06k
                c1_const_size = c1_const_string->get_offsets()[0];
377
2.06k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
2.06k
        }
382
383
2.06k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
2.06k
        auto c_res = ColumnUInt8::create();
386
2.06k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
2.06k
        vec_res.resize(c0->size());
388
389
2.06k
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
2.06k
        } else if (c0_string && c1_const) {
394
2.06k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
2.06k
                                               *c1_const_chars, c1_const_size, vec_res);
396
2.06k
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
2.06k
        block.replace_by_position(result, std::move(c_res));
405
2.06k
        return Status::OK();
406
2.06k
    }
407
408
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
409
141
                                         const IColumn* c1) const {
410
141
        bool c0_const = is_column_const(*c0);
411
141
        bool c1_const = is_column_const(*c1);
412
413
141
        DCHECK(!(c0_const && c1_const));
414
415
141
        auto c_res = ColumnUInt8::create();
416
141
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
141
        vec_res.resize(c0->size());
418
419
141
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
141
        } else if (c1_const) {
422
132
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
132
        } else {
424
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
9
        }
426
427
141
        block.replace_by_position(result, std::move(c_res));
428
141
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
17
                                         const IColumn* c1) const {
410
17
        bool c0_const = is_column_const(*c0);
411
17
        bool c1_const = is_column_const(*c1);
412
413
17
        DCHECK(!(c0_const && c1_const));
414
415
17
        auto c_res = ColumnUInt8::create();
416
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
17
        vec_res.resize(c0->size());
418
419
17
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
17
        } else if (c1_const) {
422
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
13
        } else {
424
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
4
        }
426
427
17
        block.replace_by_position(result, std::move(c_res));
428
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
8
                                         const IColumn* c1) const {
410
8
        bool c0_const = is_column_const(*c0);
411
8
        bool c1_const = is_column_const(*c1);
412
413
8
        DCHECK(!(c0_const && c1_const));
414
415
8
        auto c_res = ColumnUInt8::create();
416
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
8
        vec_res.resize(c0->size());
418
419
8
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
8
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
0
        }
426
427
8
        block.replace_by_position(result, std::move(c_res));
428
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
9
                                         const IColumn* c1) const {
410
9
        bool c0_const = is_column_const(*c0);
411
9
        bool c1_const = is_column_const(*c1);
412
413
9
        DCHECK(!(c0_const && c1_const));
414
415
9
        auto c_res = ColumnUInt8::create();
416
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
9
        vec_res.resize(c0->size());
418
419
9
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
9
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
1
        }
426
427
9
        block.replace_by_position(result, std::move(c_res));
428
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
50
                                         const IColumn* c1) const {
410
50
        bool c0_const = is_column_const(*c0);
411
50
        bool c1_const = is_column_const(*c1);
412
413
50
        DCHECK(!(c0_const && c1_const));
414
415
50
        auto c_res = ColumnUInt8::create();
416
50
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
50
        vec_res.resize(c0->size());
418
419
50
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
50
        } else if (c1_const) {
422
49
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
49
        } else {
424
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
1
        }
426
427
50
        block.replace_by_position(result, std::move(c_res));
428
50
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
11
                                         const IColumn* c1) const {
410
11
        bool c0_const = is_column_const(*c0);
411
11
        bool c1_const = is_column_const(*c1);
412
413
11
        DCHECK(!(c0_const && c1_const));
414
415
11
        auto c_res = ColumnUInt8::create();
416
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
11
        vec_res.resize(c0->size());
418
419
11
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
11
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
3
        }
426
427
11
        block.replace_by_position(result, std::move(c_res));
428
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
46
                                         const IColumn* c1) const {
410
46
        bool c0_const = is_column_const(*c0);
411
46
        bool c1_const = is_column_const(*c1);
412
413
46
        DCHECK(!(c0_const && c1_const));
414
415
46
        auto c_res = ColumnUInt8::create();
416
46
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
46
        vec_res.resize(c0->size());
418
419
46
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
46
        } else if (c1_const) {
422
46
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
46
        } else {
424
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
0
        }
426
427
46
        block.replace_by_position(result, std::move(c_res));
428
46
    }
429
430
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
431
141
                           const ColumnWithTypeAndName& c1) const {
432
141
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
141
        return Status::OK();
434
141
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
17
                           const ColumnWithTypeAndName& c1) const {
432
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
17
        return Status::OK();
434
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
8
                           const ColumnWithTypeAndName& c1) const {
432
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
8
        return Status::OK();
434
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
9
                           const ColumnWithTypeAndName& c1) const {
432
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
9
        return Status::OK();
434
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
50
                           const ColumnWithTypeAndName& c1) const {
432
50
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
50
        return Status::OK();
434
50
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
11
                           const ColumnWithTypeAndName& c1) const {
432
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
11
        return Status::OK();
434
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
46
                           const ColumnWithTypeAndName& c1) const {
432
46
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
46
        return Status::OK();
434
46
    }
435
436
public:
437
220
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
35
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
437
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
438
439
476k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
424k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
1.33k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
439
6.28k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
18.9k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
439
3.13k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
22.3k
    size_t get_number_of_arguments() const override { return 2; }
440
441
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
442
476k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
476k
        return std::make_shared<DataTypeUInt8>();
444
476k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
424k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
424k
        return std::make_shared<DataTypeUInt8>();
444
424k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
1.33k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
1.33k
        return std::make_shared<DataTypeUInt8>();
444
1.33k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
6.28k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
6.28k
        return std::make_shared<DataTypeUInt8>();
444
6.28k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
18.9k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
18.9k
        return std::make_shared<DataTypeUInt8>();
444
18.9k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
3.13k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
3.13k
        return std::make_shared<DataTypeUInt8>();
444
3.13k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
22.2k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
22.2k
        return std::make_shared<DataTypeUInt8>();
444
22.2k
    }
445
446
    Status evaluate_inverted_index(
447
            const ColumnsWithTypeAndName& arguments,
448
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
449
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
450
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
451
1.70k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
1.70k
        DCHECK(arguments.size() == 1);
453
1.70k
        DCHECK(data_type_with_names.size() == 1);
454
1.70k
        DCHECK(iterators.size() == 1);
455
1.70k
        auto* iter = iterators[0];
456
1.70k
        auto data_type_with_name = data_type_with_names[0];
457
1.70k
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
1.70k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
423
            return Status::OK();
462
423
        }
463
1.28k
        segment_v2::InvertedIndexQueryType query_type;
464
1.28k
        std::string_view name_view(name);
465
1.28k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
836
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
836
        } else if (name_view == NameLess::name) {
468
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
336
        } else if (name_view == NameLessOrEquals::name) {
470
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
238
        } else if (name_view == NameGreater::name) {
472
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
135
        } else if (name_view == NameGreaterOrEquals::name) {
474
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
18.4E
        } else {
476
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
18.4E
        }
478
479
1.29k
        if (segment_v2::is_range_query(query_type) &&
480
1.29k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
171
            return Status::OK();
483
171
        }
484
1.12k
        Field param_value;
485
1.12k
        arguments[0].column->get(0, param_value);
486
1.12k
        if (param_value.is_null()) {
487
2
            return Status::OK();
488
2
        }
489
1.12k
        auto param_type = arguments[0].type->get_primitive_type();
490
1.12k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
1.12k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
1.12k
                param_type, &param_value, query_param));
493
494
1.12k
        segment_v2::InvertedIndexParam param;
495
1.12k
        param.column_name = data_type_with_name.first;
496
1.12k
        param.column_type = data_type_with_name.second;
497
1.12k
        param.query_value = query_param->get_value();
498
1.12k
        param.query_type = query_type;
499
1.12k
        param.num_rows = num_rows;
500
1.12k
        param.roaring = std::make_shared<roaring::Roaring>();
501
1.12k
        param.analyzer_ctx = analyzer_ctx;
502
1.12k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
978
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
979
        if (iter->has_null()) {
505
979
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
979
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
979
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
979
        }
509
978
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
978
        bitmap_result = result;
511
978
        bitmap_result.mask_out_null();
512
513
978
        if (name_view == NameNotEquals::name) {
514
63
            roaring::Roaring full_result;
515
63
            full_result.addRange(0, num_rows);
516
63
            bitmap_result.op_not(&full_result);
517
63
        }
518
519
978
        return Status::OK();
520
978
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
822
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
822
        DCHECK(arguments.size() == 1);
453
822
        DCHECK(data_type_with_names.size() == 1);
454
822
        DCHECK(iterators.size() == 1);
455
822
        auto* iter = iterators[0];
456
822
        auto data_type_with_name = data_type_with_names[0];
457
822
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
822
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
66
            return Status::OK();
462
66
        }
463
756
        segment_v2::InvertedIndexQueryType query_type;
464
756
        std::string_view name_view(name);
465
766
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
766
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
18.4E
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
18.4E
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
18.4E
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
18.4E
        } else {
476
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
18.4E
        }
478
479
766
        if (segment_v2::is_range_query(query_type) &&
480
766
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
0
            return Status::OK();
483
0
        }
484
766
        Field param_value;
485
766
        arguments[0].column->get(0, param_value);
486
766
        if (param_value.is_null()) {
487
2
            return Status::OK();
488
2
        }
489
764
        auto param_type = arguments[0].type->get_primitive_type();
490
764
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
764
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
764
                param_type, &param_value, query_param));
493
494
764
        segment_v2::InvertedIndexParam param;
495
764
        param.column_name = data_type_with_name.first;
496
764
        param.column_type = data_type_with_name.second;
497
764
        param.query_value = query_param->get_value();
498
764
        param.query_type = query_type;
499
764
        param.num_rows = num_rows;
500
764
        param.roaring = std::make_shared<roaring::Roaring>();
501
764
        param.analyzer_ctx = analyzer_ctx;
502
764
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
729
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
731
        if (iter->has_null()) {
505
731
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
731
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
731
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
731
        }
509
729
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
729
        bitmap_result = result;
511
729
        bitmap_result.mask_out_null();
512
513
729
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
729
        return Status::OK();
520
729
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
77
        DCHECK(arguments.size() == 1);
453
77
        DCHECK(data_type_with_names.size() == 1);
454
77
        DCHECK(iterators.size() == 1);
455
77
        auto* iter = iterators[0];
456
77
        auto data_type_with_name = data_type_with_names[0];
457
77
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
8
            return Status::OK();
462
8
        }
463
69
        segment_v2::InvertedIndexQueryType query_type;
464
69
        std::string_view name_view(name);
465
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
18.4E
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
18.4E
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
18.4E
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
18.4E
        } else {
476
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
18.4E
        }
478
479
70
        if (segment_v2::is_range_query(query_type) &&
480
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
0
            return Status::OK();
483
0
        }
484
70
        Field param_value;
485
70
        arguments[0].column->get(0, param_value);
486
70
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
70
        auto param_type = arguments[0].type->get_primitive_type();
490
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
70
                param_type, &param_value, query_param));
493
494
70
        segment_v2::InvertedIndexParam param;
495
70
        param.column_name = data_type_with_name.first;
496
70
        param.column_type = data_type_with_name.second;
497
70
        param.query_value = query_param->get_value();
498
70
        param.query_type = query_type;
499
70
        param.num_rows = num_rows;
500
70
        param.roaring = std::make_shared<roaring::Roaring>();
501
70
        param.analyzer_ctx = analyzer_ctx;
502
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
63
        if (iter->has_null()) {
505
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
63
        }
509
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
63
        bitmap_result = result;
511
63
        bitmap_result.mask_out_null();
512
513
63
        if (name_view == NameNotEquals::name) {
514
63
            roaring::Roaring full_result;
515
63
            full_result.addRange(0, num_rows);
516
63
            bitmap_result.op_not(&full_result);
517
63
        }
518
519
63
        return Status::OK();
520
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
175
        DCHECK(arguments.size() == 1);
453
175
        DCHECK(data_type_with_names.size() == 1);
454
175
        DCHECK(iterators.size() == 1);
455
175
        auto* iter = iterators[0];
456
175
        auto data_type_with_name = data_type_with_names[0];
457
175
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
62
            return Status::OK();
462
62
        }
463
113
        segment_v2::InvertedIndexQueryType query_type;
464
113
        std::string_view name_view(name);
465
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
113
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
113
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
114
        } else if (name_view == NameGreater::name) {
472
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
18.4E
        } else {
476
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
18.4E
        }
478
479
114
        if (segment_v2::is_range_query(query_type) &&
480
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
28
            return Status::OK();
483
28
        }
484
86
        Field param_value;
485
86
        arguments[0].column->get(0, param_value);
486
86
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
86
        auto param_type = arguments[0].type->get_primitive_type();
490
86
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
86
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
86
                param_type, &param_value, query_param));
493
494
86
        segment_v2::InvertedIndexParam param;
495
86
        param.column_name = data_type_with_name.first;
496
86
        param.column_type = data_type_with_name.second;
497
86
        param.query_value = query_param->get_value();
498
86
        param.query_type = query_type;
499
86
        param.num_rows = num_rows;
500
86
        param.roaring = std::make_shared<roaring::Roaring>();
501
86
        param.analyzer_ctx = analyzer_ctx;
502
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
67
        if (iter->has_null()) {
505
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
67
        }
509
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
67
        bitmap_result = result;
511
67
        bitmap_result.mask_out_null();
512
513
67
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
67
        return Status::OK();
520
67
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
249
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
249
        DCHECK(arguments.size() == 1);
453
249
        DCHECK(data_type_with_names.size() == 1);
454
249
        DCHECK(iterators.size() == 1);
455
249
        auto* iter = iterators[0];
456
249
        auto data_type_with_name = data_type_with_names[0];
457
249
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
249
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
114
            return Status::OK();
462
114
        }
463
135
        segment_v2::InvertedIndexQueryType query_type;
464
135
        std::string_view name_view(name);
465
135
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
135
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
135
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
135
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
135
        } else if (name_view == NameGreaterOrEquals::name) {
474
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
135
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
135
        if (segment_v2::is_range_query(query_type) &&
480
135
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
59
            return Status::OK();
483
59
        }
484
76
        Field param_value;
485
76
        arguments[0].column->get(0, param_value);
486
76
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
76
        auto param_type = arguments[0].type->get_primitive_type();
490
76
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
76
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
76
                param_type, &param_value, query_param));
493
494
76
        segment_v2::InvertedIndexParam param;
495
76
        param.column_name = data_type_with_name.first;
496
76
        param.column_type = data_type_with_name.second;
497
76
        param.query_value = query_param->get_value();
498
76
        param.query_type = query_type;
499
76
        param.num_rows = num_rows;
500
76
        param.roaring = std::make_shared<roaring::Roaring>();
501
76
        param.analyzer_ctx = analyzer_ctx;
502
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
34
        if (iter->has_null()) {
505
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
34
        }
509
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
34
        bitmap_result = result;
511
34
        bitmap_result.mask_out_null();
512
513
34
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
34
        return Status::OK();
520
34
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
172
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
172
        DCHECK(arguments.size() == 1);
453
172
        DCHECK(data_type_with_names.size() == 1);
454
172
        DCHECK(iterators.size() == 1);
455
172
        auto* iter = iterators[0];
456
172
        auto data_type_with_name = data_type_with_names[0];
457
172
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
172
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
61
            return Status::OK();
462
61
        }
463
111
        segment_v2::InvertedIndexQueryType query_type;
464
111
        std::string_view name_view(name);
465
111
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
111
        } else if (name_view == NameLess::name) {
468
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
111
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
0
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
111
        if (segment_v2::is_range_query(query_type) &&
480
111
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
26
            return Status::OK();
483
26
        }
484
85
        Field param_value;
485
85
        arguments[0].column->get(0, param_value);
486
85
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
85
        auto param_type = arguments[0].type->get_primitive_type();
490
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
85
                param_type, &param_value, query_param));
493
494
85
        segment_v2::InvertedIndexParam param;
495
85
        param.column_name = data_type_with_name.first;
496
85
        param.column_type = data_type_with_name.second;
497
85
        param.query_value = query_param->get_value();
498
85
        param.query_type = query_type;
499
85
        param.num_rows = num_rows;
500
85
        param.roaring = std::make_shared<roaring::Roaring>();
501
85
        param.analyzer_ctx = analyzer_ctx;
502
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
66
        if (iter->has_null()) {
505
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
66
        }
509
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
66
        bitmap_result = result;
511
66
        bitmap_result.mask_out_null();
512
513
66
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
66
        return Status::OK();
520
66
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
211
        DCHECK(arguments.size() == 1);
453
211
        DCHECK(data_type_with_names.size() == 1);
454
211
        DCHECK(iterators.size() == 1);
455
211
        auto* iter = iterators[0];
456
211
        auto data_type_with_name = data_type_with_names[0];
457
211
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
112
            return Status::OK();
462
112
        }
463
99
        segment_v2::InvertedIndexQueryType query_type;
464
99
        std::string_view name_view(name);
465
99
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
99
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
99
        } else if (name_view == NameLessOrEquals::name) {
470
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
98
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
1
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
1
        } else {
476
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
1
        }
478
479
98
        if (segment_v2::is_range_query(query_type) &&
480
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
58
            return Status::OK();
483
58
        }
484
40
        Field param_value;
485
40
        arguments[0].column->get(0, param_value);
486
40
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
40
        auto param_type = arguments[0].type->get_primitive_type();
490
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
40
                param_type, &param_value, query_param));
493
494
40
        segment_v2::InvertedIndexParam param;
495
40
        param.column_name = data_type_with_name.first;
496
40
        param.column_type = data_type_with_name.second;
497
40
        param.query_value = query_param->get_value();
498
40
        param.query_type = query_type;
499
40
        param.num_rows = num_rows;
500
40
        param.roaring = std::make_shared<roaring::Roaring>();
501
40
        param.analyzer_ctx = analyzer_ctx;
502
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
19
        if (iter->has_null()) {
505
18
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
18
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
18
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
18
        }
509
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
19
        bitmap_result = result;
511
19
        bitmap_result.mask_out_null();
512
513
19
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
19
        return Status::OK();
520
19
    }
521
522
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
523
342k
                        uint32_t result, size_t input_rows_count) const override {
524
342k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
342k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
342k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
342k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
342k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
342k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
342k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
342k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
342k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
342k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
511k
        auto can_compare = [](PrimitiveType t) -> bool {
562
511k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
511k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
150k
        auto can_compare = [](PrimitiveType t) -> bool {
562
150k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
150k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
13.5k
        auto can_compare = [](PrimitiveType t) -> bool {
562
13.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
13.5k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
82.1k
        auto can_compare = [](PrimitiveType t) -> bool {
562
82.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
82.1k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
32.4k
        auto can_compare = [](PrimitiveType t) -> bool {
562
32.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
32.4k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
25.9k
        auto can_compare = [](PrimitiveType t) -> bool {
562
25.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
25.9k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
206k
        auto can_compare = [](PrimitiveType t) -> bool {
562
206k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
206k
        };
564
565
342k
        if (can_compare(left_type->get_primitive_type()) &&
566
342k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
168k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
168k
        }
574
575
342k
        auto compare_type = left_type->get_primitive_type();
576
342k
        switch (compare_type) {
577
2.26k
        case TYPE_BOOLEAN:
578
2.26k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
16.9k
        case TYPE_DATEV2:
580
16.9k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
2.40k
        case TYPE_DATETIMEV2:
582
2.40k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
17
        case TYPE_TIMESTAMPTZ:
584
17
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
6.91k
        case TYPE_TINYINT:
586
6.91k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
3.15k
        case TYPE_SMALLINT:
588
3.15k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
89.9k
        case TYPE_INT:
590
89.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
42.1k
        case TYPE_BIGINT:
592
42.1k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
594
        case TYPE_LARGEINT:
594
594
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
59
        case TYPE_IPV4:
596
59
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
37
        case TYPE_IPV6:
598
37
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
791
        case TYPE_FLOAT:
600
791
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
3.55k
        case TYPE_DOUBLE:
602
3.55k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
4
        case TYPE_TIMEV2:
604
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
499
        case TYPE_DECIMAL32:
607
143k
        case TYPE_DECIMAL64:
608
147k
        case TYPE_DECIMAL128I:
609
147k
        case TYPE_DECIMAL256:
610
147k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
147k
                                   col_with_type_and_name_right);
612
1.28k
        case TYPE_CHAR:
613
10.4k
        case TYPE_VARCHAR:
614
25.6k
        case TYPE_STRING:
615
25.6k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
141
        default:
617
141
            return execute_generic(block, result, col_with_type_and_name_left,
618
141
                                   col_with_type_and_name_right);
619
342k
        }
620
0
        return Status::OK();
621
342k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
86.4k
                        uint32_t result, size_t input_rows_count) const override {
524
86.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
86.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
86.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
86.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
86.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
86.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
86.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
86.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
86.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
86.4k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
86.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
86.4k
        };
564
565
86.4k
        if (can_compare(left_type->get_primitive_type()) &&
566
86.4k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
64.1k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
64.1k
        }
574
575
86.4k
        auto compare_type = left_type->get_primitive_type();
576
86.4k
        switch (compare_type) {
577
1.61k
        case TYPE_BOOLEAN:
578
1.61k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.21k
        case TYPE_DATEV2:
580
1.21k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
661
        case TYPE_DATETIMEV2:
582
661
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
4
        case TYPE_TIMESTAMPTZ:
584
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
5.28k
        case TYPE_TINYINT:
586
5.28k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
1.31k
        case TYPE_SMALLINT:
588
1.31k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
30.4k
        case TYPE_INT:
590
30.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
23.0k
        case TYPE_BIGINT:
592
23.0k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
130
        case TYPE_LARGEINT:
594
130
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
20
        case TYPE_IPV4:
596
20
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
19
        case TYPE_IPV6:
598
19
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
100
        case TYPE_FLOAT:
600
100
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
336
        case TYPE_DOUBLE:
602
336
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
4
        case TYPE_TIMEV2:
604
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
236
        case TYPE_DECIMAL32:
607
500
        case TYPE_DECIMAL64:
608
1.68k
        case TYPE_DECIMAL128I:
609
1.71k
        case TYPE_DECIMAL256:
610
1.71k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
1.71k
                                   col_with_type_and_name_right);
612
783
        case TYPE_CHAR:
613
8.10k
        case TYPE_VARCHAR:
614
20.5k
        case TYPE_STRING:
615
20.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
17
        default:
617
17
            return execute_generic(block, result, col_with_type_and_name_left,
618
17
                                   col_with_type_and_name_right);
619
86.4k
        }
620
0
        return Status::OK();
621
86.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
7.70k
                        uint32_t result, size_t input_rows_count) const override {
524
7.70k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
7.70k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
7.70k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
7.70k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
7.70k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
7.70k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
7.70k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
7.70k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
7.70k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
7.70k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
7.70k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
7.70k
        };
564
565
7.70k
        if (can_compare(left_type->get_primitive_type()) &&
566
7.70k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
5.79k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
5.79k
        }
574
575
7.70k
        auto compare_type = left_type->get_primitive_type();
576
7.70k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
49
        case TYPE_DATEV2:
580
49
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
2
        case TYPE_DATETIMEV2:
582
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
100
        case TYPE_TINYINT:
586
100
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
26
        case TYPE_SMALLINT:
588
26
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
3.16k
        case TYPE_INT:
590
3.16k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
2.34k
        case TYPE_BIGINT:
592
2.34k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_LARGEINT:
594
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
48
        case TYPE_FLOAT:
600
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
60
        case TYPE_DOUBLE:
602
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
0
        case TYPE_DECIMAL32:
607
61
        case TYPE_DECIMAL64:
608
373
        case TYPE_DECIMAL128I:
609
403
        case TYPE_DECIMAL256:
610
403
            return execute_decimal(block, result, col_with_type_and_name_left,
611
403
                                   col_with_type_and_name_right);
612
17
        case TYPE_CHAR:
613
334
        case TYPE_VARCHAR:
614
1.50k
        case TYPE_STRING:
615
1.50k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
8
        default:
617
8
            return execute_generic(block, result, col_with_type_and_name_left,
618
8
                                   col_with_type_and_name_right);
619
7.70k
        }
620
0
        return Status::OK();
621
7.70k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
42.7k
                        uint32_t result, size_t input_rows_count) const override {
524
42.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
42.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
42.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
42.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
42.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
42.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
42.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
42.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
42.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
42.7k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
42.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
42.7k
        };
564
565
42.7k
        if (can_compare(left_type->get_primitive_type()) &&
566
42.7k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
39.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
39.4k
        }
574
575
42.7k
        auto compare_type = left_type->get_primitive_type();
576
42.7k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.18k
        case TYPE_DATEV2:
580
1.18k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
94
        case TYPE_DATETIMEV2:
582
94
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
584
        case TYPE_TINYINT:
586
584
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
1.01k
        case TYPE_SMALLINT:
588
1.01k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
20.2k
        case TYPE_INT:
590
20.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
13.3k
        case TYPE_BIGINT:
592
13.3k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
213
        case TYPE_LARGEINT:
594
213
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
2
        case TYPE_IPV4:
596
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
1
        case TYPE_IPV6:
598
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
235
        case TYPE_FLOAT:
600
235
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
2.49k
        case TYPE_DOUBLE:
602
2.49k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
46
        case TYPE_DECIMAL32:
607
1.64k
        case TYPE_DECIMAL64:
608
3.09k
        case TYPE_DECIMAL128I:
609
3.09k
        case TYPE_DECIMAL256:
610
3.09k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
3.09k
                                   col_with_type_and_name_right);
612
21
        case TYPE_CHAR:
613
83
        case TYPE_VARCHAR:
614
193
        case TYPE_STRING:
615
193
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
9
        default:
617
9
            return execute_generic(block, result, col_with_type_and_name_left,
618
9
                                   col_with_type_and_name_right);
619
42.7k
        }
620
0
        return Status::OK();
621
42.7k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
16.7k
                        uint32_t result, size_t input_rows_count) const override {
524
16.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
16.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
16.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
16.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
16.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
16.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
16.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
16.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
16.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
16.7k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
16.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
16.7k
        };
564
565
16.7k
        if (can_compare(left_type->get_primitive_type()) &&
566
16.7k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
15.7k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
15.7k
        }
574
575
16.7k
        auto compare_type = left_type->get_primitive_type();
576
16.7k
        switch (compare_type) {
577
152
        case TYPE_BOOLEAN:
578
152
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.58k
        case TYPE_DATEV2:
580
1.58k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
618
        case TYPE_DATETIMEV2:
582
618
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
69
        case TYPE_TINYINT:
586
69
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
113
        case TYPE_SMALLINT:
588
113
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
12.0k
        case TYPE_INT:
590
12.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
796
        case TYPE_BIGINT:
592
796
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
41
        case TYPE_LARGEINT:
594
41
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
11
        case TYPE_IPV4:
596
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
1
        case TYPE_IPV6:
598
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
128
        case TYPE_FLOAT:
600
128
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
155
        case TYPE_DOUBLE:
602
155
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
9
        case TYPE_DECIMAL32:
607
269
        case TYPE_DECIMAL64:
608
316
        case TYPE_DECIMAL128I:
609
337
        case TYPE_DECIMAL256:
610
337
            return execute_decimal(block, result, col_with_type_and_name_left,
611
337
                                   col_with_type_and_name_right);
612
34
        case TYPE_CHAR:
613
273
        case TYPE_VARCHAR:
614
663
        case TYPE_STRING:
615
663
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
50
        default:
617
50
            return execute_generic(block, result, col_with_type_and_name_left,
618
50
                                   col_with_type_and_name_right);
619
16.7k
        }
620
0
        return Status::OK();
621
16.7k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
13.7k
                        uint32_t result, size_t input_rows_count) const override {
524
13.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
13.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
13.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
13.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
13.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
13.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
13.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
13.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
13.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
13.7k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
13.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
13.7k
        };
564
565
13.7k
        if (can_compare(left_type->get_primitive_type()) &&
566
13.7k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
12.1k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
12.1k
        }
574
575
13.7k
        auto compare_type = left_type->get_primitive_type();
576
13.7k
        switch (compare_type) {
577
75
        case TYPE_BOOLEAN:
578
75
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
2.29k
        case TYPE_DATEV2:
580
2.29k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
577
        case TYPE_DATETIMEV2:
582
577
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
4
        case TYPE_TIMESTAMPTZ:
584
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
610
        case TYPE_TINYINT:
586
610
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
374
        case TYPE_SMALLINT:
588
374
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
5.85k
        case TYPE_INT:
590
5.85k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
1.66k
        case TYPE_BIGINT:
592
1.66k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
175
        case TYPE_LARGEINT:
594
175
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
16
        case TYPE_IPV4:
596
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
16
        case TYPE_IPV6:
598
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
157
        case TYPE_FLOAT:
600
157
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
364
        case TYPE_DOUBLE:
602
364
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
204
        case TYPE_DECIMAL32:
607
461
        case TYPE_DECIMAL64:
608
932
        case TYPE_DECIMAL128I:
609
933
        case TYPE_DECIMAL256:
610
933
            return execute_decimal(block, result, col_with_type_and_name_left,
611
933
                                   col_with_type_and_name_right);
612
160
        case TYPE_CHAR:
613
337
        case TYPE_VARCHAR:
614
640
        case TYPE_STRING:
615
640
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
11
        default:
617
11
            return execute_generic(block, result, col_with_type_and_name_left,
618
11
                                   col_with_type_and_name_right);
619
13.7k
        }
620
0
        return Status::OK();
621
13.7k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
175k
                        uint32_t result, size_t input_rows_count) const override {
524
175k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
175k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
175k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
175k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
175k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
175k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
175k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
175k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
175k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
175k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
175k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
175k
        };
564
565
175k
        if (can_compare(left_type->get_primitive_type()) &&
566
175k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
31.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
31.6k
        }
574
575
175k
        auto compare_type = left_type->get_primitive_type();
576
175k
        switch (compare_type) {
577
424
        case TYPE_BOOLEAN:
578
424
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
10.6k
        case TYPE_DATEV2:
580
10.6k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
455
        case TYPE_DATETIMEV2:
582
455
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
270
        case TYPE_TINYINT:
586
270
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
310
        case TYPE_SMALLINT:
588
310
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
18.2k
        case TYPE_INT:
590
18.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
897
        case TYPE_BIGINT:
592
897
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
35
        case TYPE_LARGEINT:
594
35
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
10
        case TYPE_IPV4:
596
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
123
        case TYPE_FLOAT:
600
123
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
144
        case TYPE_DOUBLE:
602
144
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
4
        case TYPE_DECIMAL32:
607
140k
        case TYPE_DECIMAL64:
608
141k
        case TYPE_DECIMAL128I:
609
141k
        case TYPE_DECIMAL256:
610
141k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
141k
                                   col_with_type_and_name_right);
612
267
        case TYPE_CHAR:
613
1.36k
        case TYPE_VARCHAR:
614
2.06k
        case TYPE_STRING:
615
2.06k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
46
        default:
617
46
            return execute_generic(block, result, col_with_type_and_name_left,
618
46
                                   col_with_type_and_name_right);
619
175k
        }
620
0
        return Status::OK();
621
175k
    }
622
};
623
624
} // namespace doris