Coverage Report

Created: 2026-03-20 13:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/memcmp_small.h"
38
#include "core/value/vdatetime_value.h"
39
#include "exprs/function/function.h"
40
#include "exprs/function/function_helpers.h"
41
#include "exprs/function/functions_logical.h"
42
#include "storage/index/index_reader_helper.h"
43
44
namespace doris {
45
#include "common/compile_check_begin.h"
46
47
/** Comparison functions: ==, !=, <, >, <=, >=.
48
  * The comparison functions always return 0 or 1 (UInt8).
49
  *
50
  * You can compare the following types:
51
  * - numbers and decimals;
52
  * - strings and fixed strings;
53
  * - dates;
54
  * - datetimes;
55
  *   within each group, but not from different groups;
56
  * - tuples (lexicographic comparison).
57
  *
58
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
59
  */
60
61
template <typename A, typename B, typename Op>
62
struct NumComparisonImpl {
63
    /// If you don't specify NO_INLINE, the compiler will inline this function, but we don't need this as this function contains tight loop inside.
64
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
65
12.8k
                                        PaddedPODArray<UInt8>& c) {
66
12.8k
        size_t size = a.size();
67
12.8k
        const A* __restrict a_pos = a.data();
68
12.8k
        const B* __restrict b_pos = b.data();
69
12.8k
        UInt8* __restrict c_pos = c.data();
70
12.8k
        const A* __restrict a_end = a_pos + size;
71
72
14.2M
        while (a_pos < a_end) {
73
14.2M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
14.2M
            ++a_pos;
75
14.2M
            ++b_pos;
76
14.2M
            ++c_pos;
77
14.2M
        }
78
12.8k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
67
                                        PaddedPODArray<UInt8>& c) {
66
67
        size_t size = a.size();
67
67
        const A* __restrict a_pos = a.data();
68
67
        const B* __restrict b_pos = b.data();
69
67
        UInt8* __restrict c_pos = c.data();
70
67
        const A* __restrict a_end = a_pos + size;
71
72
134
        while (a_pos < a_end) {
73
67
            *c_pos = Op::apply(*a_pos, *b_pos);
74
67
            ++a_pos;
75
67
            ++b_pos;
76
67
            ++c_pos;
77
67
        }
78
67
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
261
                                        PaddedPODArray<UInt8>& c) {
66
261
        size_t size = a.size();
67
261
        const A* __restrict a_pos = a.data();
68
261
        const B* __restrict b_pos = b.data();
69
261
        UInt8* __restrict c_pos = c.data();
70
261
        const A* __restrict a_end = a_pos + size;
71
72
528
        while (a_pos < a_end) {
73
267
            *c_pos = Op::apply(*a_pos, *b_pos);
74
267
            ++a_pos;
75
267
            ++b_pos;
76
267
            ++c_pos;
77
267
        }
78
261
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
285
                                        PaddedPODArray<UInt8>& c) {
66
285
        size_t size = a.size();
67
285
        const A* __restrict a_pos = a.data();
68
285
        const B* __restrict b_pos = b.data();
69
285
        UInt8* __restrict c_pos = c.data();
70
285
        const A* __restrict a_end = a_pos + size;
71
72
593
        while (a_pos < a_end) {
73
308
            *c_pos = Op::apply(*a_pos, *b_pos);
74
308
            ++a_pos;
75
308
            ++b_pos;
76
308
            ++c_pos;
77
308
        }
78
285
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
827
                                        PaddedPODArray<UInt8>& c) {
66
827
        size_t size = a.size();
67
827
        const A* __restrict a_pos = a.data();
68
827
        const B* __restrict b_pos = b.data();
69
827
        UInt8* __restrict c_pos = c.data();
70
827
        const A* __restrict a_end = a_pos + size;
71
72
5.63k
        while (a_pos < a_end) {
73
4.80k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.80k
            ++a_pos;
75
4.80k
            ++b_pos;
76
4.80k
            ++c_pos;
77
4.80k
        }
78
827
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
131
                                        PaddedPODArray<UInt8>& c) {
66
131
        size_t size = a.size();
67
131
        const A* __restrict a_pos = a.data();
68
131
        const B* __restrict b_pos = b.data();
69
131
        UInt8* __restrict c_pos = c.data();
70
131
        const A* __restrict a_end = a_pos + size;
71
72
566
        while (a_pos < a_end) {
73
435
            *c_pos = Op::apply(*a_pos, *b_pos);
74
435
            ++a_pos;
75
435
            ++b_pos;
76
435
            ++c_pos;
77
435
        }
78
131
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
335
                                        PaddedPODArray<UInt8>& c) {
66
335
        size_t size = a.size();
67
335
        const A* __restrict a_pos = a.data();
68
335
        const B* __restrict b_pos = b.data();
69
335
        UInt8* __restrict c_pos = c.data();
70
335
        const A* __restrict a_end = a_pos + size;
71
72
4.19k
        while (a_pos < a_end) {
73
3.85k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.85k
            ++a_pos;
75
3.85k
            ++b_pos;
76
3.85k
            ++c_pos;
77
3.85k
        }
78
335
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
365
                                        PaddedPODArray<UInt8>& c) {
66
365
        size_t size = a.size();
67
365
        const A* __restrict a_pos = a.data();
68
365
        const B* __restrict b_pos = b.data();
69
365
        UInt8* __restrict c_pos = c.data();
70
365
        const A* __restrict a_end = a_pos + size;
71
72
14.1k
        while (a_pos < a_end) {
73
13.7k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13.7k
            ++a_pos;
75
13.7k
            ++b_pos;
76
13.7k
            ++c_pos;
77
13.7k
        }
78
365
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
102
                                        PaddedPODArray<UInt8>& c) {
66
102
        size_t size = a.size();
67
102
        const A* __restrict a_pos = a.data();
68
102
        const B* __restrict b_pos = b.data();
69
102
        UInt8* __restrict c_pos = c.data();
70
102
        const A* __restrict a_end = a_pos + size;
71
72
228
        while (a_pos < a_end) {
73
126
            *c_pos = Op::apply(*a_pos, *b_pos);
74
126
            ++a_pos;
75
126
            ++b_pos;
76
126
            ++c_pos;
77
126
        }
78
102
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
48
        while (a_pos < a_end) {
73
24
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24
            ++a_pos;
75
24
            ++b_pos;
76
24
            ++c_pos;
77
24
        }
78
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
103
                                        PaddedPODArray<UInt8>& c) {
66
103
        size_t size = a.size();
67
103
        const A* __restrict a_pos = a.data();
68
103
        const B* __restrict b_pos = b.data();
69
103
        UInt8* __restrict c_pos = c.data();
70
103
        const A* __restrict a_end = a_pos + size;
71
72
225
        while (a_pos < a_end) {
73
122
            *c_pos = Op::apply(*a_pos, *b_pos);
74
122
            ++a_pos;
75
122
            ++b_pos;
76
122
            ++c_pos;
77
122
        }
78
103
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
113
                                        PaddedPODArray<UInt8>& c) {
66
113
        size_t size = a.size();
67
113
        const A* __restrict a_pos = a.data();
68
113
        const B* __restrict b_pos = b.data();
69
113
        UInt8* __restrict c_pos = c.data();
70
113
        const A* __restrict a_end = a_pos + size;
71
72
247
        while (a_pos < a_end) {
73
134
            *c_pos = Op::apply(*a_pos, *b_pos);
74
134
            ++a_pos;
75
134
            ++b_pos;
76
134
            ++c_pos;
77
134
        }
78
113
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
4
                                        PaddedPODArray<UInt8>& c) {
66
4
        size_t size = a.size();
67
4
        const A* __restrict a_pos = a.data();
68
4
        const B* __restrict b_pos = b.data();
69
4
        UInt8* __restrict c_pos = c.data();
70
4
        const A* __restrict a_end = a_pos + size;
71
72
8
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
108
        while (a_pos < a_end) {
73
69
            *c_pos = Op::apply(*a_pos, *b_pos);
74
69
            ++a_pos;
75
69
            ++b_pos;
76
69
            ++c_pos;
77
69
        }
78
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
64
                                        PaddedPODArray<UInt8>& c) {
66
64
        size_t size = a.size();
67
64
        const A* __restrict a_pos = a.data();
68
64
        const B* __restrict b_pos = b.data();
69
64
        UInt8* __restrict c_pos = c.data();
70
64
        const A* __restrict a_end = a_pos + size;
71
72
288
        while (a_pos < a_end) {
73
224
            *c_pos = Op::apply(*a_pos, *b_pos);
74
224
            ++a_pos;
75
224
            ++b_pos;
76
224
            ++c_pos;
77
224
        }
78
64
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1.05k
                                        PaddedPODArray<UInt8>& c) {
66
1.05k
        size_t size = a.size();
67
1.05k
        const A* __restrict a_pos = a.data();
68
1.05k
        const B* __restrict b_pos = b.data();
69
1.05k
        UInt8* __restrict c_pos = c.data();
70
1.05k
        const A* __restrict a_end = a_pos + size;
71
72
1.61M
        while (a_pos < a_end) {
73
1.61M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.61M
            ++a_pos;
75
1.61M
            ++b_pos;
76
1.61M
            ++c_pos;
77
1.61M
        }
78
1.05k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
457
                                        PaddedPODArray<UInt8>& c) {
66
457
        size_t size = a.size();
67
457
        const A* __restrict a_pos = a.data();
68
457
        const B* __restrict b_pos = b.data();
69
457
        UInt8* __restrict c_pos = c.data();
70
457
        const A* __restrict a_end = a_pos + size;
71
72
44.3k
        while (a_pos < a_end) {
73
43.9k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
43.9k
            ++a_pos;
75
43.9k
            ++b_pos;
76
43.9k
            ++c_pos;
77
43.9k
        }
78
457
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.17k
                                        PaddedPODArray<UInt8>& c) {
66
1.17k
        size_t size = a.size();
67
1.17k
        const A* __restrict a_pos = a.data();
68
1.17k
        const B* __restrict b_pos = b.data();
69
1.17k
        UInt8* __restrict c_pos = c.data();
70
1.17k
        const A* __restrict a_end = a_pos + size;
71
72
5.92M
        while (a_pos < a_end) {
73
5.92M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.92M
            ++a_pos;
75
5.92M
            ++b_pos;
76
5.92M
            ++c_pos;
77
5.92M
        }
78
1.17k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
351
                                        PaddedPODArray<UInt8>& c) {
66
351
        size_t size = a.size();
67
351
        const A* __restrict a_pos = a.data();
68
351
        const B* __restrict b_pos = b.data();
69
351
        UInt8* __restrict c_pos = c.data();
70
351
        const A* __restrict a_end = a_pos + size;
71
72
2.87k
        while (a_pos < a_end) {
73
2.52k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.52k
            ++a_pos;
75
2.52k
            ++b_pos;
76
2.52k
            ++c_pos;
77
2.52k
        }
78
351
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
565
                                        PaddedPODArray<UInt8>& c) {
66
565
        size_t size = a.size();
67
565
        const A* __restrict a_pos = a.data();
68
565
        const B* __restrict b_pos = b.data();
69
565
        UInt8* __restrict c_pos = c.data();
70
565
        const A* __restrict a_end = a_pos + size;
71
72
4.50k
        while (a_pos < a_end) {
73
3.93k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.93k
            ++a_pos;
75
3.93k
            ++b_pos;
76
3.93k
            ++c_pos;
77
3.93k
        }
78
565
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1.78k
                                        PaddedPODArray<UInt8>& c) {
66
1.78k
        size_t size = a.size();
67
1.78k
        const A* __restrict a_pos = a.data();
68
1.78k
        const B* __restrict b_pos = b.data();
69
1.78k
        UInt8* __restrict c_pos = c.data();
70
1.78k
        const A* __restrict a_end = a_pos + size;
71
72
5.40M
        while (a_pos < a_end) {
73
5.40M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.40M
            ++a_pos;
75
5.40M
            ++b_pos;
76
5.40M
            ++c_pos;
77
5.40M
        }
78
1.78k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
119
                                        PaddedPODArray<UInt8>& c) {
66
119
        size_t size = a.size();
67
119
        const A* __restrict a_pos = a.data();
68
119
        const B* __restrict b_pos = b.data();
69
119
        UInt8* __restrict c_pos = c.data();
70
119
        const A* __restrict a_end = a_pos + size;
71
72
1.65k
        while (a_pos < a_end) {
73
1.53k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.53k
            ++a_pos;
75
1.53k
            ++b_pos;
76
1.53k
            ++c_pos;
77
1.53k
        }
78
119
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
41
                                        PaddedPODArray<UInt8>& c) {
66
41
        size_t size = a.size();
67
41
        const A* __restrict a_pos = a.data();
68
41
        const B* __restrict b_pos = b.data();
69
41
        UInt8* __restrict c_pos = c.data();
70
41
        const A* __restrict a_end = a_pos + size;
71
72
195
        while (a_pos < a_end) {
73
154
            *c_pos = Op::apply(*a_pos, *b_pos);
74
154
            ++a_pos;
75
154
            ++b_pos;
76
154
            ++c_pos;
77
154
        }
78
41
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
38
                                        PaddedPODArray<UInt8>& c) {
66
38
        size_t size = a.size();
67
38
        const A* __restrict a_pos = a.data();
68
38
        const B* __restrict b_pos = b.data();
69
38
        UInt8* __restrict c_pos = c.data();
70
38
        const A* __restrict a_end = a_pos + size;
71
72
136
        while (a_pos < a_end) {
73
98
            *c_pos = Op::apply(*a_pos, *b_pos);
74
98
            ++a_pos;
75
98
            ++b_pos;
76
98
            ++c_pos;
77
98
        }
78
38
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
38
        while (a_pos < a_end) {
73
31
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31
            ++a_pos;
75
31
            ++b_pos;
76
31
            ++c_pos;
77
31
        }
78
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
96
        while (a_pos < a_end) {
73
86
            *c_pos = Op::apply(*a_pos, *b_pos);
74
86
            ++a_pos;
75
86
            ++b_pos;
76
86
            ++c_pos;
77
86
        }
78
10
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
20
        while (a_pos < a_end) {
73
13
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13
            ++a_pos;
75
13
            ++b_pos;
76
13
            ++c_pos;
77
13
        }
78
7
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
18
                                        PaddedPODArray<UInt8>& c) {
66
18
        size_t size = a.size();
67
18
        const A* __restrict a_pos = a.data();
68
18
        const B* __restrict b_pos = b.data();
69
18
        UInt8* __restrict c_pos = c.data();
70
18
        const A* __restrict a_end = a_pos + size;
71
72
132
        while (a_pos < a_end) {
73
114
            *c_pos = Op::apply(*a_pos, *b_pos);
74
114
            ++a_pos;
75
114
            ++b_pos;
76
114
            ++c_pos;
77
114
        }
78
18
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
55
                                        PaddedPODArray<UInt8>& c) {
66
55
        size_t size = a.size();
67
55
        const A* __restrict a_pos = a.data();
68
55
        const B* __restrict b_pos = b.data();
69
55
        UInt8* __restrict c_pos = c.data();
70
55
        const A* __restrict a_end = a_pos + size;
71
72
161
        while (a_pos < a_end) {
73
106
            *c_pos = Op::apply(*a_pos, *b_pos);
74
106
            ++a_pos;
75
106
            ++b_pos;
76
106
            ++c_pos;
77
106
        }
78
55
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
72
                                        PaddedPODArray<UInt8>& c) {
66
72
        size_t size = a.size();
67
72
        const A* __restrict a_pos = a.data();
68
72
        const B* __restrict b_pos = b.data();
69
72
        UInt8* __restrict c_pos = c.data();
70
72
        const A* __restrict a_end = a_pos + size;
71
72
144
        while (a_pos < a_end) {
73
72
            *c_pos = Op::apply(*a_pos, *b_pos);
74
72
            ++a_pos;
75
72
            ++b_pos;
76
72
            ++c_pos;
77
72
        }
78
72
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.74k
                                        PaddedPODArray<UInt8>& c) {
66
1.74k
        size_t size = a.size();
67
1.74k
        const A* __restrict a_pos = a.data();
68
1.74k
        const B* __restrict b_pos = b.data();
69
1.74k
        UInt8* __restrict c_pos = c.data();
70
1.74k
        const A* __restrict a_end = a_pos + size;
71
72
1.22M
        while (a_pos < a_end) {
73
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.22M
            ++a_pos;
75
1.22M
            ++b_pos;
76
1.22M
            ++c_pos;
77
1.22M
        }
78
1.74k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
223
                                        PaddedPODArray<UInt8>& c) {
66
223
        size_t size = a.size();
67
223
        const A* __restrict a_pos = a.data();
68
223
        const B* __restrict b_pos = b.data();
69
223
        UInt8* __restrict c_pos = c.data();
70
223
        const A* __restrict a_end = a_pos + size;
71
72
446
        while (a_pos < a_end) {
73
223
            *c_pos = Op::apply(*a_pos, *b_pos);
74
223
            ++a_pos;
75
223
            ++b_pos;
76
223
            ++c_pos;
77
223
        }
78
223
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
737
                                        PaddedPODArray<UInt8>& c) {
66
737
        size_t size = a.size();
67
737
        const A* __restrict a_pos = a.data();
68
737
        const B* __restrict b_pos = b.data();
69
737
        UInt8* __restrict c_pos = c.data();
70
737
        const A* __restrict a_end = a_pos + size;
71
72
4.98k
        while (a_pos < a_end) {
73
4.24k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.24k
            ++a_pos;
75
4.24k
            ++b_pos;
76
4.24k
            ++c_pos;
77
4.24k
        }
78
737
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
107
                                        PaddedPODArray<UInt8>& c) {
66
107
        size_t size = a.size();
67
107
        const A* __restrict a_pos = a.data();
68
107
        const B* __restrict b_pos = b.data();
69
107
        UInt8* __restrict c_pos = c.data();
70
107
        const A* __restrict a_end = a_pos + size;
71
72
216
        while (a_pos < a_end) {
73
109
            *c_pos = Op::apply(*a_pos, *b_pos);
74
109
            ++a_pos;
75
109
            ++b_pos;
76
109
            ++c_pos;
77
109
        }
78
107
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
160
                                        PaddedPODArray<UInt8>& c) {
66
160
        size_t size = a.size();
67
160
        const A* __restrict a_pos = a.data();
68
160
        const B* __restrict b_pos = b.data();
69
160
        UInt8* __restrict c_pos = c.data();
70
160
        const A* __restrict a_end = a_pos + size;
71
72
2.86k
        while (a_pos < a_end) {
73
2.70k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.70k
            ++a_pos;
75
2.70k
            ++b_pos;
76
2.70k
            ++c_pos;
77
2.70k
        }
78
160
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
217
                                        PaddedPODArray<UInt8>& c) {
66
217
        size_t size = a.size();
67
217
        const A* __restrict a_pos = a.data();
68
217
        const B* __restrict b_pos = b.data();
69
217
        UInt8* __restrict c_pos = c.data();
70
217
        const A* __restrict a_end = a_pos + size;
71
72
7.78k
        while (a_pos < a_end) {
73
7.56k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
7.56k
            ++a_pos;
75
7.56k
            ++b_pos;
76
7.56k
            ++c_pos;
77
7.56k
        }
78
217
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
184
                                        PaddedPODArray<UInt8>& c) {
66
184
        size_t size = a.size();
67
184
        const A* __restrict a_pos = a.data();
68
184
        const B* __restrict b_pos = b.data();
69
184
        UInt8* __restrict c_pos = c.data();
70
184
        const A* __restrict a_end = a_pos + size;
71
72
516
        while (a_pos < a_end) {
73
332
            *c_pos = Op::apply(*a_pos, *b_pos);
74
332
            ++a_pos;
75
332
            ++b_pos;
76
332
            ++c_pos;
77
332
        }
78
184
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
117
                                        PaddedPODArray<UInt8>& c) {
66
117
        size_t size = a.size();
67
117
        const A* __restrict a_pos = a.data();
68
117
        const B* __restrict b_pos = b.data();
69
117
        UInt8* __restrict c_pos = c.data();
70
117
        const A* __restrict a_end = a_pos + size;
71
72
253
        while (a_pos < a_end) {
73
136
            *c_pos = Op::apply(*a_pos, *b_pos);
74
136
            ++a_pos;
75
136
            ++b_pos;
76
136
            ++c_pos;
77
136
        }
78
117
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
140
                                        PaddedPODArray<UInt8>& c) {
66
140
        size_t size = a.size();
67
140
        const A* __restrict a_pos = a.data();
68
140
        const B* __restrict b_pos = b.data();
69
140
        UInt8* __restrict c_pos = c.data();
70
140
        const A* __restrict a_end = a_pos + size;
71
72
327
        while (a_pos < a_end) {
73
187
            *c_pos = Op::apply(*a_pos, *b_pos);
74
187
            ++a_pos;
75
187
            ++b_pos;
76
187
            ++c_pos;
77
187
        }
78
140
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
434
                                        PaddedPODArray<UInt8>& c) {
66
434
        size_t size = a.size();
67
434
        const A* __restrict a_pos = a.data();
68
434
        const B* __restrict b_pos = b.data();
69
434
        UInt8* __restrict c_pos = c.data();
70
434
        const A* __restrict a_end = a_pos + size;
71
72
6.79k
        while (a_pos < a_end) {
73
6.36k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.36k
            ++a_pos;
75
6.36k
            ++b_pos;
76
6.36k
            ++c_pos;
77
6.36k
        }
78
434
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
5
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
60
                                        PaddedPODArray<UInt8>& c) {
66
60
        size_t size = a.size();
67
60
        const A* __restrict a_pos = a.data();
68
60
        const B* __restrict b_pos = b.data();
69
60
        UInt8* __restrict c_pos = c.data();
70
60
        const A* __restrict a_end = a_pos + size;
71
72
1.06k
        while (a_pos < a_end) {
73
1.00k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.00k
            ++a_pos;
75
1.00k
            ++b_pos;
76
1.00k
            ++c_pos;
77
1.00k
        }
78
60
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
213
        while (a_pos < a_end) {
73
174
            *c_pos = Op::apply(*a_pos, *b_pos);
74
174
            ++a_pos;
75
174
            ++b_pos;
76
174
            ++c_pos;
77
174
        }
78
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
79
80
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
81
93.0k
                                          PaddedPODArray<UInt8>& c) {
82
93.0k
        size_t size = a.size();
83
93.0k
        const A* __restrict a_pos = a.data();
84
93.0k
        UInt8* __restrict c_pos = c.data();
85
93.0k
        const A* __restrict a_end = a_pos + size;
86
87
260M
        while (a_pos < a_end) {
88
259M
            *c_pos = Op::apply(*a_pos, b);
89
259M
            ++a_pos;
90
259M
            ++c_pos;
91
259M
        }
92
93.0k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
792
                                          PaddedPODArray<UInt8>& c) {
82
792
        size_t size = a.size();
83
792
        const A* __restrict a_pos = a.data();
84
792
        UInt8* __restrict c_pos = c.data();
85
792
        const A* __restrict a_end = a_pos + size;
86
87
3.22k
        while (a_pos < a_end) {
88
2.42k
            *c_pos = Op::apply(*a_pos, b);
89
2.42k
            ++a_pos;
90
2.42k
            ++c_pos;
91
2.42k
        }
92
792
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
879
                                          PaddedPODArray<UInt8>& c) {
82
879
        size_t size = a.size();
83
879
        const A* __restrict a_pos = a.data();
84
879
        UInt8* __restrict c_pos = c.data();
85
879
        const A* __restrict a_end = a_pos + size;
86
87
204k
        while (a_pos < a_end) {
88
203k
            *c_pos = Op::apply(*a_pos, b);
89
203k
            ++a_pos;
90
203k
            ++c_pos;
91
203k
        }
92
879
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
405
                                          PaddedPODArray<UInt8>& c) {
82
405
        size_t size = a.size();
83
405
        const A* __restrict a_pos = a.data();
84
405
        UInt8* __restrict c_pos = c.data();
85
405
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
405
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
3.06k
                                          PaddedPODArray<UInt8>& c) {
82
3.06k
        size_t size = a.size();
83
3.06k
        const A* __restrict a_pos = a.data();
84
3.06k
        UInt8* __restrict c_pos = c.data();
85
3.06k
        const A* __restrict a_end = a_pos + size;
86
87
9.41M
        while (a_pos < a_end) {
88
9.41M
            *c_pos = Op::apply(*a_pos, b);
89
9.41M
            ++a_pos;
90
9.41M
            ++c_pos;
91
9.41M
        }
92
3.06k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
669
                                          PaddedPODArray<UInt8>& c) {
82
669
        size_t size = a.size();
83
669
        const A* __restrict a_pos = a.data();
84
669
        UInt8* __restrict c_pos = c.data();
85
669
        const A* __restrict a_end = a_pos + size;
86
87
127k
        while (a_pos < a_end) {
88
126k
            *c_pos = Op::apply(*a_pos, b);
89
126k
            ++a_pos;
90
126k
            ++c_pos;
91
126k
        }
92
669
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
5.97k
                                          PaddedPODArray<UInt8>& c) {
82
5.97k
        size_t size = a.size();
83
5.97k
        const A* __restrict a_pos = a.data();
84
5.97k
        UInt8* __restrict c_pos = c.data();
85
5.97k
        const A* __restrict a_end = a_pos + size;
86
87
2.48M
        while (a_pos < a_end) {
88
2.48M
            *c_pos = Op::apply(*a_pos, b);
89
2.48M
            ++a_pos;
90
2.48M
            ++c_pos;
91
2.48M
        }
92
5.97k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8.97k
                                          PaddedPODArray<UInt8>& c) {
82
8.97k
        size_t size = a.size();
83
8.97k
        const A* __restrict a_pos = a.data();
84
8.97k
        UInt8* __restrict c_pos = c.data();
85
8.97k
        const A* __restrict a_end = a_pos + size;
86
87
3.38M
        while (a_pos < a_end) {
88
3.37M
            *c_pos = Op::apply(*a_pos, b);
89
3.37M
            ++a_pos;
90
3.37M
            ++c_pos;
91
3.37M
        }
92
8.97k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
40
                                          PaddedPODArray<UInt8>& c) {
82
40
        size_t size = a.size();
83
40
        const A* __restrict a_pos = a.data();
84
40
        UInt8* __restrict c_pos = c.data();
85
40
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
40
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
15
                                          PaddedPODArray<UInt8>& c) {
82
15
        size_t size = a.size();
83
15
        const A* __restrict a_pos = a.data();
84
15
        UInt8* __restrict c_pos = c.data();
85
15
        const A* __restrict a_end = a_pos + size;
86
87
129
        while (a_pos < a_end) {
88
114
            *c_pos = Op::apply(*a_pos, b);
89
114
            ++a_pos;
90
114
            ++c_pos;
91
114
        }
92
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
44
        while (a_pos < a_end) {
88
40
            *c_pos = Op::apply(*a_pos, b);
89
40
            ++a_pos;
90
40
            ++c_pos;
91
40
        }
92
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
184
                                          PaddedPODArray<UInt8>& c) {
82
184
        size_t size = a.size();
83
184
        const A* __restrict a_pos = a.data();
84
184
        UInt8* __restrict c_pos = c.data();
85
184
        const A* __restrict a_end = a_pos + size;
86
87
701k
        while (a_pos < a_end) {
88
701k
            *c_pos = Op::apply(*a_pos, b);
89
701k
            ++a_pos;
90
701k
            ++c_pos;
91
701k
        }
92
184
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
21
        while (a_pos < a_end) {
88
11
            *c_pos = Op::apply(*a_pos, b);
89
11
            ++a_pos;
90
11
            ++c_pos;
91
11
        }
92
10
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
4
        while (a_pos < a_end) {
88
2
            *c_pos = Op::apply(*a_pos, b);
89
2
            ++a_pos;
90
2
            ++c_pos;
91
2
        }
92
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
858
        while (a_pos < a_end) {
88
826
            *c_pos = Op::apply(*a_pos, b);
89
826
            ++a_pos;
90
826
            ++c_pos;
91
826
        }
92
32
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
780
        while (a_pos < a_end) {
88
776
            *c_pos = Op::apply(*a_pos, b);
89
776
            ++a_pos;
90
776
            ++c_pos;
91
776
        }
92
4
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
551
                                          PaddedPODArray<UInt8>& c) {
82
551
        size_t size = a.size();
83
551
        const A* __restrict a_pos = a.data();
84
551
        UInt8* __restrict c_pos = c.data();
85
551
        const A* __restrict a_end = a_pos + size;
86
87
488k
        while (a_pos < a_end) {
88
487k
            *c_pos = Op::apply(*a_pos, b);
89
487k
            ++a_pos;
90
487k
            ++c_pos;
91
487k
        }
92
551
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
534
                                          PaddedPODArray<UInt8>& c) {
82
534
        size_t size = a.size();
83
534
        const A* __restrict a_pos = a.data();
84
534
        UInt8* __restrict c_pos = c.data();
85
534
        const A* __restrict a_end = a_pos + size;
86
87
201k
        while (a_pos < a_end) {
88
201k
            *c_pos = Op::apply(*a_pos, b);
89
201k
            ++a_pos;
90
201k
            ++c_pos;
91
201k
        }
92
534
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
80
        while (a_pos < a_end) {
88
48
            *c_pos = Op::apply(*a_pos, b);
89
48
            ++a_pos;
90
48
            ++c_pos;
91
48
        }
92
32
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
52
                                          PaddedPODArray<UInt8>& c) {
82
52
        size_t size = a.size();
83
52
        const A* __restrict a_pos = a.data();
84
52
        UInt8* __restrict c_pos = c.data();
85
52
        const A* __restrict a_end = a_pos + size;
86
87
312
        while (a_pos < a_end) {
88
260
            *c_pos = Op::apply(*a_pos, b);
89
260
            ++a_pos;
90
260
            ++c_pos;
91
260
        }
92
52
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
114
                                          PaddedPODArray<UInt8>& c) {
82
114
        size_t size = a.size();
83
114
        const A* __restrict a_pos = a.data();
84
114
        UInt8* __restrict c_pos = c.data();
85
114
        const A* __restrict a_end = a_pos + size;
86
87
1.50k
        while (a_pos < a_end) {
88
1.39k
            *c_pos = Op::apply(*a_pos, b);
89
1.39k
            ++a_pos;
90
1.39k
            ++c_pos;
91
1.39k
        }
92
114
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
415
                                          PaddedPODArray<UInt8>& c) {
82
415
        size_t size = a.size();
83
415
        const A* __restrict a_pos = a.data();
84
415
        UInt8* __restrict c_pos = c.data();
85
415
        const A* __restrict a_end = a_pos + size;
86
87
1.34M
        while (a_pos < a_end) {
88
1.34M
            *c_pos = Op::apply(*a_pos, b);
89
1.34M
            ++a_pos;
90
1.34M
            ++c_pos;
91
1.34M
        }
92
415
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
60
                                          PaddedPODArray<UInt8>& c) {
82
60
        size_t size = a.size();
83
60
        const A* __restrict a_pos = a.data();
84
60
        UInt8* __restrict c_pos = c.data();
85
60
        const A* __restrict a_end = a_pos + size;
86
87
142
        while (a_pos < a_end) {
88
82
            *c_pos = Op::apply(*a_pos, b);
89
82
            ++a_pos;
90
82
            ++c_pos;
91
82
        }
92
60
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
211
                                          PaddedPODArray<UInt8>& c) {
82
211
        size_t size = a.size();
83
211
        const A* __restrict a_pos = a.data();
84
211
        UInt8* __restrict c_pos = c.data();
85
211
        const A* __restrict a_end = a_pos + size;
86
87
29.9k
        while (a_pos < a_end) {
88
29.6k
            *c_pos = Op::apply(*a_pos, b);
89
29.6k
            ++a_pos;
90
29.6k
            ++c_pos;
91
29.6k
        }
92
211
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
8
        while (a_pos < a_end) {
88
7
            *c_pos = Op::apply(*a_pos, b);
89
7
            ++a_pos;
90
7
            ++c_pos;
91
7
        }
92
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
427
                                          PaddedPODArray<UInt8>& c) {
82
427
        size_t size = a.size();
83
427
        const A* __restrict a_pos = a.data();
84
427
        UInt8* __restrict c_pos = c.data();
85
427
        const A* __restrict a_end = a_pos + size;
86
87
4.23k
        while (a_pos < a_end) {
88
3.80k
            *c_pos = Op::apply(*a_pos, b);
89
3.80k
            ++a_pos;
90
3.80k
            ++c_pos;
91
3.80k
        }
92
427
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
46
                                          PaddedPODArray<UInt8>& c) {
82
46
        size_t size = a.size();
83
46
        const A* __restrict a_pos = a.data();
84
46
        UInt8* __restrict c_pos = c.data();
85
46
        const A* __restrict a_end = a_pos + size;
86
87
1.80k
        while (a_pos < a_end) {
88
1.75k
            *c_pos = Op::apply(*a_pos, b);
89
1.75k
            ++a_pos;
90
1.75k
            ++c_pos;
91
1.75k
        }
92
46
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
453
                                          PaddedPODArray<UInt8>& c) {
82
453
        size_t size = a.size();
83
453
        const A* __restrict a_pos = a.data();
84
453
        UInt8* __restrict c_pos = c.data();
85
453
        const A* __restrict a_end = a_pos + size;
86
87
7.89k
        while (a_pos < a_end) {
88
7.44k
            *c_pos = Op::apply(*a_pos, b);
89
7.44k
            ++a_pos;
90
7.44k
            ++c_pos;
91
7.44k
        }
92
453
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
104
                                          PaddedPODArray<UInt8>& c) {
82
104
        size_t size = a.size();
83
104
        const A* __restrict a_pos = a.data();
84
104
        UInt8* __restrict c_pos = c.data();
85
104
        const A* __restrict a_end = a_pos + size;
86
87
8.56k
        while (a_pos < a_end) {
88
8.45k
            *c_pos = Op::apply(*a_pos, b);
89
8.45k
            ++a_pos;
90
8.45k
            ++c_pos;
91
8.45k
        }
92
104
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6.23k
                                          PaddedPODArray<UInt8>& c) {
82
6.23k
        size_t size = a.size();
83
6.23k
        const A* __restrict a_pos = a.data();
84
6.23k
        UInt8* __restrict c_pos = c.data();
85
6.23k
        const A* __restrict a_end = a_pos + size;
86
87
1.79M
        while (a_pos < a_end) {
88
1.79M
            *c_pos = Op::apply(*a_pos, b);
89
1.79M
            ++a_pos;
90
1.79M
            ++c_pos;
91
1.79M
        }
92
6.23k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.79k
                                          PaddedPODArray<UInt8>& c) {
82
1.79k
        size_t size = a.size();
83
1.79k
        const A* __restrict a_pos = a.data();
84
1.79k
        UInt8* __restrict c_pos = c.data();
85
1.79k
        const A* __restrict a_end = a_pos + size;
86
87
7.32M
        while (a_pos < a_end) {
88
7.32M
            *c_pos = Op::apply(*a_pos, b);
89
7.32M
            ++a_pos;
90
7.32M
            ++c_pos;
91
7.32M
        }
92
1.79k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8.04k
                                          PaddedPODArray<UInt8>& c) {
82
8.04k
        size_t size = a.size();
83
8.04k
        const A* __restrict a_pos = a.data();
84
8.04k
        UInt8* __restrict c_pos = c.data();
85
8.04k
        const A* __restrict a_end = a_pos + size;
86
87
184k
        while (a_pos < a_end) {
88
176k
            *c_pos = Op::apply(*a_pos, b);
89
176k
            ++a_pos;
90
176k
            ++c_pos;
91
176k
        }
92
8.04k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
991
                                          PaddedPODArray<UInt8>& c) {
82
991
        size_t size = a.size();
83
991
        const A* __restrict a_pos = a.data();
84
991
        UInt8* __restrict c_pos = c.data();
85
991
        const A* __restrict a_end = a_pos + size;
86
87
5.60k
        while (a_pos < a_end) {
88
4.61k
            *c_pos = Op::apply(*a_pos, b);
89
4.61k
            ++a_pos;
90
4.61k
            ++c_pos;
91
4.61k
        }
92
991
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
207
                                          PaddedPODArray<UInt8>& c) {
82
207
        size_t size = a.size();
83
207
        const A* __restrict a_pos = a.data();
84
207
        UInt8* __restrict c_pos = c.data();
85
207
        const A* __restrict a_end = a_pos + size;
86
87
1.75k
        while (a_pos < a_end) {
88
1.54k
            *c_pos = Op::apply(*a_pos, b);
89
1.54k
            ++a_pos;
90
1.54k
            ++c_pos;
91
1.54k
        }
92
207
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13
                                          PaddedPODArray<UInt8>& c) {
82
13
        size_t size = a.size();
83
13
        const A* __restrict a_pos = a.data();
84
13
        UInt8* __restrict c_pos = c.data();
85
13
        const A* __restrict a_end = a_pos + size;
86
87
85.9k
        while (a_pos < a_end) {
88
85.8k
            *c_pos = Op::apply(*a_pos, b);
89
85.8k
            ++a_pos;
90
85.8k
            ++c_pos;
91
85.8k
        }
92
13
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
9
        while (a_pos < a_end) {
88
8
            *c_pos = Op::apply(*a_pos, b);
89
8
            ++a_pos;
90
8
            ++c_pos;
91
8
        }
92
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
212
                                          PaddedPODArray<UInt8>& c) {
82
212
        size_t size = a.size();
83
212
        const A* __restrict a_pos = a.data();
84
212
        UInt8* __restrict c_pos = c.data();
85
212
        const A* __restrict a_end = a_pos + size;
86
87
3.41k
        while (a_pos < a_end) {
88
3.19k
            *c_pos = Op::apply(*a_pos, b);
89
3.19k
            ++a_pos;
90
3.19k
            ++c_pos;
91
3.19k
        }
92
212
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
19
                                          PaddedPODArray<UInt8>& c) {
82
19
        size_t size = a.size();
83
19
        const A* __restrict a_pos = a.data();
84
19
        UInt8* __restrict c_pos = c.data();
85
19
        const A* __restrict a_end = a_pos + size;
86
87
59
        while (a_pos < a_end) {
88
40
            *c_pos = Op::apply(*a_pos, b);
89
40
            ++a_pos;
90
40
            ++c_pos;
91
40
        }
92
19
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.69k
                                          PaddedPODArray<UInt8>& c) {
82
1.69k
        size_t size = a.size();
83
1.69k
        const A* __restrict a_pos = a.data();
84
1.69k
        UInt8* __restrict c_pos = c.data();
85
1.69k
        const A* __restrict a_end = a_pos + size;
86
87
529k
        while (a_pos < a_end) {
88
527k
            *c_pos = Op::apply(*a_pos, b);
89
527k
            ++a_pos;
90
527k
            ++c_pos;
91
527k
        }
92
1.69k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
199
                                          PaddedPODArray<UInt8>& c) {
82
199
        size_t size = a.size();
83
199
        const A* __restrict a_pos = a.data();
84
199
        UInt8* __restrict c_pos = c.data();
85
199
        const A* __restrict a_end = a_pos + size;
86
87
312k
        while (a_pos < a_end) {
88
312k
            *c_pos = Op::apply(*a_pos, b);
89
312k
            ++a_pos;
90
312k
            ++c_pos;
91
312k
        }
92
199
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
113
                                          PaddedPODArray<UInt8>& c) {
82
113
        size_t size = a.size();
83
113
        const A* __restrict a_pos = a.data();
84
113
        UInt8* __restrict c_pos = c.data();
85
113
        const A* __restrict a_end = a_pos + size;
86
87
33.3k
        while (a_pos < a_end) {
88
33.1k
            *c_pos = Op::apply(*a_pos, b);
89
33.1k
            ++a_pos;
90
33.1k
            ++c_pos;
91
33.1k
        }
92
113
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
123
                                          PaddedPODArray<UInt8>& c) {
82
123
        size_t size = a.size();
83
123
        const A* __restrict a_pos = a.data();
84
123
        UInt8* __restrict c_pos = c.data();
85
123
        const A* __restrict a_end = a_pos + size;
86
87
76.7k
        while (a_pos < a_end) {
88
76.6k
            *c_pos = Op::apply(*a_pos, b);
89
76.6k
            ++a_pos;
90
76.6k
            ++c_pos;
91
76.6k
        }
92
123
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.45k
                                          PaddedPODArray<UInt8>& c) {
82
1.45k
        size_t size = a.size();
83
1.45k
        const A* __restrict a_pos = a.data();
84
1.45k
        UInt8* __restrict c_pos = c.data();
85
1.45k
        const A* __restrict a_end = a_pos + size;
86
87
7.37M
        while (a_pos < a_end) {
88
7.36M
            *c_pos = Op::apply(*a_pos, b);
89
7.36M
            ++a_pos;
90
7.36M
            ++c_pos;
91
7.36M
        }
92
1.45k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
5.49k
                                          PaddedPODArray<UInt8>& c) {
82
5.49k
        size_t size = a.size();
83
5.49k
        const A* __restrict a_pos = a.data();
84
5.49k
        UInt8* __restrict c_pos = c.data();
85
5.49k
        const A* __restrict a_end = a_pos + size;
86
87
42.6M
        while (a_pos < a_end) {
88
42.6M
            *c_pos = Op::apply(*a_pos, b);
89
42.6M
            ++a_pos;
90
42.6M
            ++c_pos;
91
42.6M
        }
92
5.49k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
471
                                          PaddedPODArray<UInt8>& c) {
82
471
        size_t size = a.size();
83
471
        const A* __restrict a_pos = a.data();
84
471
        UInt8* __restrict c_pos = c.data();
85
471
        const A* __restrict a_end = a_pos + size;
86
87
1.38k
        while (a_pos < a_end) {
88
910
            *c_pos = Op::apply(*a_pos, b);
89
910
            ++a_pos;
90
910
            ++c_pos;
91
910
        }
92
471
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
264
                                          PaddedPODArray<UInt8>& c) {
82
264
        size_t size = a.size();
83
264
        const A* __restrict a_pos = a.data();
84
264
        UInt8* __restrict c_pos = c.data();
85
264
        const A* __restrict a_end = a_pos + size;
86
87
2.64k
        while (a_pos < a_end) {
88
2.38k
            *c_pos = Op::apply(*a_pos, b);
89
2.38k
            ++a_pos;
90
2.38k
            ++c_pos;
91
2.38k
        }
92
264
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
37
                                          PaddedPODArray<UInt8>& c) {
82
37
        size_t size = a.size();
83
37
        const A* __restrict a_pos = a.data();
84
37
        UInt8* __restrict c_pos = c.data();
85
37
        const A* __restrict a_end = a_pos + size;
86
87
15.1k
        while (a_pos < a_end) {
88
15.0k
            *c_pos = Op::apply(*a_pos, b);
89
15.0k
            ++a_pos;
90
15.0k
            ++c_pos;
91
15.0k
        }
92
37
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
44
                                          PaddedPODArray<UInt8>& c) {
82
44
        size_t size = a.size();
83
44
        const A* __restrict a_pos = a.data();
84
44
        UInt8* __restrict c_pos = c.data();
85
44
        const A* __restrict a_end = a_pos + size;
86
87
71.0k
        while (a_pos < a_end) {
88
71.0k
            *c_pos = Op::apply(*a_pos, b);
89
71.0k
            ++a_pos;
90
71.0k
            ++c_pos;
91
71.0k
        }
92
44
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
55
                                          PaddedPODArray<UInt8>& c) {
82
55
        size_t size = a.size();
83
55
        const A* __restrict a_pos = a.data();
84
55
        UInt8* __restrict c_pos = c.data();
85
55
        const A* __restrict a_end = a_pos + size;
86
87
31.2k
        while (a_pos < a_end) {
88
31.2k
            *c_pos = Op::apply(*a_pos, b);
89
31.2k
            ++a_pos;
90
31.2k
            ++c_pos;
91
31.2k
        }
92
55
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
81
                                          PaddedPODArray<UInt8>& c) {
82
81
        size_t size = a.size();
83
81
        const A* __restrict a_pos = a.data();
84
81
        UInt8* __restrict c_pos = c.data();
85
81
        const A* __restrict a_end = a_pos + size;
86
87
79.6k
        while (a_pos < a_end) {
88
79.5k
            *c_pos = Op::apply(*a_pos, b);
89
79.5k
            ++a_pos;
90
79.5k
            ++c_pos;
91
79.5k
        }
92
81
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20.0k
                                          PaddedPODArray<UInt8>& c) {
82
20.0k
        size_t size = a.size();
83
20.0k
        const A* __restrict a_pos = a.data();
84
20.0k
        UInt8* __restrict c_pos = c.data();
85
20.0k
        const A* __restrict a_end = a_pos + size;
86
87
90.0M
        while (a_pos < a_end) {
88
90.0M
            *c_pos = Op::apply(*a_pos, b);
89
90.0M
            ++a_pos;
90
90.0M
            ++c_pos;
91
90.0M
        }
92
20.0k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20.0k
                                          PaddedPODArray<UInt8>& c) {
82
20.0k
        size_t size = a.size();
83
20.0k
        const A* __restrict a_pos = a.data();
84
20.0k
        UInt8* __restrict c_pos = c.data();
85
20.0k
        const A* __restrict a_end = a_pos + size;
86
87
90.0M
        while (a_pos < a_end) {
88
90.0M
            *c_pos = Op::apply(*a_pos, b);
89
90.0M
            ++a_pos;
90
90.0M
            ++c_pos;
91
90.0M
        }
92
20.0k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
423
                                          PaddedPODArray<UInt8>& c) {
82
423
        size_t size = a.size();
83
423
        const A* __restrict a_pos = a.data();
84
423
        UInt8* __restrict c_pos = c.data();
85
423
        const A* __restrict a_end = a_pos + size;
86
87
24.5k
        while (a_pos < a_end) {
88
24.0k
            *c_pos = Op::apply(*a_pos, b);
89
24.0k
            ++a_pos;
90
24.0k
            ++c_pos;
91
24.0k
        }
92
423
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
460
                                          PaddedPODArray<UInt8>& c) {
82
460
        size_t size = a.size();
83
460
        const A* __restrict a_pos = a.data();
84
460
        UInt8* __restrict c_pos = c.data();
85
460
        const A* __restrict a_end = a_pos + size;
86
87
9.27k
        while (a_pos < a_end) {
88
8.81k
            *c_pos = Op::apply(*a_pos, b);
89
8.81k
            ++a_pos;
90
8.81k
            ++c_pos;
91
8.81k
        }
92
460
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
40
                                          PaddedPODArray<UInt8>& c) {
82
40
        size_t size = a.size();
83
40
        const A* __restrict a_pos = a.data();
84
40
        UInt8* __restrict c_pos = c.data();
85
40
        const A* __restrict a_end = a_pos + size;
86
87
40.3k
        while (a_pos < a_end) {
88
40.3k
            *c_pos = Op::apply(*a_pos, b);
89
40.3k
            ++a_pos;
90
40.3k
            ++c_pos;
91
40.3k
        }
92
40
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
38
                                          PaddedPODArray<UInt8>& c) {
82
38
        size_t size = a.size();
83
38
        const A* __restrict a_pos = a.data();
84
38
        UInt8* __restrict c_pos = c.data();
85
38
        const A* __restrict a_end = a_pos + size;
86
87
37.2k
        while (a_pos < a_end) {
88
37.2k
            *c_pos = Op::apply(*a_pos, b);
89
37.2k
            ++a_pos;
90
37.2k
            ++c_pos;
91
37.2k
        }
92
38
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
66
                                          PaddedPODArray<UInt8>& c) {
82
66
        size_t size = a.size();
83
66
        const A* __restrict a_pos = a.data();
84
66
        UInt8* __restrict c_pos = c.data();
85
66
        const A* __restrict a_end = a_pos + size;
86
87
135
        while (a_pos < a_end) {
88
69
            *c_pos = Op::apply(*a_pos, b);
89
69
            ++a_pos;
90
69
            ++c_pos;
91
69
        }
92
66
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
60
                                          PaddedPODArray<UInt8>& c) {
82
60
        size_t size = a.size();
83
60
        const A* __restrict a_pos = a.data();
84
60
        UInt8* __restrict c_pos = c.data();
85
60
        const A* __restrict a_end = a_pos + size;
86
87
120
        while (a_pos < a_end) {
88
60
            *c_pos = Op::apply(*a_pos, b);
89
60
            ++a_pos;
90
60
            ++c_pos;
91
60
        }
92
60
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
156
                                          PaddedPODArray<UInt8>& c) {
82
156
        size_t size = a.size();
83
156
        const A* __restrict a_pos = a.data();
84
156
        UInt8* __restrict c_pos = c.data();
85
156
        const A* __restrict a_end = a_pos + size;
86
87
356k
        while (a_pos < a_end) {
88
356k
            *c_pos = Op::apply(*a_pos, b);
89
356k
            ++a_pos;
90
356k
            ++c_pos;
91
356k
        }
92
156
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
140
                                          PaddedPODArray<UInt8>& c) {
82
140
        size_t size = a.size();
83
140
        const A* __restrict a_pos = a.data();
84
140
        UInt8* __restrict c_pos = c.data();
85
140
        const A* __restrict a_end = a_pos + size;
86
87
276k
        while (a_pos < a_end) {
88
276k
            *c_pos = Op::apply(*a_pos, b);
89
276k
            ++a_pos;
90
276k
            ++c_pos;
91
276k
        }
92
140
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
97
};
98
99
/// Generic version, implemented for columns of same type.
100
template <typename Op>
101
struct GenericComparisonImpl {
102
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
11
        }
106
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
6
        }
106
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
3
        }
106
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
107
108
100
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
100
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
193k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
193k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
193k
        }
113
100
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
18
        }
113
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
32
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
32
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
102k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
102k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
102k
        }
113
32
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
31
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
31
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
90.7k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
90.6k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
90.6k
        }
113
31
    }
114
115
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
117
0
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
118
};
119
120
template <typename Op>
121
struct StringComparisonImpl {
122
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
123
                                                      const ColumnString::Offsets& a_offsets,
124
                                                      const ColumnString::Chars& b_data,
125
                                                      const ColumnString::Offsets& b_offsets,
126
466
                                                      PaddedPODArray<UInt8>& c) {
127
466
        size_t size = a_offsets.size();
128
466
        ColumnString::Offset prev_a_offset = 0;
129
466
        ColumnString::Offset prev_b_offset = 0;
130
466
        const auto* a_pos = a_data.data();
131
466
        const auto* b_pos = b_data.data();
132
133
1.22k
        for (size_t i = 0; i < size; ++i) {
134
763
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
763
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
763
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
763
                             0);
138
139
763
            prev_a_offset = a_offsets[i];
140
763
            prev_b_offset = b_offsets[i];
141
763
        }
142
466
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
2
                                                      PaddedPODArray<UInt8>& c) {
127
2
        size_t size = a_offsets.size();
128
2
        ColumnString::Offset prev_a_offset = 0;
129
2
        ColumnString::Offset prev_b_offset = 0;
130
2
        const auto* a_pos = a_data.data();
131
2
        const auto* b_pos = b_data.data();
132
133
49
        for (size_t i = 0; i < size; ++i) {
134
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
47
                             0);
138
139
47
            prev_a_offset = a_offsets[i];
140
47
            prev_b_offset = b_offsets[i];
141
47
        }
142
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
46
                                                      PaddedPODArray<UInt8>& c) {
127
46
        size_t size = a_offsets.size();
128
46
        ColumnString::Offset prev_a_offset = 0;
129
46
        ColumnString::Offset prev_b_offset = 0;
130
46
        const auto* a_pos = a_data.data();
131
46
        const auto* b_pos = b_data.data();
132
133
340
        for (size_t i = 0; i < size; ++i) {
134
294
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
294
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
294
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
294
                             0);
138
139
294
            prev_a_offset = a_offsets[i];
140
294
            prev_b_offset = b_offsets[i];
141
294
        }
142
46
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
418
                                                      PaddedPODArray<UInt8>& c) {
127
418
        size_t size = a_offsets.size();
128
418
        ColumnString::Offset prev_a_offset = 0;
129
418
        ColumnString::Offset prev_b_offset = 0;
130
418
        const auto* a_pos = a_data.data();
131
418
        const auto* b_pos = b_data.data();
132
133
840
        for (size_t i = 0; i < size; ++i) {
134
422
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
422
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
422
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
422
                             0);
138
139
422
            prev_a_offset = a_offsets[i];
140
422
            prev_b_offset = b_offsets[i];
141
422
        }
142
418
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
143
144
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
145
                                                 const ColumnString::Offsets& a_offsets,
146
                                                 const ColumnString::Chars& b_data,
147
                                                 ColumnString::Offset b_size,
148
1.32k
                                                 PaddedPODArray<UInt8>& c) {
149
1.32k
        size_t size = a_offsets.size();
150
1.32k
        ColumnString::Offset prev_a_offset = 0;
151
1.32k
        const auto* a_pos = a_data.data();
152
1.32k
        const auto* b_pos = b_data.data();
153
154
967k
        for (size_t i = 0; i < size; ++i) {
155
966k
            c[i] = Op::apply(
156
966k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
966k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
966k
                    0);
159
160
966k
            prev_a_offset = a_offsets[i];
161
966k
        }
162
1.32k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
195
                                                 PaddedPODArray<UInt8>& c) {
149
195
        size_t size = a_offsets.size();
150
195
        ColumnString::Offset prev_a_offset = 0;
151
195
        const auto* a_pos = a_data.data();
152
195
        const auto* b_pos = b_data.data();
153
154
324k
        for (size_t i = 0; i < size; ++i) {
155
324k
            c[i] = Op::apply(
156
324k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
324k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
324k
                    0);
159
160
324k
            prev_a_offset = a_offsets[i];
161
324k
        }
162
195
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
215
                                                 PaddedPODArray<UInt8>& c) {
149
215
        size_t size = a_offsets.size();
150
215
        ColumnString::Offset prev_a_offset = 0;
151
215
        const auto* a_pos = a_data.data();
152
215
        const auto* b_pos = b_data.data();
153
154
72.7k
        for (size_t i = 0; i < size; ++i) {
155
72.5k
            c[i] = Op::apply(
156
72.5k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.5k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.5k
                    0);
159
160
72.5k
            prev_a_offset = a_offsets[i];
161
72.5k
        }
162
215
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
449
                                                 PaddedPODArray<UInt8>& c) {
149
449
        size_t size = a_offsets.size();
150
449
        ColumnString::Offset prev_a_offset = 0;
151
449
        const auto* a_pos = a_data.data();
152
449
        const auto* b_pos = b_data.data();
153
154
296k
        for (size_t i = 0; i < size; ++i) {
155
295k
            c[i] = Op::apply(
156
295k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
295k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
295k
                    0);
159
160
295k
            prev_a_offset = a_offsets[i];
161
295k
        }
162
449
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
465
                                                 PaddedPODArray<UInt8>& c) {
149
465
        size_t size = a_offsets.size();
150
465
        ColumnString::Offset prev_a_offset = 0;
151
465
        const auto* a_pos = a_data.data();
152
465
        const auto* b_pos = b_data.data();
153
154
274k
        for (size_t i = 0; i < size; ++i) {
155
273k
            c[i] = Op::apply(
156
273k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
273k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
273k
                    0);
159
160
273k
            prev_a_offset = a_offsets[i];
161
273k
        }
162
465
    }
163
164
    static void constant_string_vector(const ColumnString::Chars& a_data,
165
                                       ColumnString::Offset a_size,
166
                                       const ColumnString::Chars& b_data,
167
                                       const ColumnString::Offsets& b_offsets,
168
0
                                       PaddedPODArray<UInt8>& c) {
169
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
0
                                                                               a_data, a_size, c);
171
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
172
};
173
174
template <bool positive>
175
struct StringEqualsImpl {
176
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
177
                                                      const ColumnString::Offsets& a_offsets,
178
                                                      const ColumnString::Chars& b_data,
179
                                                      const ColumnString::Offsets& b_offsets,
180
527
                                                      PaddedPODArray<UInt8>& c) {
181
527
        size_t size = a_offsets.size();
182
527
        ColumnString::Offset prev_a_offset = 0;
183
527
        ColumnString::Offset prev_b_offset = 0;
184
527
        const auto* a_pos = a_data.data();
185
527
        const auto* b_pos = b_data.data();
186
187
5.62k
        for (size_t i = 0; i < size; ++i) {
188
5.09k
            auto a_size = a_offsets[i] - prev_a_offset;
189
5.09k
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
5.09k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
5.09k
                                                               b_pos + prev_b_offset, b_size);
193
194
5.09k
            prev_a_offset = a_offsets[i];
195
5.09k
            prev_b_offset = b_offsets[i];
196
5.09k
        }
197
527
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
526
                                                      PaddedPODArray<UInt8>& c) {
181
526
        size_t size = a_offsets.size();
182
526
        ColumnString::Offset prev_a_offset = 0;
183
526
        ColumnString::Offset prev_b_offset = 0;
184
526
        const auto* a_pos = a_data.data();
185
526
        const auto* b_pos = b_data.data();
186
187
5.61k
        for (size_t i = 0; i < size; ++i) {
188
5.09k
            auto a_size = a_offsets[i] - prev_a_offset;
189
5.09k
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
5.09k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
5.09k
                                                               b_pos + prev_b_offset, b_size);
193
194
5.09k
            prev_a_offset = a_offsets[i];
195
5.09k
            prev_b_offset = b_offsets[i];
196
5.09k
        }
197
526
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
1
                                                      PaddedPODArray<UInt8>& c) {
181
1
        size_t size = a_offsets.size();
182
1
        ColumnString::Offset prev_a_offset = 0;
183
1
        ColumnString::Offset prev_b_offset = 0;
184
1
        const auto* a_pos = a_data.data();
185
1
        const auto* b_pos = b_data.data();
186
187
5
        for (size_t i = 0; i < size; ++i) {
188
4
            auto a_size = a_offsets[i] - prev_a_offset;
189
4
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
4
                                                               b_pos + prev_b_offset, b_size);
193
194
4
            prev_a_offset = a_offsets[i];
195
4
            prev_b_offset = b_offsets[i];
196
4
        }
197
1
    }
198
199
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
200
                                                 const ColumnString::Offsets& a_offsets,
201
                                                 const ColumnString::Chars& b_data,
202
                                                 ColumnString::Offset b_size,
203
20.2k
                                                 PaddedPODArray<UInt8>& c) {
204
20.2k
        size_t size = a_offsets.size();
205
20.2k
        if (b_size == 0) {
206
41
            auto* __restrict data = c.data();
207
41
            auto* __restrict offsets = a_offsets.data();
208
209
41
            ColumnString::Offset prev_a_offset = 0;
210
1.22k
            for (size_t i = 0; i < size; ++i) {
211
1.18k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.18k
                prev_a_offset = offsets[i];
213
1.18k
            }
214
20.1k
        } else {
215
20.1k
            ColumnString::Offset prev_a_offset = 0;
216
20.1k
            const auto* a_pos = a_data.data();
217
20.1k
            const auto* b_pos = b_data.data();
218
12.2M
            for (size_t i = 0; i < size; ++i) {
219
12.2M
                auto a_size = a_offsets[i] - prev_a_offset;
220
12.2M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
12.2M
                                                                   b_pos, b_size);
222
12.2M
                prev_a_offset = a_offsets[i];
223
12.2M
            }
224
20.1k
        }
225
20.2k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
19.4k
                                                 PaddedPODArray<UInt8>& c) {
204
19.4k
        size_t size = a_offsets.size();
205
19.4k
        if (b_size == 0) {
206
16
            auto* __restrict data = c.data();
207
16
            auto* __restrict offsets = a_offsets.data();
208
209
16
            ColumnString::Offset prev_a_offset = 0;
210
120
            for (size_t i = 0; i < size; ++i) {
211
104
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
104
                prev_a_offset = offsets[i];
213
104
            }
214
19.4k
        } else {
215
19.4k
            ColumnString::Offset prev_a_offset = 0;
216
19.4k
            const auto* a_pos = a_data.data();
217
19.4k
            const auto* b_pos = b_data.data();
218
11.9M
            for (size_t i = 0; i < size; ++i) {
219
11.8M
                auto a_size = a_offsets[i] - prev_a_offset;
220
11.8M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
11.8M
                                                                   b_pos, b_size);
222
11.8M
                prev_a_offset = a_offsets[i];
223
11.8M
            }
224
19.4k
        }
225
19.4k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
748
                                                 PaddedPODArray<UInt8>& c) {
204
748
        size_t size = a_offsets.size();
205
748
        if (b_size == 0) {
206
25
            auto* __restrict data = c.data();
207
25
            auto* __restrict offsets = a_offsets.data();
208
209
25
            ColumnString::Offset prev_a_offset = 0;
210
1.10k
            for (size_t i = 0; i < size; ++i) {
211
1.07k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.07k
                prev_a_offset = offsets[i];
213
1.07k
            }
214
723
        } else {
215
723
            ColumnString::Offset prev_a_offset = 0;
216
723
            const auto* a_pos = a_data.data();
217
723
            const auto* b_pos = b_data.data();
218
314k
            for (size_t i = 0; i < size; ++i) {
219
313k
                auto a_size = a_offsets[i] - prev_a_offset;
220
313k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
313k
                                                                   b_pos, b_size);
222
313k
                prev_a_offset = a_offsets[i];
223
313k
            }
224
723
        }
225
748
    }
226
227
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
228
                                                 ColumnString::Offset a_size,
229
                                                 const ColumnString::Chars& b_data,
230
                                                 const ColumnString::Offsets& b_offsets,
231
0
                                                 PaddedPODArray<UInt8>& c) {
232
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
233
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
234
};
235
236
template <PrimitiveType PT>
237
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
238
239
template <PrimitiveType PT>
240
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
241
242
struct NameEquals {
243
    static constexpr auto name = "eq";
244
};
245
struct NameNotEquals {
246
    static constexpr auto name = "ne";
247
};
248
struct NameLess {
249
    static constexpr auto name = "lt";
250
};
251
struct NameGreater {
252
    static constexpr auto name = "gt";
253
};
254
struct NameLessOrEquals {
255
    static constexpr auto name = "le";
256
};
257
struct NameGreaterOrEquals {
258
    static constexpr auto name = "ge";
259
};
260
261
template <template <PrimitiveType> class Op, typename Name>
262
class FunctionComparison : public IFunction {
263
public:
264
    static constexpr auto name = Name::name;
265
508k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
426k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.37k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.74k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
35.1k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.37k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
36.1k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
509k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
426k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.37k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.74k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
35.1k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.37k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
36.0k
    FunctionComparison() = default;
268
269
1.24M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.18M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.48k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
7.69k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
23.8k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.81k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
22.6k
    double execute_cost() const override { return 0.5; }
270
271
private:
272
    template <PrimitiveType PT>
273
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
274
105k
                            const ColumnPtr& col_right_ptr) const {
275
105k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
105k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
105k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
105k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
105k
        DCHECK(!(left_is_const && right_is_const));
282
283
105k
        if (!left_is_const && !right_is_const) {
284
12.8k
            auto col_res = ColumnUInt8::create();
285
286
12.8k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
12.8k
            vec_res.resize(col_left->get_data().size());
288
12.8k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
12.8k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
12.8k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
12.8k
                                                     vec_res);
292
293
12.8k
            block.replace_by_position(result, std::move(col_res));
294
92.9k
        } else if (!left_is_const && right_is_const) {
295
92.9k
            auto col_res = ColumnUInt8::create();
296
297
92.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
92.9k
            vec_res.resize(col_left->size());
299
92.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
92.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
92.9k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
92.9k
                                                       col_right->get_element(0), vec_res);
303
304
92.9k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
105k
        return Status::OK();
318
105k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
859
                            const ColumnPtr& col_right_ptr) const {
275
859
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
859
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
859
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
859
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
859
        DCHECK(!(left_is_const && right_is_const));
282
283
859
        if (!left_is_const && !right_is_const) {
284
67
            auto col_res = ColumnUInt8::create();
285
286
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
67
            vec_res.resize(col_left->get_data().size());
288
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
67
                              typename PrimitiveTypeTraits<PT>::CppType,
290
67
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
67
                                                     vec_res);
292
293
67
            block.replace_by_position(result, std::move(col_res));
294
792
        } else if (!left_is_const && right_is_const) {
295
790
            auto col_res = ColumnUInt8::create();
296
297
790
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
790
            vec_res.resize(col_left->size());
299
790
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
790
                              typename PrimitiveTypeTraits<PT>::CppType,
301
790
                              Op<PT>>::vector_constant(col_left->get_data(),
302
790
                                                       col_right->get_element(0), vec_res);
303
304
790
            block.replace_by_position(result, std::move(col_res));
305
790
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
859
        return Status::OK();
318
859
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.14k
                            const ColumnPtr& col_right_ptr) const {
275
1.14k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.14k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.14k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.14k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.14k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.14k
        if (!left_is_const && !right_is_const) {
284
261
            auto col_res = ColumnUInt8::create();
285
286
261
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
261
            vec_res.resize(col_left->get_data().size());
288
261
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
261
                              typename PrimitiveTypeTraits<PT>::CppType,
290
261
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
261
                                                     vec_res);
292
293
261
            block.replace_by_position(result, std::move(col_res));
294
879
        } else if (!left_is_const && right_is_const) {
295
879
            auto col_res = ColumnUInt8::create();
296
297
879
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
879
            vec_res.resize(col_left->size());
299
879
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
879
                              typename PrimitiveTypeTraits<PT>::CppType,
301
879
                              Op<PT>>::vector_constant(col_left->get_data(),
302
879
                                                       col_right->get_element(0), vec_res);
303
304
879
            block.replace_by_position(result, std::move(col_res));
305
879
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.14k
        return Status::OK();
318
1.14k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
690
                            const ColumnPtr& col_right_ptr) const {
275
690
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
690
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
690
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
690
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
690
        DCHECK(!(left_is_const && right_is_const));
282
283
690
        if (!left_is_const && !right_is_const) {
284
285
            auto col_res = ColumnUInt8::create();
285
286
285
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
285
            vec_res.resize(col_left->get_data().size());
288
285
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
285
                              typename PrimitiveTypeTraits<PT>::CppType,
290
285
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
285
                                                     vec_res);
292
293
285
            block.replace_by_position(result, std::move(col_res));
294
405
        } else if (!left_is_const && right_is_const) {
295
405
            auto col_res = ColumnUInt8::create();
296
297
405
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
405
            vec_res.resize(col_left->size());
299
405
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
405
                              typename PrimitiveTypeTraits<PT>::CppType,
301
405
                              Op<PT>>::vector_constant(col_left->get_data(),
302
405
                                                       col_right->get_element(0), vec_res);
303
304
405
            block.replace_by_position(result, std::move(col_res));
305
405
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
690
        return Status::OK();
318
690
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.89k
                            const ColumnPtr& col_right_ptr) const {
275
3.89k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.89k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.89k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.89k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.89k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.89k
        if (!left_is_const && !right_is_const) {
284
827
            auto col_res = ColumnUInt8::create();
285
286
827
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
827
            vec_res.resize(col_left->get_data().size());
288
827
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
827
                              typename PrimitiveTypeTraits<PT>::CppType,
290
827
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
827
                                                     vec_res);
292
293
827
            block.replace_by_position(result, std::move(col_res));
294
3.06k
        } else if (!left_is_const && right_is_const) {
295
3.06k
            auto col_res = ColumnUInt8::create();
296
297
3.06k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
3.06k
            vec_res.resize(col_left->size());
299
3.06k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
3.06k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
3.06k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
3.06k
                                                       col_right->get_element(0), vec_res);
303
304
3.06k
            block.replace_by_position(result, std::move(col_res));
305
3.06k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3.89k
        return Status::OK();
318
3.89k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
799
                            const ColumnPtr& col_right_ptr) const {
275
799
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
799
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
799
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
799
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
799
        DCHECK(!(left_is_const && right_is_const));
282
283
799
        if (!left_is_const && !right_is_const) {
284
131
            auto col_res = ColumnUInt8::create();
285
286
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
131
            vec_res.resize(col_left->get_data().size());
288
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
131
                              typename PrimitiveTypeTraits<PT>::CppType,
290
131
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
131
                                                     vec_res);
292
293
131
            block.replace_by_position(result, std::move(col_res));
294
668
        } else if (!left_is_const && right_is_const) {
295
668
            auto col_res = ColumnUInt8::create();
296
297
668
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
668
            vec_res.resize(col_left->size());
299
668
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
668
                              typename PrimitiveTypeTraits<PT>::CppType,
301
668
                              Op<PT>>::vector_constant(col_left->get_data(),
302
668
                                                       col_right->get_element(0), vec_res);
303
304
668
            block.replace_by_position(result, std::move(col_res));
305
668
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
799
        return Status::OK();
318
799
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
6.30k
                            const ColumnPtr& col_right_ptr) const {
275
6.30k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
6.30k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
6.30k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
6.30k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
6.30k
        DCHECK(!(left_is_const && right_is_const));
282
283
6.30k
        if (!left_is_const && !right_is_const) {
284
335
            auto col_res = ColumnUInt8::create();
285
286
335
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
335
            vec_res.resize(col_left->get_data().size());
288
335
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
335
                              typename PrimitiveTypeTraits<PT>::CppType,
290
335
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
335
                                                     vec_res);
292
293
335
            block.replace_by_position(result, std::move(col_res));
294
5.97k
        } else if (!left_is_const && right_is_const) {
295
5.96k
            auto col_res = ColumnUInt8::create();
296
297
5.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.96k
            vec_res.resize(col_left->size());
299
5.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.96k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.96k
                                                       col_right->get_element(0), vec_res);
303
304
5.96k
            block.replace_by_position(result, std::move(col_res));
305
5.96k
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
6.30k
        return Status::OK();
318
6.30k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
9.33k
                            const ColumnPtr& col_right_ptr) const {
275
9.33k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
9.33k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
9.33k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
9.33k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
9.33k
        DCHECK(!(left_is_const && right_is_const));
282
283
9.33k
        if (!left_is_const && !right_is_const) {
284
365
            auto col_res = ColumnUInt8::create();
285
286
365
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
365
            vec_res.resize(col_left->get_data().size());
288
365
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
365
                              typename PrimitiveTypeTraits<PT>::CppType,
290
365
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
365
                                                     vec_res);
292
293
365
            block.replace_by_position(result, std::move(col_res));
294
8.96k
        } else if (!left_is_const && right_is_const) {
295
8.96k
            auto col_res = ColumnUInt8::create();
296
297
8.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8.96k
            vec_res.resize(col_left->size());
299
8.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8.96k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8.96k
                                                       col_right->get_element(0), vec_res);
303
304
8.96k
            block.replace_by_position(result, std::move(col_res));
305
8.96k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
9.33k
        return Status::OK();
318
9.33k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
142
                            const ColumnPtr& col_right_ptr) const {
275
142
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
142
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
142
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
142
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
142
        DCHECK(!(left_is_const && right_is_const));
282
283
142
        if (!left_is_const && !right_is_const) {
284
102
            auto col_res = ColumnUInt8::create();
285
286
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
102
            vec_res.resize(col_left->get_data().size());
288
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
102
                              typename PrimitiveTypeTraits<PT>::CppType,
290
102
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
102
                                                     vec_res);
292
293
102
            block.replace_by_position(result, std::move(col_res));
294
102
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
142
        return Status::OK();
318
142
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
31
                            const ColumnPtr& col_right_ptr) const {
275
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
31
        DCHECK(!(left_is_const && right_is_const));
282
283
31
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
15
            auto col_res = ColumnUInt8::create();
296
297
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
15
            vec_res.resize(col_left->size());
299
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
15
                              typename PrimitiveTypeTraits<PT>::CppType,
301
15
                              Op<PT>>::vector_constant(col_left->get_data(),
302
15
                                                       col_right->get_element(0), vec_res);
303
304
15
            block.replace_by_position(result, std::move(col_res));
305
15
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
31
        return Status::OK();
318
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30
                            const ColumnPtr& col_right_ptr) const {
275
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30
        DCHECK(!(left_is_const && right_is_const));
282
283
30
        if (!left_is_const && !right_is_const) {
284
24
            auto col_res = ColumnUInt8::create();
285
286
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
24
            vec_res.resize(col_left->get_data().size());
288
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              typename PrimitiveTypeTraits<PT>::CppType,
290
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
24
                                                     vec_res);
292
293
24
            block.replace_by_position(result, std::move(col_res));
294
24
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
30
        return Status::OK();
318
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
107
                            const ColumnPtr& col_right_ptr) const {
275
107
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
107
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
107
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
107
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
107
        DCHECK(!(left_is_const && right_is_const));
282
283
107
        if (!left_is_const && !right_is_const) {
284
103
            auto col_res = ColumnUInt8::create();
285
286
103
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
103
            vec_res.resize(col_left->get_data().size());
288
103
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
103
                              typename PrimitiveTypeTraits<PT>::CppType,
290
103
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
103
                                                     vec_res);
292
293
103
            block.replace_by_position(result, std::move(col_res));
294
103
        } else if (!left_is_const && right_is_const) {
295
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
107
        return Status::OK();
318
107
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
297
                            const ColumnPtr& col_right_ptr) const {
275
297
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
297
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
297
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
297
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
297
        DCHECK(!(left_is_const && right_is_const));
282
283
297
        if (!left_is_const && !right_is_const) {
284
113
            auto col_res = ColumnUInt8::create();
285
286
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
113
            vec_res.resize(col_left->get_data().size());
288
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
113
                              typename PrimitiveTypeTraits<PT>::CppType,
290
113
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
113
                                                     vec_res);
292
293
113
            block.replace_by_position(result, std::move(col_res));
294
184
        } else if (!left_is_const && right_is_const) {
295
184
            auto col_res = ColumnUInt8::create();
296
297
184
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
184
            vec_res.resize(col_left->size());
299
184
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
184
                              typename PrimitiveTypeTraits<PT>::CppType,
301
184
                              Op<PT>>::vector_constant(col_left->get_data(),
302
184
                                                       col_right->get_element(0), vec_res);
303
304
184
            block.replace_by_position(result, std::move(col_res));
305
184
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
297
        return Status::OK();
318
297
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
4
            auto col_res = ColumnUInt8::create();
285
286
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
4
            vec_res.resize(col_left->get_data().size());
288
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              typename PrimitiveTypeTraits<PT>::CppType,
290
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
4
                                                     vec_res);
292
293
4
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
49
                            const ColumnPtr& col_right_ptr) const {
275
49
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
49
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
49
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
49
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
49
        DCHECK(!(left_is_const && right_is_const));
282
283
49
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
39
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
49
        return Status::OK();
318
49
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
96
                            const ColumnPtr& col_right_ptr) const {
275
96
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
96
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
96
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
96
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
96
        DCHECK(!(left_is_const && right_is_const));
282
283
96
        if (!left_is_const && !right_is_const) {
284
64
            auto col_res = ColumnUInt8::create();
285
286
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
64
            vec_res.resize(col_left->get_data().size());
288
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
64
                              typename PrimitiveTypeTraits<PT>::CppType,
290
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
64
                                                     vec_res);
292
293
64
            block.replace_by_position(result, std::move(col_res));
294
64
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
96
        return Status::OK();
318
96
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.60k
                            const ColumnPtr& col_right_ptr) const {
275
1.60k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.60k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.60k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.60k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.60k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.60k
        if (!left_is_const && !right_is_const) {
284
1.05k
            auto col_res = ColumnUInt8::create();
285
286
1.05k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.05k
            vec_res.resize(col_left->get_data().size());
288
1.05k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.05k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.05k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.05k
                                                     vec_res);
292
293
1.05k
            block.replace_by_position(result, std::move(col_res));
294
1.05k
        } else if (!left_is_const && right_is_const) {
295
551
            auto col_res = ColumnUInt8::create();
296
297
551
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
551
            vec_res.resize(col_left->size());
299
551
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
551
                              typename PrimitiveTypeTraits<PT>::CppType,
301
551
                              Op<PT>>::vector_constant(col_left->get_data(),
302
551
                                                       col_right->get_element(0), vec_res);
303
304
551
            block.replace_by_position(result, std::move(col_res));
305
551
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.60k
        return Status::OK();
318
1.60k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
991
                            const ColumnPtr& col_right_ptr) const {
275
991
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
991
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
991
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
991
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
991
        DCHECK(!(left_is_const && right_is_const));
282
283
991
        if (!left_is_const && !right_is_const) {
284
457
            auto col_res = ColumnUInt8::create();
285
286
457
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
457
            vec_res.resize(col_left->get_data().size());
288
457
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
457
                              typename PrimitiveTypeTraits<PT>::CppType,
290
457
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
457
                                                     vec_res);
292
293
457
            block.replace_by_position(result, std::move(col_res));
294
534
        } else if (!left_is_const && right_is_const) {
295
534
            auto col_res = ColumnUInt8::create();
296
297
534
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
534
            vec_res.resize(col_left->size());
299
534
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
534
                              typename PrimitiveTypeTraits<PT>::CppType,
301
534
                              Op<PT>>::vector_constant(col_left->get_data(),
302
534
                                                       col_right->get_element(0), vec_res);
303
304
534
            block.replace_by_position(result, std::move(col_res));
305
534
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
991
        return Status::OK();
318
991
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
52
                            const ColumnPtr& col_right_ptr) const {
275
52
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
52
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
52
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
52
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
52
        DCHECK(!(left_is_const && right_is_const));
282
283
52
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
32
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
52
        return Status::OK();
318
52
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
71
                            const ColumnPtr& col_right_ptr) const {
275
71
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
71
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
71
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
71
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
71
        DCHECK(!(left_is_const && right_is_const));
282
283
71
        if (!left_is_const && !right_is_const) {
284
19
            auto col_res = ColumnUInt8::create();
285
286
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
19
            vec_res.resize(col_left->get_data().size());
288
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
19
                              typename PrimitiveTypeTraits<PT>::CppType,
290
19
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
19
                                                     vec_res);
292
293
19
            block.replace_by_position(result, std::move(col_res));
294
52
        } else if (!left_is_const && right_is_const) {
295
52
            auto col_res = ColumnUInt8::create();
296
297
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
52
            vec_res.resize(col_left->size());
299
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
52
                              typename PrimitiveTypeTraits<PT>::CppType,
301
52
                              Op<PT>>::vector_constant(col_left->get_data(),
302
52
                                                       col_right->get_element(0), vec_res);
303
304
52
            block.replace_by_position(result, std::move(col_res));
305
52
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
71
        return Status::OK();
318
71
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.28k
                            const ColumnPtr& col_right_ptr) const {
275
1.28k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.28k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.28k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.28k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.28k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.28k
        if (!left_is_const && !right_is_const) {
284
1.17k
            auto col_res = ColumnUInt8::create();
285
286
1.17k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.17k
            vec_res.resize(col_left->get_data().size());
288
1.17k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.17k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.17k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.17k
                                                     vec_res);
292
293
1.17k
            block.replace_by_position(result, std::move(col_res));
294
1.17k
        } else if (!left_is_const && right_is_const) {
295
114
            auto col_res = ColumnUInt8::create();
296
297
114
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
114
            vec_res.resize(col_left->size());
299
114
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
114
                              typename PrimitiveTypeTraits<PT>::CppType,
301
114
                              Op<PT>>::vector_constant(col_left->get_data(),
302
114
                                                       col_right->get_element(0), vec_res);
303
304
114
            block.replace_by_position(result, std::move(col_res));
305
114
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.28k
        return Status::OK();
318
1.28k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
60
                            const ColumnPtr& col_right_ptr) const {
275
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
60
        DCHECK(!(left_is_const && right_is_const));
282
283
60
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
60
        } else if (!left_is_const && right_is_const) {
295
60
            auto col_res = ColumnUInt8::create();
296
297
60
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
60
            vec_res.resize(col_left->size());
299
60
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
60
                              typename PrimitiveTypeTraits<PT>::CppType,
301
60
                              Op<PT>>::vector_constant(col_left->get_data(),
302
60
                                                       col_right->get_element(0), vec_res);
303
304
60
            block.replace_by_position(result, std::move(col_res));
305
60
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
60
        return Status::OK();
318
60
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
778
                            const ColumnPtr& col_right_ptr) const {
275
778
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
778
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
778
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
778
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
778
        DCHECK(!(left_is_const && right_is_const));
282
283
778
        if (!left_is_const && !right_is_const) {
284
351
            auto col_res = ColumnUInt8::create();
285
286
351
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
351
            vec_res.resize(col_left->get_data().size());
288
351
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
351
                              typename PrimitiveTypeTraits<PT>::CppType,
290
351
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
351
                                                     vec_res);
292
293
351
            block.replace_by_position(result, std::move(col_res));
294
427
        } else if (!left_is_const && right_is_const) {
295
427
            auto col_res = ColumnUInt8::create();
296
297
427
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
427
            vec_res.resize(col_left->size());
299
427
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
427
                              typename PrimitiveTypeTraits<PT>::CppType,
301
427
                              Op<PT>>::vector_constant(col_left->get_data(),
302
427
                                                       col_right->get_element(0), vec_res);
303
304
427
            block.replace_by_position(result, std::move(col_res));
305
427
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
778
        return Status::OK();
318
778
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.01k
                            const ColumnPtr& col_right_ptr) const {
275
1.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.01k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.01k
        if (!left_is_const && !right_is_const) {
284
565
            auto col_res = ColumnUInt8::create();
285
286
565
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
565
            vec_res.resize(col_left->get_data().size());
288
565
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
565
                              typename PrimitiveTypeTraits<PT>::CppType,
290
565
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
565
                                                     vec_res);
292
293
565
            block.replace_by_position(result, std::move(col_res));
294
565
        } else if (!left_is_const && right_is_const) {
295
453
            auto col_res = ColumnUInt8::create();
296
297
453
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
453
            vec_res.resize(col_left->size());
299
453
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
453
                              typename PrimitiveTypeTraits<PT>::CppType,
301
453
                              Op<PT>>::vector_constant(col_left->get_data(),
302
453
                                                       col_right->get_element(0), vec_res);
303
304
453
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.01k
        return Status::OK();
318
1.01k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8.00k
                            const ColumnPtr& col_right_ptr) const {
275
8.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8.00k
        DCHECK(!(left_is_const && right_is_const));
282
283
8.01k
        if (!left_is_const && !right_is_const) {
284
1.78k
            auto col_res = ColumnUInt8::create();
285
286
1.78k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.78k
            vec_res.resize(col_left->get_data().size());
288
1.78k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.78k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.78k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.78k
                                                     vec_res);
292
293
1.78k
            block.replace_by_position(result, std::move(col_res));
294
6.23k
        } else if (!left_is_const && right_is_const) {
295
6.23k
            auto col_res = ColumnUInt8::create();
296
297
6.23k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.23k
            vec_res.resize(col_left->size());
299
6.23k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.23k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.23k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.23k
                                                       col_right->get_element(0), vec_res);
303
304
6.23k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
8.00k
        return Status::OK();
318
8.00k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8.15k
                            const ColumnPtr& col_right_ptr) const {
275
8.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8.15k
        DCHECK(!(left_is_const && right_is_const));
282
283
8.15k
        if (!left_is_const && !right_is_const) {
284
119
            auto col_res = ColumnUInt8::create();
285
286
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
119
            vec_res.resize(col_left->get_data().size());
288
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
119
                              typename PrimitiveTypeTraits<PT>::CppType,
290
119
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
119
                                                     vec_res);
292
293
119
            block.replace_by_position(result, std::move(col_res));
294
8.04k
        } else if (!left_is_const && right_is_const) {
295
8.04k
            auto col_res = ColumnUInt8::create();
296
297
8.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8.04k
            vec_res.resize(col_left->size());
299
8.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8.04k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8.04k
                                                       col_right->get_element(0), vec_res);
303
304
8.04k
            block.replace_by_position(result, std::move(col_res));
305
8.04k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
8.15k
        return Status::OK();
318
8.15k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
248
                            const ColumnPtr& col_right_ptr) const {
275
248
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
248
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
248
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
248
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
248
        DCHECK(!(left_is_const && right_is_const));
282
283
248
        if (!left_is_const && !right_is_const) {
284
41
            auto col_res = ColumnUInt8::create();
285
286
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
41
            vec_res.resize(col_left->get_data().size());
288
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
41
                              typename PrimitiveTypeTraits<PT>::CppType,
290
41
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
41
                                                     vec_res);
292
293
41
            block.replace_by_position(result, std::move(col_res));
294
207
        } else if (!left_is_const && right_is_const) {
295
207
            auto col_res = ColumnUInt8::create();
296
297
207
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
207
            vec_res.resize(col_left->size());
299
207
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
207
                              typename PrimitiveTypeTraits<PT>::CppType,
301
207
                              Op<PT>>::vector_constant(col_left->get_data(),
302
207
                                                       col_right->get_element(0), vec_res);
303
304
207
            block.replace_by_position(result, std::move(col_res));
305
207
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
248
        return Status::OK();
318
248
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
232
                            const ColumnPtr& col_right_ptr) const {
275
232
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
232
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
232
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
232
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
232
        DCHECK(!(left_is_const && right_is_const));
282
283
232
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
212
        } else if (!left_is_const && right_is_const) {
295
212
            auto col_res = ColumnUInt8::create();
296
297
212
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
212
            vec_res.resize(col_left->size());
299
212
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
212
                              typename PrimitiveTypeTraits<PT>::CppType,
301
212
                              Op<PT>>::vector_constant(col_left->get_data(),
302
212
                                                       col_right->get_element(0), vec_res);
303
304
212
            block.replace_by_position(result, std::move(col_res));
305
212
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
232
        return Status::OK();
318
232
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.72k
                            const ColumnPtr& col_right_ptr) const {
275
1.72k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.72k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.72k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.72k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.72k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.72k
        if (!left_is_const && !right_is_const) {
284
38
            auto col_res = ColumnUInt8::create();
285
286
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
38
            vec_res.resize(col_left->get_data().size());
288
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
38
                              typename PrimitiveTypeTraits<PT>::CppType,
290
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
38
                                                     vec_res);
292
293
38
            block.replace_by_position(result, std::move(col_res));
294
1.69k
        } else if (!left_is_const && right_is_const) {
295
1.69k
            auto col_res = ColumnUInt8::create();
296
297
1.69k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.69k
            vec_res.resize(col_left->size());
299
1.69k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.69k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.69k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.69k
                                                       col_right->get_element(0), vec_res);
303
304
1.69k
            block.replace_by_position(result, std::move(col_res));
305
1.69k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.72k
        return Status::OK();
318
1.72k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
113
                            const ColumnPtr& col_right_ptr) const {
275
113
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
113
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
113
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
113
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
113
        DCHECK(!(left_is_const && right_is_const));
282
283
113
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
113
        } else if (!left_is_const && right_is_const) {
295
113
            auto col_res = ColumnUInt8::create();
296
297
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
113
            vec_res.resize(col_left->size());
299
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
113
                              typename PrimitiveTypeTraits<PT>::CppType,
301
113
                              Op<PT>>::vector_constant(col_left->get_data(),
302
113
                                                       col_right->get_element(0), vec_res);
303
304
113
            block.replace_by_position(result, std::move(col_res));
305
113
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
113
        return Status::OK();
318
113
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.46k
                            const ColumnPtr& col_right_ptr) const {
275
1.46k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.46k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.46k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.46k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.46k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.46k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
1.45k
        } else if (!left_is_const && right_is_const) {
295
1.45k
            auto col_res = ColumnUInt8::create();
296
297
1.45k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.45k
            vec_res.resize(col_left->size());
299
1.45k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.45k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.45k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.45k
                                                       col_right->get_element(0), vec_res);
303
304
1.45k
            block.replace_by_position(result, std::move(col_res));
305
1.45k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.46k
        return Status::OK();
318
1.46k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
479
                            const ColumnPtr& col_right_ptr) const {
275
479
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
479
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
479
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
479
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
479
        DCHECK(!(left_is_const && right_is_const));
282
283
479
        if (!left_is_const && !right_is_const) {
284
10
            auto col_res = ColumnUInt8::create();
285
286
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
10
            vec_res.resize(col_left->get_data().size());
288
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
10
                              typename PrimitiveTypeTraits<PT>::CppType,
290
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
10
                                                     vec_res);
292
293
10
            block.replace_by_position(result, std::move(col_res));
294
471
        } else if (!left_is_const && right_is_const) {
295
471
            auto col_res = ColumnUInt8::create();
296
297
471
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
471
            vec_res.resize(col_left->size());
299
471
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
471
                              typename PrimitiveTypeTraits<PT>::CppType,
301
471
                              Op<PT>>::vector_constant(col_left->get_data(),
302
471
                                                       col_right->get_element(0), vec_res);
303
304
471
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
479
        return Status::OK();
318
479
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
37
                            const ColumnPtr& col_right_ptr) const {
275
37
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
37
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
37
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
37
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
37
        DCHECK(!(left_is_const && right_is_const));
282
283
37
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
37
        } else if (!left_is_const && right_is_const) {
295
37
            auto col_res = ColumnUInt8::create();
296
297
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
37
            vec_res.resize(col_left->size());
299
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
37
                              typename PrimitiveTypeTraits<PT>::CppType,
301
37
                              Op<PT>>::vector_constant(col_left->get_data(),
302
37
                                                       col_right->get_element(0), vec_res);
303
304
37
            block.replace_by_position(result, std::move(col_res));
305
37
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
37
        return Status::OK();
318
37
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
55
                            const ColumnPtr& col_right_ptr) const {
275
55
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
55
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
55
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
55
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
55
        DCHECK(!(left_is_const && right_is_const));
282
283
55
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
55
        } else if (!left_is_const && right_is_const) {
295
55
            auto col_res = ColumnUInt8::create();
296
297
55
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
55
            vec_res.resize(col_left->size());
299
55
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
55
                              typename PrimitiveTypeTraits<PT>::CppType,
301
55
                              Op<PT>>::vector_constant(col_left->get_data(),
302
55
                                                       col_right->get_element(0), vec_res);
303
304
55
            block.replace_by_position(result, std::move(col_res));
305
55
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
55
        return Status::OK();
318
55
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.0k
                            const ColumnPtr& col_right_ptr) const {
275
20.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.0k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
20.0k
        } else if (!left_is_const && right_is_const) {
295
20.0k
            auto col_res = ColumnUInt8::create();
296
297
20.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20.0k
            vec_res.resize(col_left->size());
299
20.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20.0k
                                                       col_right->get_element(0), vec_res);
303
304
20.0k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
20.0k
        return Status::OK();
318
20.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
441
                            const ColumnPtr& col_right_ptr) const {
275
441
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
441
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
441
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
441
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
441
        DCHECK(!(left_is_const && right_is_const));
282
283
441
        if (!left_is_const && !right_is_const) {
284
18
            auto col_res = ColumnUInt8::create();
285
286
18
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
18
            vec_res.resize(col_left->get_data().size());
288
18
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
18
                              typename PrimitiveTypeTraits<PT>::CppType,
290
18
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
18
                                                     vec_res);
292
293
18
            block.replace_by_position(result, std::move(col_res));
294
423
        } else if (!left_is_const && right_is_const) {
295
423
            auto col_res = ColumnUInt8::create();
296
297
423
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
423
            vec_res.resize(col_left->size());
299
423
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
423
                              typename PrimitiveTypeTraits<PT>::CppType,
301
423
                              Op<PT>>::vector_constant(col_left->get_data(),
302
423
                                                       col_right->get_element(0), vec_res);
303
304
423
            block.replace_by_position(result, std::move(col_res));
305
423
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
441
        return Status::OK();
318
441
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
40
                            const ColumnPtr& col_right_ptr) const {
275
40
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
40
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
40
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
40
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
40
        DCHECK(!(left_is_const && right_is_const));
282
283
40
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
40
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
40
        return Status::OK();
318
40
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11
                            const ColumnPtr& col_right_ptr) const {
275
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11
        DCHECK(!(left_is_const && right_is_const));
282
283
11
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
11
        return Status::OK();
318
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
86
                            const ColumnPtr& col_right_ptr) const {
275
86
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
86
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
86
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
86
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
86
        DCHECK(!(left_is_const && right_is_const));
282
283
86
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
66
        } else if (!left_is_const && right_is_const) {
295
66
            auto col_res = ColumnUInt8::create();
296
297
66
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
66
            vec_res.resize(col_left->size());
299
66
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
66
                              typename PrimitiveTypeTraits<PT>::CppType,
301
66
                              Op<PT>>::vector_constant(col_left->get_data(),
302
66
                                                       col_right->get_element(0), vec_res);
303
304
66
            block.replace_by_position(result, std::move(col_res));
305
66
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
86
        return Status::OK();
318
86
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
211
                            const ColumnPtr& col_right_ptr) const {
275
211
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
211
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
211
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
211
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
211
        DCHECK(!(left_is_const && right_is_const));
282
283
211
        if (!left_is_const && !right_is_const) {
284
55
            auto col_res = ColumnUInt8::create();
285
286
55
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
55
            vec_res.resize(col_left->get_data().size());
288
55
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
55
                              typename PrimitiveTypeTraits<PT>::CppType,
290
55
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
55
                                                     vec_res);
292
293
55
            block.replace_by_position(result, std::move(col_res));
294
156
        } else if (!left_is_const && right_is_const) {
295
156
            auto col_res = ColumnUInt8::create();
296
297
156
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
156
            vec_res.resize(col_left->size());
299
156
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
156
                              typename PrimitiveTypeTraits<PT>::CppType,
301
156
                              Op<PT>>::vector_constant(col_left->get_data(),
302
156
                                                       col_right->get_element(0), vec_res);
303
304
156
            block.replace_by_position(result, std::move(col_res));
305
156
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
211
        return Status::OK();
318
211
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
72
                            const ColumnPtr& col_right_ptr) const {
275
72
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
72
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
72
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
72
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
72
        DCHECK(!(left_is_const && right_is_const));
282
283
72
        if (!left_is_const && !right_is_const) {
284
72
            auto col_res = ColumnUInt8::create();
285
286
72
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
72
            vec_res.resize(col_left->get_data().size());
288
72
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
72
                              typename PrimitiveTypeTraits<PT>::CppType,
290
72
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
72
                                                     vec_res);
292
293
72
            block.replace_by_position(result, std::move(col_res));
294
72
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
72
        return Status::OK();
318
72
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.15k
                            const ColumnPtr& col_right_ptr) const {
275
2.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.15k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.15k
        if (!left_is_const && !right_is_const) {
284
1.74k
            auto col_res = ColumnUInt8::create();
285
286
1.74k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.74k
            vec_res.resize(col_left->get_data().size());
288
1.74k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.74k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.74k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.74k
                                                     vec_res);
292
293
1.74k
            block.replace_by_position(result, std::move(col_res));
294
1.74k
        } else if (!left_is_const && right_is_const) {
295
415
            auto col_res = ColumnUInt8::create();
296
297
415
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
415
            vec_res.resize(col_left->size());
299
415
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
415
                              typename PrimitiveTypeTraits<PT>::CppType,
301
415
                              Op<PT>>::vector_constant(col_left->get_data(),
302
415
                                                       col_right->get_element(0), vec_res);
303
304
415
            block.replace_by_position(result, std::move(col_res));
305
415
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.15k
        return Status::OK();
318
2.15k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
433
                            const ColumnPtr& col_right_ptr) const {
275
433
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
433
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
433
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
433
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
433
        DCHECK(!(left_is_const && right_is_const));
282
283
433
        if (!left_is_const && !right_is_const) {
284
222
            auto col_res = ColumnUInt8::create();
285
286
222
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
222
            vec_res.resize(col_left->get_data().size());
288
222
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
222
                              typename PrimitiveTypeTraits<PT>::CppType,
290
222
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
222
                                                     vec_res);
292
293
222
            block.replace_by_position(result, std::move(col_res));
294
222
        } else if (!left_is_const && right_is_const) {
295
211
            auto col_res = ColumnUInt8::create();
296
297
211
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
211
            vec_res.resize(col_left->size());
299
211
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
211
                              typename PrimitiveTypeTraits<PT>::CppType,
301
211
                              Op<PT>>::vector_constant(col_left->get_data(),
302
211
                                                       col_right->get_element(0), vec_res);
303
304
211
            block.replace_by_position(result, std::move(col_res));
305
211
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
433
        return Status::OK();
318
433
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
780
                            const ColumnPtr& col_right_ptr) const {
275
780
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
780
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
780
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
780
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
780
        DCHECK(!(left_is_const && right_is_const));
282
283
781
        if (!left_is_const && !right_is_const) {
284
735
            auto col_res = ColumnUInt8::create();
285
286
735
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
735
            vec_res.resize(col_left->get_data().size());
288
735
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
735
                              typename PrimitiveTypeTraits<PT>::CppType,
290
735
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
735
                                                     vec_res);
292
293
735
            block.replace_by_position(result, std::move(col_res));
294
735
        } else if (!left_is_const && right_is_const) {
295
46
            auto col_res = ColumnUInt8::create();
296
297
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
46
            vec_res.resize(col_left->size());
299
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
46
                              typename PrimitiveTypeTraits<PT>::CppType,
301
46
                              Op<PT>>::vector_constant(col_left->get_data(),
302
46
                                                       col_right->get_element(0), vec_res);
303
304
46
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
780
        return Status::OK();
318
780
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
211
                            const ColumnPtr& col_right_ptr) const {
275
211
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
211
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
211
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
211
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
211
        DCHECK(!(left_is_const && right_is_const));
282
283
211
        if (!left_is_const && !right_is_const) {
284
107
            auto col_res = ColumnUInt8::create();
285
286
107
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
107
            vec_res.resize(col_left->get_data().size());
288
107
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
107
                              typename PrimitiveTypeTraits<PT>::CppType,
290
107
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
107
                                                     vec_res);
292
293
107
            block.replace_by_position(result, std::move(col_res));
294
107
        } else if (!left_is_const && right_is_const) {
295
104
            auto col_res = ColumnUInt8::create();
296
297
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
104
            vec_res.resize(col_left->size());
299
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
104
                              typename PrimitiveTypeTraits<PT>::CppType,
301
104
                              Op<PT>>::vector_constant(col_left->get_data(),
302
104
                                                       col_right->get_element(0), vec_res);
303
304
104
            block.replace_by_position(result, std::move(col_res));
305
104
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
211
        return Status::OK();
318
211
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.95k
                            const ColumnPtr& col_right_ptr) const {
275
1.95k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.95k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.95k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.95k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.95k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.95k
        if (!left_is_const && !right_is_const) {
284
160
            auto col_res = ColumnUInt8::create();
285
286
160
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
160
            vec_res.resize(col_left->get_data().size());
288
160
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
160
                              typename PrimitiveTypeTraits<PT>::CppType,
290
160
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
160
                                                     vec_res);
292
293
160
            block.replace_by_position(result, std::move(col_res));
294
1.79k
        } else if (!left_is_const && right_is_const) {
295
1.79k
            auto col_res = ColumnUInt8::create();
296
297
1.79k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.79k
            vec_res.resize(col_left->size());
299
1.79k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.79k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.79k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.79k
                                                       col_right->get_element(0), vec_res);
303
304
1.79k
            block.replace_by_position(result, std::move(col_res));
305
1.79k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.95k
        return Status::OK();
318
1.95k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.20k
                            const ColumnPtr& col_right_ptr) const {
275
1.20k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.20k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.20k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.20k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.20k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.20k
        if (!left_is_const && !right_is_const) {
284
217
            auto col_res = ColumnUInt8::create();
285
286
217
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
217
            vec_res.resize(col_left->get_data().size());
288
217
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
217
                              typename PrimitiveTypeTraits<PT>::CppType,
290
217
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
217
                                                     vec_res);
292
293
217
            block.replace_by_position(result, std::move(col_res));
294
991
        } else if (!left_is_const && right_is_const) {
295
991
            auto col_res = ColumnUInt8::create();
296
297
991
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
991
            vec_res.resize(col_left->size());
299
991
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
991
                              typename PrimitiveTypeTraits<PT>::CppType,
301
991
                              Op<PT>>::vector_constant(col_left->get_data(),
302
991
                                                       col_right->get_element(0), vec_res);
303
304
991
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.20k
        return Status::OK();
318
1.20k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
197
                            const ColumnPtr& col_right_ptr) const {
275
197
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
197
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
197
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
197
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
197
        DCHECK(!(left_is_const && right_is_const));
282
283
197
        if (!left_is_const && !right_is_const) {
284
184
            auto col_res = ColumnUInt8::create();
285
286
184
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
184
            vec_res.resize(col_left->get_data().size());
288
184
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
184
                              typename PrimitiveTypeTraits<PT>::CppType,
290
184
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
184
                                                     vec_res);
292
293
184
            block.replace_by_position(result, std::move(col_res));
294
184
        } else if (!left_is_const && right_is_const) {
295
13
            auto col_res = ColumnUInt8::create();
296
297
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13
            vec_res.resize(col_left->size());
299
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13
                                                       col_right->get_element(0), vec_res);
303
304
13
            block.replace_by_position(result, std::move(col_res));
305
13
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
197
        return Status::OK();
318
197
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
136
                            const ColumnPtr& col_right_ptr) const {
275
136
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
136
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
136
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
136
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
136
        DCHECK(!(left_is_const && right_is_const));
282
283
136
        if (!left_is_const && !right_is_const) {
284
117
            auto col_res = ColumnUInt8::create();
285
286
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
117
            vec_res.resize(col_left->get_data().size());
288
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
117
                              typename PrimitiveTypeTraits<PT>::CppType,
290
117
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
117
                                                     vec_res);
292
293
117
            block.replace_by_position(result, std::move(col_res));
294
117
        } else if (!left_is_const && right_is_const) {
295
19
            auto col_res = ColumnUInt8::create();
296
297
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
19
            vec_res.resize(col_left->size());
299
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
19
                              typename PrimitiveTypeTraits<PT>::CppType,
301
19
                              Op<PT>>::vector_constant(col_left->get_data(),
302
19
                                                       col_right->get_element(0), vec_res);
303
304
19
            block.replace_by_position(result, std::move(col_res));
305
19
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
136
        return Status::OK();
318
136
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
338
                            const ColumnPtr& col_right_ptr) const {
275
338
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
338
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
338
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
338
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
338
        DCHECK(!(left_is_const && right_is_const));
282
283
338
        if (!left_is_const && !right_is_const) {
284
140
            auto col_res = ColumnUInt8::create();
285
286
140
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
140
            vec_res.resize(col_left->get_data().size());
288
140
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
140
                              typename PrimitiveTypeTraits<PT>::CppType,
290
140
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
140
                                                     vec_res);
292
293
140
            block.replace_by_position(result, std::move(col_res));
294
198
        } else if (!left_is_const && right_is_const) {
295
198
            auto col_res = ColumnUInt8::create();
296
297
198
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
198
            vec_res.resize(col_left->size());
299
198
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
198
                              typename PrimitiveTypeTraits<PT>::CppType,
301
198
                              Op<PT>>::vector_constant(col_left->get_data(),
302
198
                                                       col_right->get_element(0), vec_res);
303
304
198
            block.replace_by_position(result, std::move(col_res));
305
198
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
338
        return Status::OK();
318
338
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
123
                            const ColumnPtr& col_right_ptr) const {
275
123
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
123
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
123
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
123
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
123
        DCHECK(!(left_is_const && right_is_const));
282
283
123
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
123
        } else if (!left_is_const && right_is_const) {
295
123
            auto col_res = ColumnUInt8::create();
296
297
123
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
123
            vec_res.resize(col_left->size());
299
123
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
123
                              typename PrimitiveTypeTraits<PT>::CppType,
301
123
                              Op<PT>>::vector_constant(col_left->get_data(),
302
123
                                                       col_right->get_element(0), vec_res);
303
304
123
            block.replace_by_position(result, std::move(col_res));
305
123
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
123
        return Status::OK();
318
123
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
5.92k
                            const ColumnPtr& col_right_ptr) const {
275
5.92k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
5.92k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
5.92k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
5.92k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
5.92k
        DCHECK(!(left_is_const && right_is_const));
282
283
5.92k
        if (!left_is_const && !right_is_const) {
284
434
            auto col_res = ColumnUInt8::create();
285
286
434
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
434
            vec_res.resize(col_left->get_data().size());
288
434
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
434
                              typename PrimitiveTypeTraits<PT>::CppType,
290
434
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
434
                                                     vec_res);
292
293
434
            block.replace_by_position(result, std::move(col_res));
294
5.49k
        } else if (!left_is_const && right_is_const) {
295
5.49k
            auto col_res = ColumnUInt8::create();
296
297
5.49k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.49k
            vec_res.resize(col_left->size());
299
5.49k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.49k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.49k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.49k
                                                       col_right->get_element(0), vec_res);
303
304
5.49k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
5.92k
        return Status::OK();
318
5.92k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
264
                            const ColumnPtr& col_right_ptr) const {
275
264
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
264
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
264
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
264
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
264
        DCHECK(!(left_is_const && right_is_const));
282
283
264
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
264
        } else if (!left_is_const && right_is_const) {
295
264
            auto col_res = ColumnUInt8::create();
296
297
264
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
264
            vec_res.resize(col_left->size());
299
264
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
264
                              typename PrimitiveTypeTraits<PT>::CppType,
301
264
                              Op<PT>>::vector_constant(col_left->get_data(),
302
264
                                                       col_right->get_element(0), vec_res);
303
304
264
            block.replace_by_position(result, std::move(col_res));
305
264
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
264
        return Status::OK();
318
264
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
45
                            const ColumnPtr& col_right_ptr) const {
275
45
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
45
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
45
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
45
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
45
        DCHECK(!(left_is_const && right_is_const));
282
283
45
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
44
        } else if (!left_is_const && right_is_const) {
295
44
            auto col_res = ColumnUInt8::create();
296
297
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
44
            vec_res.resize(col_left->size());
299
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
44
                              typename PrimitiveTypeTraits<PT>::CppType,
301
44
                              Op<PT>>::vector_constant(col_left->get_data(),
302
44
                                                       col_right->get_element(0), vec_res);
303
304
44
            block.replace_by_position(result, std::move(col_res));
305
44
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
45
        return Status::OK();
318
45
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
81
                            const ColumnPtr& col_right_ptr) const {
275
81
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
81
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
81
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
81
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
81
        DCHECK(!(left_is_const && right_is_const));
282
283
81
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
81
        } else if (!left_is_const && right_is_const) {
295
81
            auto col_res = ColumnUInt8::create();
296
297
81
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
81
            vec_res.resize(col_left->size());
299
81
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
81
                              typename PrimitiveTypeTraits<PT>::CppType,
301
81
                              Op<PT>>::vector_constant(col_left->get_data(),
302
81
                                                       col_right->get_element(0), vec_res);
303
304
81
            block.replace_by_position(result, std::move(col_res));
305
81
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
81
        return Status::OK();
318
81
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.0k
                            const ColumnPtr& col_right_ptr) const {
275
20.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.0k
        if (!left_is_const && !right_is_const) {
284
60
            auto col_res = ColumnUInt8::create();
285
286
60
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
60
            vec_res.resize(col_left->get_data().size());
288
60
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
60
                              typename PrimitiveTypeTraits<PT>::CppType,
290
60
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
60
                                                     vec_res);
292
293
60
            block.replace_by_position(result, std::move(col_res));
294
20.0k
        } else if (!left_is_const && right_is_const) {
295
20.0k
            auto col_res = ColumnUInt8::create();
296
297
20.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20.0k
            vec_res.resize(col_left->size());
299
20.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20.0k
                                                       col_right->get_element(0), vec_res);
303
304
20.0k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
20.0k
        return Status::OK();
318
20.0k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
499
                            const ColumnPtr& col_right_ptr) const {
275
499
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
499
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
499
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
499
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
499
        DCHECK(!(left_is_const && right_is_const));
282
283
499
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
460
        } else if (!left_is_const && right_is_const) {
295
460
            auto col_res = ColumnUInt8::create();
296
297
460
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
460
            vec_res.resize(col_left->size());
299
460
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
460
                              typename PrimitiveTypeTraits<PT>::CppType,
301
460
                              Op<PT>>::vector_constant(col_left->get_data(),
302
460
                                                       col_right->get_element(0), vec_res);
303
304
460
            block.replace_by_position(result, std::move(col_res));
305
460
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
499
        return Status::OK();
318
499
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
38
                            const ColumnPtr& col_right_ptr) const {
275
38
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
38
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
38
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
38
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
38
        DCHECK(!(left_is_const && right_is_const));
282
283
38
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
38
        } else if (!left_is_const && right_is_const) {
295
38
            auto col_res = ColumnUInt8::create();
296
297
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
38
            vec_res.resize(col_left->size());
299
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
38
                              typename PrimitiveTypeTraits<PT>::CppType,
301
38
                              Op<PT>>::vector_constant(col_left->get_data(),
302
38
                                                       col_right->get_element(0), vec_res);
303
304
38
            block.replace_by_position(result, std::move(col_res));
305
38
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
38
        return Status::OK();
318
38
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10
                            const ColumnPtr& col_right_ptr) const {
275
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10
        DCHECK(!(left_is_const && right_is_const));
282
283
10
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10
        return Status::OK();
318
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
80
                            const ColumnPtr& col_right_ptr) const {
275
80
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
80
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
80
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
80
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
80
        DCHECK(!(left_is_const && right_is_const));
282
283
80
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
60
        } else if (!left_is_const && right_is_const) {
295
60
            auto col_res = ColumnUInt8::create();
296
297
60
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
60
            vec_res.resize(col_left->size());
299
60
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
60
                              typename PrimitiveTypeTraits<PT>::CppType,
301
60
                              Op<PT>>::vector_constant(col_left->get_data(),
302
60
                                                       col_right->get_element(0), vec_res);
303
304
60
            block.replace_by_position(result, std::move(col_res));
305
60
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
80
        return Status::OK();
318
80
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
160
                            const ColumnPtr& col_right_ptr) const {
275
160
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
160
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
160
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
160
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
160
        DCHECK(!(left_is_const && right_is_const));
282
283
160
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
140
        } else if (!left_is_const && right_is_const) {
295
140
            auto col_res = ColumnUInt8::create();
296
297
140
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
140
            vec_res.resize(col_left->size());
299
140
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
140
                              typename PrimitiveTypeTraits<PT>::CppType,
301
140
                              Op<PT>>::vector_constant(col_left->get_data(),
302
140
                                                       col_right->get_element(0), vec_res);
303
304
140
            block.replace_by_position(result, std::move(col_res));
305
140
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
160
        return Status::OK();
318
160
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
319
320
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
321
11.9k
                           const ColumnWithTypeAndName& col_right) const {
322
11.9k
        auto call = [&](const auto& type) -> bool {
323
11.9k
            using DispatchType = std::decay_t<decltype(type)>;
324
11.9k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
11.9k
                    block, result, col_left, col_right);
326
11.9k
            return true;
327
11.9k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
231
        auto call = [&](const auto& type) -> bool {
323
231
            using DispatchType = std::decay_t<decltype(type)>;
324
231
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
231
                    block, result, col_left, col_right);
326
231
            return true;
327
231
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
267
        auto call = [&](const auto& type) -> bool {
323
267
            using DispatchType = std::decay_t<decltype(type)>;
324
267
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
267
                    block, result, col_left, col_right);
326
267
            return true;
327
267
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
1.35k
        auto call = [&](const auto& type) -> bool {
323
1.35k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.35k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.35k
                    block, result, col_left, col_right);
326
1.35k
            return true;
327
1.35k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
324
        auto call = [&](const auto& type) -> bool {
323
324
            using DispatchType = std::decay_t<decltype(type)>;
324
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
324
                    block, result, col_left, col_right);
326
324
            return true;
327
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
22
        auto call = [&](const auto& type) -> bool {
323
22
            using DispatchType = std::decay_t<decltype(type)>;
324
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
22
                    block, result, col_left, col_right);
326
22
            return true;
327
22
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
4.12k
        auto call = [&](const auto& type) -> bool {
323
4.12k
            using DispatchType = std::decay_t<decltype(type)>;
324
4.12k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
4.12k
                    block, result, col_left, col_right);
326
4.12k
            return true;
327
4.12k
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
1.50k
        auto call = [&](const auto& type) -> bool {
323
1.50k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.50k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.50k
                    block, result, col_left, col_right);
326
1.50k
            return true;
327
1.50k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
2
        auto call = [&](const auto& type) -> bool {
323
2
            using DispatchType = std::decay_t<decltype(type)>;
324
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2
                    block, result, col_left, col_right);
326
2
            return true;
327
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
6
        auto call = [&](const auto& type) -> bool {
323
6
            using DispatchType = std::decay_t<decltype(type)>;
324
6
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
6
                    block, result, col_left, col_right);
326
6
            return true;
327
6
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
240
        auto call = [&](const auto& type) -> bool {
323
240
            using DispatchType = std::decay_t<decltype(type)>;
324
240
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
240
                    block, result, col_left, col_right);
326
240
            return true;
327
240
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
35
        auto call = [&](const auto& type) -> bool {
323
35
            using DispatchType = std::decay_t<decltype(type)>;
324
35
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
35
                    block, result, col_left, col_right);
326
35
            return true;
327
35
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
27
        auto call = [&](const auto& type) -> bool {
323
27
            using DispatchType = std::decay_t<decltype(type)>;
324
27
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
27
                    block, result, col_left, col_right);
326
27
            return true;
327
27
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
206
        auto call = [&](const auto& type) -> bool {
323
206
            using DispatchType = std::decay_t<decltype(type)>;
324
206
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
206
                    block, result, col_left, col_right);
326
206
            return true;
327
206
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
245
        auto call = [&](const auto& type) -> bool {
323
245
            using DispatchType = std::decay_t<decltype(type)>;
324
245
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
245
                    block, result, col_left, col_right);
326
245
            return true;
327
245
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
485
        auto call = [&](const auto& type) -> bool {
323
485
            using DispatchType = std::decay_t<decltype(type)>;
324
485
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
485
                    block, result, col_left, col_right);
326
485
            return true;
327
485
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
11
        auto call = [&](const auto& type) -> bool {
323
11
            using DispatchType = std::decay_t<decltype(type)>;
324
11
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
11
                    block, result, col_left, col_right);
326
11
            return true;
327
11
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
2.06k
        auto call = [&](const auto& type) -> bool {
323
2.06k
            using DispatchType = std::decay_t<decltype(type)>;
324
2.06k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2.06k
                    block, result, col_left, col_right);
326
2.06k
            return true;
327
2.06k
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
709
        auto call = [&](const auto& type) -> bool {
323
709
            using DispatchType = std::decay_t<decltype(type)>;
324
709
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
709
                    block, result, col_left, col_right);
326
709
            return true;
327
709
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
22
        auto call = [&](const auto& type) -> bool {
323
22
            using DispatchType = std::decay_t<decltype(type)>;
324
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
22
                    block, result, col_left, col_right);
326
22
            return true;
327
22
        };
328
329
11.9k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
11.9k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
11.9k
        return Status::OK();
340
11.9k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.88k
                           const ColumnWithTypeAndName& col_right) const {
322
1.88k
        auto call = [&](const auto& type) -> bool {
323
1.88k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.88k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.88k
                    block, result, col_left, col_right);
326
1.88k
            return true;
327
1.88k
        };
328
329
1.88k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
1.88k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
1.88k
        return Status::OK();
340
1.88k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
415
                           const ColumnWithTypeAndName& col_right) const {
322
415
        auto call = [&](const auto& type) -> bool {
323
415
            using DispatchType = std::decay_t<decltype(type)>;
324
415
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
415
                    block, result, col_left, col_right);
326
415
            return true;
327
415
        };
328
329
415
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
415
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
415
        return Status::OK();
340
415
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
5.64k
                           const ColumnWithTypeAndName& col_right) const {
322
5.64k
        auto call = [&](const auto& type) -> bool {
323
5.64k
            using DispatchType = std::decay_t<decltype(type)>;
324
5.64k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
5.64k
                    block, result, col_left, col_right);
326
5.64k
            return true;
327
5.64k
        };
328
329
5.64k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
5.64k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
5.64k
        return Status::OK();
340
5.64k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
308
                           const ColumnWithTypeAndName& col_right) const {
322
308
        auto call = [&](const auto& type) -> bool {
323
308
            using DispatchType = std::decay_t<decltype(type)>;
324
308
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
308
                    block, result, col_left, col_right);
326
308
            return true;
327
308
        };
328
329
308
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
308
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
308
        return Status::OK();
340
308
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
937
                           const ColumnWithTypeAndName& col_right) const {
322
937
        auto call = [&](const auto& type) -> bool {
323
937
            using DispatchType = std::decay_t<decltype(type)>;
324
937
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
937
                    block, result, col_left, col_right);
326
937
            return true;
327
937
        };
328
329
937
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
937
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
937
        return Status::OK();
340
937
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
2.80k
                           const ColumnWithTypeAndName& col_right) const {
322
2.80k
        auto call = [&](const auto& type) -> bool {
323
2.80k
            using DispatchType = std::decay_t<decltype(type)>;
324
2.80k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2.80k
                    block, result, col_left, col_right);
326
2.80k
            return true;
327
2.80k
        };
328
329
2.80k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
2.80k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
2.80k
        return Status::OK();
340
2.80k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
22.5k
                          const IColumn* c1) const {
344
22.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
22.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
22.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
22.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
22.5k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
22.5k
        DCHECK(!(c0_const && c1_const));
353
22.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
22.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
22.5k
        ColumnString::Offset c0_const_size = 0;
356
22.5k
        ColumnString::Offset c1_const_size = 0;
357
358
22.5k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
22.5k
        if (c1_const) {
372
21.5k
            const ColumnString* c1_const_string =
373
21.5k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
21.5k
            if (c1_const_string) {
376
21.5k
                c1_const_chars = &c1_const_string->get_chars();
377
21.5k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
21.5k
        }
383
384
22.5k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
22.5k
        auto c_res = ColumnUInt8::create();
387
22.5k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
22.5k
        vec_res.resize(c0->size());
389
390
22.5k
        if (c0_string && c1_string) {
391
993
            StringImpl::string_vector_string_vector(
392
993
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
993
                    c1_string->get_offsets(), vec_res);
394
21.5k
        } else if (c0_string && c1_const) {
395
21.5k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
21.5k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
22.5k
        block.replace_by_position(result, std::move(c_res));
406
22.5k
        return Status::OK();
407
22.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
20.0k
                          const IColumn* c1) const {
344
20.0k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
20.0k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
20.0k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
20.0k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
20.0k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
20.0k
        DCHECK(!(c0_const && c1_const));
353
20.0k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
20.0k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
20.0k
        ColumnString::Offset c0_const_size = 0;
356
20.0k
        ColumnString::Offset c1_const_size = 0;
357
358
20.0k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
20.0k
        if (c1_const) {
372
19.4k
            const ColumnString* c1_const_string =
373
19.4k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
19.4k
            if (c1_const_string) {
376
19.4k
                c1_const_chars = &c1_const_string->get_chars();
377
19.4k
                c1_const_size = c1_const_string->get_offsets()[0];
378
19.4k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
19.4k
        }
383
384
20.0k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
20.0k
        auto c_res = ColumnUInt8::create();
387
20.0k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
20.0k
        vec_res.resize(c0->size());
389
390
20.0k
        if (c0_string && c1_string) {
391
526
            StringImpl::string_vector_string_vector(
392
526
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
526
                    c1_string->get_offsets(), vec_res);
394
19.4k
        } else if (c0_string && c1_const) {
395
19.4k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
19.4k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
20.0k
        block.replace_by_position(result, std::move(c_res));
406
20.0k
        return Status::OK();
407
20.0k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
749
                          const IColumn* c1) const {
344
749
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
749
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
749
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
749
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
749
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
749
        DCHECK(!(c0_const && c1_const));
353
749
        const ColumnString::Chars* c0_const_chars = nullptr;
354
749
        const ColumnString::Chars* c1_const_chars = nullptr;
355
749
        ColumnString::Offset c0_const_size = 0;
356
749
        ColumnString::Offset c1_const_size = 0;
357
358
749
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
749
        if (c1_const) {
372
748
            const ColumnString* c1_const_string =
373
748
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
748
            if (c1_const_string) {
376
748
                c1_const_chars = &c1_const_string->get_chars();
377
748
                c1_const_size = c1_const_string->get_offsets()[0];
378
748
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
748
        }
383
384
749
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
749
        auto c_res = ColumnUInt8::create();
387
749
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
749
        vec_res.resize(c0->size());
389
390
749
        if (c0_string && c1_string) {
391
1
            StringImpl::string_vector_string_vector(
392
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
1
                    c1_string->get_offsets(), vec_res);
394
748
        } else if (c0_string && c1_const) {
395
748
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
748
                                               *c1_const_chars, c1_const_size, vec_res);
397
748
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
749
        block.replace_by_position(result, std::move(c_res));
406
749
        return Status::OK();
407
749
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
197
                          const IColumn* c1) const {
344
197
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
197
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
197
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
197
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
197
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
197
        DCHECK(!(c0_const && c1_const));
353
197
        const ColumnString::Chars* c0_const_chars = nullptr;
354
197
        const ColumnString::Chars* c1_const_chars = nullptr;
355
197
        ColumnString::Offset c0_const_size = 0;
356
197
        ColumnString::Offset c1_const_size = 0;
357
358
197
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
197
        if (c1_const) {
372
195
            const ColumnString* c1_const_string =
373
195
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
195
            if (c1_const_string) {
376
195
                c1_const_chars = &c1_const_string->get_chars();
377
195
                c1_const_size = c1_const_string->get_offsets()[0];
378
195
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
195
        }
383
384
197
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
197
        auto c_res = ColumnUInt8::create();
387
197
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
197
        vec_res.resize(c0->size());
389
390
197
        if (c0_string && c1_string) {
391
2
            StringImpl::string_vector_string_vector(
392
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
2
                    c1_string->get_offsets(), vec_res);
394
195
        } else if (c0_string && c1_const) {
395
195
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
195
                                               *c1_const_chars, c1_const_size, vec_res);
397
195
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
197
        block.replace_by_position(result, std::move(c_res));
406
197
        return Status::OK();
407
197
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
495
                          const IColumn* c1) const {
344
495
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
495
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
495
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
495
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
495
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
495
        DCHECK(!(c0_const && c1_const));
353
495
        const ColumnString::Chars* c0_const_chars = nullptr;
354
495
        const ColumnString::Chars* c1_const_chars = nullptr;
355
495
        ColumnString::Offset c0_const_size = 0;
356
495
        ColumnString::Offset c1_const_size = 0;
357
358
495
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
495
        if (c1_const) {
372
448
            const ColumnString* c1_const_string =
373
448
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
449
            if (c1_const_string) {
376
449
                c1_const_chars = &c1_const_string->get_chars();
377
449
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
448
        }
383
384
496
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
496
        auto c_res = ColumnUInt8::create();
387
496
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
496
        vec_res.resize(c0->size());
389
390
496
        if (c0_string && c1_string) {
391
46
            StringImpl::string_vector_string_vector(
392
46
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
46
                    c1_string->get_offsets(), vec_res);
394
450
        } else if (c0_string && c1_const) {
395
449
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
449
                                               *c1_const_chars, c1_const_size, vec_res);
397
449
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
1
        } else {
402
1
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
1
                                        c0->get_name(), c1->get_name(), name);
404
1
        }
405
495
        block.replace_by_position(result, std::move(c_res));
406
495
        return Status::OK();
407
496
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
633
                          const IColumn* c1) const {
344
633
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
633
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
633
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
633
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
633
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
633
        DCHECK(!(c0_const && c1_const));
353
633
        const ColumnString::Chars* c0_const_chars = nullptr;
354
633
        const ColumnString::Chars* c1_const_chars = nullptr;
355
633
        ColumnString::Offset c0_const_size = 0;
356
633
        ColumnString::Offset c1_const_size = 0;
357
358
633
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
633
        if (c1_const) {
372
215
            const ColumnString* c1_const_string =
373
215
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
215
            if (c1_const_string) {
376
215
                c1_const_chars = &c1_const_string->get_chars();
377
215
                c1_const_size = c1_const_string->get_offsets()[0];
378
215
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
215
        }
383
384
633
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
633
        auto c_res = ColumnUInt8::create();
387
633
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
633
        vec_res.resize(c0->size());
389
390
633
        if (c0_string && c1_string) {
391
418
            StringImpl::string_vector_string_vector(
392
418
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
418
                    c1_string->get_offsets(), vec_res);
394
418
        } else if (c0_string && c1_const) {
395
215
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
215
                                               *c1_const_chars, c1_const_size, vec_res);
397
215
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
633
        block.replace_by_position(result, std::move(c_res));
406
633
        return Status::OK();
407
633
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
465
                          const IColumn* c1) const {
344
465
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
465
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
465
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
465
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
465
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
465
        DCHECK(!(c0_const && c1_const));
353
465
        const ColumnString::Chars* c0_const_chars = nullptr;
354
465
        const ColumnString::Chars* c1_const_chars = nullptr;
355
465
        ColumnString::Offset c0_const_size = 0;
356
465
        ColumnString::Offset c1_const_size = 0;
357
358
465
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
465
        if (c1_const) {
372
465
            const ColumnString* c1_const_string =
373
465
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
465
            if (c1_const_string) {
376
465
                c1_const_chars = &c1_const_string->get_chars();
377
465
                c1_const_size = c1_const_string->get_offsets()[0];
378
465
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
465
        }
383
384
465
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
465
        auto c_res = ColumnUInt8::create();
387
465
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
465
        vec_res.resize(c0->size());
389
390
465
        if (c0_string && c1_string) {
391
0
            StringImpl::string_vector_string_vector(
392
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
0
                    c1_string->get_offsets(), vec_res);
394
465
        } else if (c0_string && c1_const) {
395
465
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
465
                                               *c1_const_chars, c1_const_size, vec_res);
397
465
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
465
        block.replace_by_position(result, std::move(c_res));
406
465
        return Status::OK();
407
465
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
109
                                         const IColumn* c1) const {
411
109
        bool c0_const = is_column_const(*c0);
412
109
        bool c1_const = is_column_const(*c1);
413
414
109
        DCHECK(!(c0_const && c1_const));
415
416
109
        auto c_res = ColumnUInt8::create();
417
109
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
109
        vec_res.resize(c0->size());
419
420
109
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
109
        } else if (c1_const) {
423
100
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
100
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
109
        block.replace_by_position(result, std::move(c_res));
429
109
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
17
                                         const IColumn* c1) const {
411
17
        bool c0_const = is_column_const(*c0);
412
17
        bool c1_const = is_column_const(*c1);
413
414
17
        DCHECK(!(c0_const && c1_const));
415
416
17
        auto c_res = ColumnUInt8::create();
417
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
17
        vec_res.resize(c0->size());
419
420
17
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
17
        } else if (c1_const) {
423
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
13
        } else {
425
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
4
        }
427
428
17
        block.replace_by_position(result, std::move(c_res));
429
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
8
                                         const IColumn* c1) const {
411
8
        bool c0_const = is_column_const(*c0);
412
8
        bool c1_const = is_column_const(*c1);
413
414
8
        DCHECK(!(c0_const && c1_const));
415
416
8
        auto c_res = ColumnUInt8::create();
417
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
8
        vec_res.resize(c0->size());
419
420
8
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
8
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
8
        block.replace_by_position(result, std::move(c_res));
429
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
9
                                         const IColumn* c1) const {
411
9
        bool c0_const = is_column_const(*c0);
412
9
        bool c1_const = is_column_const(*c1);
413
414
9
        DCHECK(!(c0_const && c1_const));
415
416
9
        auto c_res = ColumnUInt8::create();
417
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
9
        vec_res.resize(c0->size());
419
420
9
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
9
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
9
        block.replace_by_position(result, std::move(c_res));
429
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
32
                                         const IColumn* c1) const {
411
32
        bool c0_const = is_column_const(*c0);
412
32
        bool c1_const = is_column_const(*c1);
413
414
32
        DCHECK(!(c0_const && c1_const));
415
416
32
        auto c_res = ColumnUInt8::create();
417
32
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
32
        vec_res.resize(c0->size());
419
420
32
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
32
        } else if (c1_const) {
423
31
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
31
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
32
        block.replace_by_position(result, std::move(c_res));
429
32
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
11
                                         const IColumn* c1) const {
411
11
        bool c0_const = is_column_const(*c0);
412
11
        bool c1_const = is_column_const(*c1);
413
414
11
        DCHECK(!(c0_const && c1_const));
415
416
11
        auto c_res = ColumnUInt8::create();
417
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
11
        vec_res.resize(c0->size());
419
420
11
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
11
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
3
        }
427
428
11
        block.replace_by_position(result, std::move(c_res));
429
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
32
                                         const IColumn* c1) const {
411
32
        bool c0_const = is_column_const(*c0);
412
32
        bool c1_const = is_column_const(*c1);
413
414
32
        DCHECK(!(c0_const && c1_const));
415
416
32
        auto c_res = ColumnUInt8::create();
417
32
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
32
        vec_res.resize(c0->size());
419
420
32
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
32
        } else if (c1_const) {
423
32
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
32
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
32
        block.replace_by_position(result, std::move(c_res));
429
32
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
109
                           const ColumnWithTypeAndName& c1) const {
433
109
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
109
        return Status::OK();
435
109
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
17
                           const ColumnWithTypeAndName& c1) const {
433
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
17
        return Status::OK();
435
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
8
                           const ColumnWithTypeAndName& c1) const {
433
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
8
        return Status::OK();
435
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
9
                           const ColumnWithTypeAndName& c1) const {
433
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
9
        return Status::OK();
435
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
32
                           const ColumnWithTypeAndName& c1) const {
433
32
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
32
        return Status::OK();
435
32
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
11
                           const ColumnWithTypeAndName& c1) const {
433
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
11
        return Status::OK();
435
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
32
                           const ColumnWithTypeAndName& c1) const {
433
32
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
32
        return Status::OK();
435
32
    }
436
437
public:
438
216
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
62
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
34
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
38
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
80
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
439
440
508k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
425k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.36k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.74k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
35.1k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.36k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
36.0k
    size_t get_number_of_arguments() const override { return 2; }
441
442
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
443
508k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
508k
        return std::make_shared<DataTypeUInt8>();
445
508k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
425k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
425k
        return std::make_shared<DataTypeUInt8>();
445
425k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.36k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.36k
        return std::make_shared<DataTypeUInt8>();
445
1.36k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.74k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.74k
        return std::make_shared<DataTypeUInt8>();
445
6.74k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
35.1k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
35.1k
        return std::make_shared<DataTypeUInt8>();
445
35.1k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.36k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.36k
        return std::make_shared<DataTypeUInt8>();
445
3.36k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
36.0k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
36.0k
        return std::make_shared<DataTypeUInt8>();
445
36.0k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.62k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.62k
        DCHECK(arguments.size() == 1);
454
1.62k
        DCHECK(data_type_with_names.size() == 1);
455
1.62k
        DCHECK(iterators.size() == 1);
456
1.62k
        auto* iter = iterators[0];
457
1.62k
        auto data_type_with_name = data_type_with_names[0];
458
1.62k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.62k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
432
            return Status::OK();
463
432
        }
464
1.19k
        segment_v2::InvertedIndexQueryType query_type;
465
1.19k
        std::string_view name_view(name);
466
1.19k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
729
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
729
        } else if (name_view == NameLess::name) {
469
117
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
344
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
246
        } else if (name_view == NameGreater::name) {
473
112
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
138
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
1.19k
        if (segment_v2::is_range_query(query_type) &&
481
1.19k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.02k
        Field param_value;
486
1.02k
        arguments[0].column->get(0, param_value);
487
1.02k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.02k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.02k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.02k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.02k
                param_type, &param_value, query_param));
494
495
1.02k
        segment_v2::InvertedIndexParam param;
496
1.02k
        param.column_name = data_type_with_name.first;
497
1.02k
        param.column_type = data_type_with_name.second;
498
1.02k
        param.query_value = query_param->get_value();
499
1.02k
        param.query_type = query_type;
500
1.02k
        param.num_rows = num_rows;
501
1.02k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.02k
        param.analyzer_ctx = analyzer_ctx;
503
1.02k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
862
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
862
        if (iter->has_null()) {
506
861
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
861
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
861
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
861
        }
510
862
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
862
        bitmap_result = result;
512
862
        bitmap_result.mask_out_null();
513
514
862
        if (name_view == NameNotEquals::name) {
515
61
            roaring::Roaring full_result;
516
61
            full_result.addRange(0, num_rows);
517
61
            bitmap_result.op_not(&full_result);
518
61
        }
519
520
862
        return Status::OK();
521
862
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
732
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
732
        DCHECK(arguments.size() == 1);
454
732
        DCHECK(data_type_with_names.size() == 1);
455
732
        DCHECK(iterators.size() == 1);
456
732
        auto* iter = iterators[0];
457
732
        auto data_type_with_name = data_type_with_names[0];
458
732
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
732
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
75
            return Status::OK();
463
75
        }
464
657
        segment_v2::InvertedIndexQueryType query_type;
465
657
        std::string_view name_view(name);
466
659
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
659
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
659
        if (segment_v2::is_range_query(query_type) &&
481
659
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
659
        Field param_value;
486
659
        arguments[0].column->get(0, param_value);
487
659
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
657
        auto param_type = arguments[0].type->get_primitive_type();
491
657
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
657
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
657
                param_type, &param_value, query_param));
494
495
657
        segment_v2::InvertedIndexParam param;
496
657
        param.column_name = data_type_with_name.first;
497
657
        param.column_type = data_type_with_name.second;
498
657
        param.query_value = query_param->get_value();
499
657
        param.query_type = query_type;
500
657
        param.num_rows = num_rows;
501
657
        param.roaring = std::make_shared<roaring::Roaring>();
502
657
        param.analyzer_ctx = analyzer_ctx;
503
657
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
609
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
611
        if (iter->has_null()) {
506
611
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
611
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
611
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
611
        }
510
609
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
609
        bitmap_result = result;
512
609
        bitmap_result.mask_out_null();
513
514
609
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
609
        return Status::OK();
521
609
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
77
        DCHECK(arguments.size() == 1);
454
77
        DCHECK(data_type_with_names.size() == 1);
455
77
        DCHECK(iterators.size() == 1);
456
77
        auto* iter = iterators[0];
457
77
        auto data_type_with_name = data_type_with_names[0];
458
77
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
69
        segment_v2::InvertedIndexQueryType query_type;
465
69
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
62
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
62
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
62
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
62
        }
510
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
63
        bitmap_result = result;
512
63
        bitmap_result.mask_out_null();
513
514
63
        if (name_view == NameNotEquals::name) {
515
61
            roaring::Roaring full_result;
516
61
            full_result.addRange(0, num_rows);
517
61
            bitmap_result.op_not(&full_result);
518
61
        }
519
520
63
        return Status::OK();
521
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
174
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
174
        DCHECK(arguments.size() == 1);
454
174
        DCHECK(data_type_with_names.size() == 1);
455
174
        DCHECK(iterators.size() == 1);
456
174
        auto* iter = iterators[0];
457
174
        auto data_type_with_name = data_type_with_names[0];
458
174
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
174
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
113
        segment_v2::InvertedIndexQueryType query_type;
465
113
        std::string_view name_view(name);
466
113
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
113
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
113
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
113
        } else if (name_view == NameGreater::name) {
473
112
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
112
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
1
        } else {
477
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
1
        }
479
480
112
        if (segment_v2::is_range_query(query_type) &&
481
112
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
84
        Field param_value;
486
84
        arguments[0].column->get(0, param_value);
487
84
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
84
        auto param_type = arguments[0].type->get_primitive_type();
491
84
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
84
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
84
                param_type, &param_value, query_param));
494
495
84
        segment_v2::InvertedIndexParam param;
496
84
        param.column_name = data_type_with_name.first;
497
84
        param.column_type = data_type_with_name.second;
498
84
        param.query_value = query_param->get_value();
499
84
        param.query_type = query_type;
500
84
        param.num_rows = num_rows;
501
84
        param.roaring = std::make_shared<roaring::Roaring>();
502
84
        param.analyzer_ctx = analyzer_ctx;
503
84
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
65
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
65
        if (iter->has_null()) {
506
64
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
64
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
64
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
64
        }
510
65
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
65
        bitmap_result = result;
512
65
        bitmap_result.mask_out_null();
513
514
65
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
65
        return Status::OK();
521
65
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
251
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
251
        DCHECK(arguments.size() == 1);
454
251
        DCHECK(data_type_with_names.size() == 1);
455
251
        DCHECK(iterators.size() == 1);
456
251
        auto* iter = iterators[0];
457
251
        auto data_type_with_name = data_type_with_names[0];
458
251
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
251
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
137
        segment_v2::InvertedIndexQueryType query_type;
465
137
        std::string_view name_view(name);
466
138
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
137
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
137
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
137
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
138
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
138
        if (segment_v2::is_range_query(query_type) &&
481
138
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
79
        Field param_value;
486
79
        arguments[0].column->get(0, param_value);
487
79
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
79
        auto param_type = arguments[0].type->get_primitive_type();
491
79
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
79
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
79
                param_type, &param_value, query_param));
494
495
79
        segment_v2::InvertedIndexParam param;
496
79
        param.column_name = data_type_with_name.first;
497
79
        param.column_type = data_type_with_name.second;
498
79
        param.query_value = query_param->get_value();
499
79
        param.query_type = query_type;
500
79
        param.num_rows = num_rows;
501
79
        param.roaring = std::make_shared<roaring::Roaring>();
502
79
        param.analyzer_ctx = analyzer_ctx;
503
79
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
37
        if (iter->has_null()) {
506
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
37
        }
510
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
37
        bitmap_result = result;
512
37
        bitmap_result.mask_out_null();
513
514
37
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
37
        return Status::OK();
521
37
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
177
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
177
        DCHECK(arguments.size() == 1);
454
177
        DCHECK(data_type_with_names.size() == 1);
455
177
        DCHECK(iterators.size() == 1);
456
177
        auto* iter = iterators[0];
457
177
        auto data_type_with_name = data_type_with_names[0];
458
177
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
177
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
116
        segment_v2::InvertedIndexQueryType query_type;
465
116
        std::string_view name_view(name);
466
117
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
117
        } else if (name_view == NameLess::name) {
469
117
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
117
        if (segment_v2::is_range_query(query_type) &&
481
117
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
26
            return Status::OK();
484
26
        }
485
91
        Field param_value;
486
91
        arguments[0].column->get(0, param_value);
487
91
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
91
        auto param_type = arguments[0].type->get_primitive_type();
491
91
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
91
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
91
                param_type, &param_value, query_param));
494
495
91
        segment_v2::InvertedIndexParam param;
496
91
        param.column_name = data_type_with_name.first;
497
91
        param.column_type = data_type_with_name.second;
498
91
        param.query_value = query_param->get_value();
499
91
        param.query_type = query_type;
500
91
        param.num_rows = num_rows;
501
91
        param.roaring = std::make_shared<roaring::Roaring>();
502
91
        param.analyzer_ctx = analyzer_ctx;
503
91
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
69
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
69
        if (iter->has_null()) {
506
68
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
68
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
68
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
68
        }
510
69
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
69
        bitmap_result = result;
512
69
        bitmap_result.mask_out_null();
513
514
69
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
69
        return Status::OK();
521
69
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
211
        DCHECK(arguments.size() == 1);
454
211
        DCHECK(data_type_with_names.size() == 1);
455
211
        DCHECK(iterators.size() == 1);
456
211
        auto* iter = iterators[0];
457
211
        auto data_type_with_name = data_type_with_names[0];
458
211
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
98
        segment_v2::InvertedIndexQueryType query_type;
465
98
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
98
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
98
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        auto param_type = arguments[0].type->get_primitive_type();
491
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
40
                param_type, &param_value, query_param));
494
495
40
        segment_v2::InvertedIndexParam param;
496
40
        param.column_name = data_type_with_name.first;
497
40
        param.column_type = data_type_with_name.second;
498
40
        param.query_value = query_param->get_value();
499
40
        param.query_type = query_type;
500
40
        param.num_rows = num_rows;
501
40
        param.roaring = std::make_shared<roaring::Roaring>();
502
40
        param.analyzer_ctx = analyzer_ctx;
503
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
19
        if (iter->has_null()) {
506
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
19
        }
510
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
19
        bitmap_result = result;
512
19
        bitmap_result.mask_out_null();
513
514
19
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
19
        return Status::OK();
521
19
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
140k
                        uint32_t result, size_t input_rows_count) const override {
525
140k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
140k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
140k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
140k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
140k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
140k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
140k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
140k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
140k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
140k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
246k
        auto can_compare = [](PrimitiveType t) -> bool {
563
246k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
246k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
69.1k
        auto can_compare = [](PrimitiveType t) -> bool {
563
69.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
69.1k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
6.91k
        auto can_compare = [](PrimitiveType t) -> bool {
563
6.91k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.91k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
48.9k
        auto can_compare = [](PrimitiveType t) -> bool {
563
48.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
48.9k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
46.7k
        auto can_compare = [](PrimitiveType t) -> bool {
563
46.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
46.7k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
16.6k
        auto can_compare = [](PrimitiveType t) -> bool {
563
16.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
16.6k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
57.9k
        auto can_compare = [](PrimitiveType t) -> bool {
563
57.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
57.9k
        };
565
566
140k
        if (can_compare(left_type->get_primitive_type()) &&
567
140k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
105k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
105k
        }
575
576
140k
        auto compare_type = left_type->get_primitive_type();
577
140k
        switch (compare_type) {
578
1.16k
        case TYPE_BOOLEAN:
579
1.16k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
12.0k
        case TYPE_DATEV2:
581
12.0k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
1.92k
        case TYPE_DATETIMEV2:
583
1.92k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
16
        case TYPE_TIMESTAMPTZ:
585
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
5.62k
        case TYPE_TINYINT:
587
5.62k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
2.16k
        case TYPE_SMALLINT:
589
2.16k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
57.9k
        case TYPE_INT:
591
57.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
20.6k
        case TYPE_BIGINT:
593
20.6k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
665
        case TYPE_LARGEINT:
595
665
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
70
        case TYPE_IPV4:
597
70
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
48
        case TYPE_IPV6:
599
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
693
        case TYPE_FLOAT:
601
693
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
2.80k
        case TYPE_DOUBLE:
603
2.80k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
476
        case TYPE_DECIMAL32:
609
7.47k
        case TYPE_DECIMAL64:
610
11.8k
        case TYPE_DECIMAL128I:
611
11.9k
        case TYPE_DECIMAL256:
612
11.9k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
11.9k
                                   col_with_type_and_name_right);
614
820
        case TYPE_CHAR:
615
9.32k
        case TYPE_VARCHAR:
616
22.5k
        case TYPE_STRING:
617
22.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
109
        default:
619
109
            return execute_generic(block, result, col_with_type_and_name_left,
620
109
                                   col_with_type_and_name_right);
621
140k
        }
622
0
        return Status::OK();
623
140k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
45.5k
                        uint32_t result, size_t input_rows_count) const override {
525
45.5k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
45.5k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
45.5k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
45.5k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
45.5k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
45.5k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
45.5k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
45.5k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
45.5k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
45.5k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
45.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
45.5k
        };
565
566
45.5k
        if (can_compare(left_type->get_primitive_type()) &&
567
45.5k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
23.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
23.6k
        }
575
576
45.5k
        auto compare_type = left_type->get_primitive_type();
577
45.5k
        switch (compare_type) {
578
859
        case TYPE_BOOLEAN:
579
859
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.14k
        case TYPE_DATEV2:
581
1.14k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
690
        case TYPE_DATETIMEV2:
583
690
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
3.88k
        case TYPE_TINYINT:
587
3.88k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
798
        case TYPE_SMALLINT:
589
798
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
6.30k
        case TYPE_INT:
591
6.30k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
9.33k
        case TYPE_BIGINT:
593
9.33k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
142
        case TYPE_LARGEINT:
595
142
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
31
        case TYPE_IPV4:
597
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
30
        case TYPE_IPV6:
599
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
107
        case TYPE_FLOAT:
601
107
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
297
        case TYPE_DOUBLE:
603
297
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
231
        case TYPE_DECIMAL32:
609
498
        case TYPE_DECIMAL64:
610
1.85k
        case TYPE_DECIMAL128I:
611
1.88k
        case TYPE_DECIMAL256:
612
1.88k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.88k
                                   col_with_type_and_name_right);
614
563
        case TYPE_CHAR:
615
8.13k
        case TYPE_VARCHAR:
616
20.0k
        case TYPE_STRING:
617
20.0k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
17
        default:
619
17
            return execute_generic(block, result, col_with_type_and_name_left,
620
17
                                   col_with_type_and_name_right);
621
45.5k
        }
622
0
        return Status::OK();
623
45.5k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
4.04k
                        uint32_t result, size_t input_rows_count) const override {
525
4.04k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
4.04k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
4.04k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
4.04k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
4.04k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
4.04k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
4.04k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
4.04k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
4.04k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
4.04k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
4.04k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
4.04k
        };
565
566
4.04k
        if (can_compare(left_type->get_primitive_type()) &&
567
4.04k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
2.87k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
2.87k
        }
575
576
4.04k
        auto compare_type = left_type->get_primitive_type();
577
4.04k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
49
        case TYPE_DATEV2:
581
49
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
2
        case TYPE_DATETIMEV2:
583
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
0
        case TYPE_TIMESTAMPTZ:
585
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
96
        case TYPE_TINYINT:
587
96
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
4
        case TYPE_SMALLINT:
589
4
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.60k
        case TYPE_INT:
591
1.60k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
991
        case TYPE_BIGINT:
593
991
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
0
        case TYPE_LARGEINT:
595
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
0
        case TYPE_IPV4:
597
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
52
        case TYPE_FLOAT:
601
52
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
71
        case TYPE_DOUBLE:
603
71
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
0
        case TYPE_DECIMAL32:
609
61
        case TYPE_DECIMAL64:
610
385
        case TYPE_DECIMAL128I:
611
415
        case TYPE_DECIMAL256:
612
415
            return execute_decimal(block, result, col_with_type_and_name_left,
613
415
                                   col_with_type_and_name_right);
614
9
        case TYPE_CHAR:
615
291
        case TYPE_VARCHAR:
616
749
        case TYPE_STRING:
617
749
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
8
        default:
619
8
            return execute_generic(block, result, col_with_type_and_name_left,
620
8
                                   col_with_type_and_name_right);
621
4.04k
        }
622
0
        return Status::OK();
623
4.04k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
27.3k
                        uint32_t result, size_t input_rows_count) const override {
525
27.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
27.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
27.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
27.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
27.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
27.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
27.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
27.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
27.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
27.3k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
27.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
27.3k
        };
565
566
27.3k
        if (can_compare(left_type->get_primitive_type()) &&
567
27.3k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
21.5k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
21.5k
        }
575
576
27.3k
        auto compare_type = left_type->get_primitive_type();
577
27.3k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.28k
        case TYPE_DATEV2:
581
1.28k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
60
        case TYPE_DATETIMEV2:
583
60
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
778
        case TYPE_TINYINT:
587
778
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.01k
        case TYPE_SMALLINT:
589
1.01k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
8.01k
        case TYPE_INT:
591
8.01k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
8.15k
        case TYPE_BIGINT:
593
8.15k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
248
        case TYPE_LARGEINT:
595
248
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
2
        case TYPE_IPV4:
597
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
232
        case TYPE_FLOAT:
601
232
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.72k
        case TYPE_DOUBLE:
603
1.72k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
22
        case TYPE_DECIMAL32:
609
4.14k
        case TYPE_DECIMAL64:
610
5.64k
        case TYPE_DECIMAL128I:
611
5.64k
        case TYPE_DECIMAL256:
612
5.64k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
5.64k
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
91
        case TYPE_VARCHAR:
616
197
        case TYPE_STRING:
617
197
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
9
        default:
619
9
            return execute_generic(block, result, col_with_type_and_name_left,
620
9
                                   col_with_type_and_name_right);
621
27.3k
        }
622
0
        return Status::OK();
623
27.3k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
23.8k
                        uint32_t result, size_t input_rows_count) const override {
525
23.8k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
23.8k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
23.8k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
23.8k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
23.8k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
23.8k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
23.8k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
23.8k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
23.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
23.8k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
23.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
23.8k
        };
565
566
23.8k
        if (can_compare(left_type->get_primitive_type()) &&
567
23.8k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
22.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
22.9k
        }
575
576
23.8k
        auto compare_type = left_type->get_primitive_type();
577
23.8k
        switch (compare_type) {
578
113
        case TYPE_BOOLEAN:
579
113
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.46k
        case TYPE_DATEV2:
581
1.46k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
477
        case TYPE_DATETIMEV2:
583
477
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
37
        case TYPE_TINYINT:
587
37
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
55
        case TYPE_SMALLINT:
589
55
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
20.0k
        case TYPE_INT:
591
20.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
441
        case TYPE_BIGINT:
593
441
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
40
        case TYPE_LARGEINT:
595
40
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
11
        case TYPE_IPV4:
597
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
86
        case TYPE_FLOAT:
601
86
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
211
        case TYPE_DOUBLE:
603
211
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
6
        case TYPE_DECIMAL32:
609
246
        case TYPE_DECIMAL64:
610
281
        case TYPE_DECIMAL128I:
611
308
        case TYPE_DECIMAL256:
612
308
            return execute_decimal(block, result, col_with_type_and_name_left,
613
308
                                   col_with_type_and_name_right);
614
14
        case TYPE_CHAR:
615
234
        case TYPE_VARCHAR:
616
495
        case TYPE_STRING:
617
495
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
32
        default:
619
32
            return execute_generic(block, result, col_with_type_and_name_left,
620
32
                                   col_with_type_and_name_right);
621
23.8k
        }
622
0
        return Status::OK();
623
23.8k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
9.10k
                        uint32_t result, size_t input_rows_count) const override {
525
9.10k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
9.10k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
9.10k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
9.10k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
9.10k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
9.10k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
9.10k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
9.10k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
9.10k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
9.10k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
9.10k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
9.10k
        };
565
566
9.10k
        if (can_compare(left_type->get_primitive_type()) &&
567
9.10k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
7.51k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
7.51k
        }
575
576
9.10k
        auto compare_type = left_type->get_primitive_type();
577
9.10k
        switch (compare_type) {
578
72
        case TYPE_BOOLEAN:
579
72
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.15k
        case TYPE_DATEV2:
581
2.15k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
433
        case TYPE_DATETIMEV2:
583
433
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
4
        case TYPE_TIMESTAMPTZ:
585
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
781
        case TYPE_TINYINT:
587
781
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
211
        case TYPE_SMALLINT:
589
211
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.95k
        case TYPE_INT:
591
1.95k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.20k
        case TYPE_BIGINT:
593
1.20k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
197
        case TYPE_LARGEINT:
595
197
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
16
        case TYPE_IPV4:
597
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
16
        case TYPE_IPV6:
599
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
136
        case TYPE_FLOAT:
601
136
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
338
        case TYPE_DOUBLE:
603
338
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
206
        case TYPE_DECIMAL32:
609
451
        case TYPE_DECIMAL64:
610
936
        case TYPE_DECIMAL128I:
611
937
        case TYPE_DECIMAL256:
612
937
            return execute_decimal(block, result, col_with_type_and_name_left,
613
937
                                   col_with_type_and_name_right);
614
181
        case TYPE_CHAR:
615
370
        case TYPE_VARCHAR:
616
633
        case TYPE_STRING:
617
633
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
11
        default:
619
11
            return execute_generic(block, result, col_with_type_and_name_left,
620
11
                                   col_with_type_and_name_right);
621
9.10k
        }
622
0
        return Status::OK();
623
9.10k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
30.5k
                        uint32_t result, size_t input_rows_count) const override {
525
30.5k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
30.5k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
30.5k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
30.5k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
30.5k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
30.5k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
30.5k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
30.5k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
30.5k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
30.5k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
30.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
30.5k
        };
565
566
30.5k
        if (can_compare(left_type->get_primitive_type()) &&
567
30.5k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
27.3k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
27.3k
        }
575
576
30.5k
        auto compare_type = left_type->get_primitive_type();
577
30.5k
        switch (compare_type) {
578
123
        case TYPE_BOOLEAN:
579
123
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
5.92k
        case TYPE_DATEV2:
581
5.92k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
264
        case TYPE_DATETIMEV2:
583
264
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
45
        case TYPE_TINYINT:
587
45
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
81
        case TYPE_SMALLINT:
589
81
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
20.0k
        case TYPE_INT:
591
20.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
499
        case TYPE_BIGINT:
593
499
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
38
        case TYPE_LARGEINT:
595
38
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
10
        case TYPE_IPV4:
597
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
80
        case TYPE_FLOAT:
601
80
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
160
        case TYPE_DOUBLE:
603
160
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
11
        case TYPE_DECIMAL32:
609
2.07k
        case TYPE_DECIMAL64:
610
2.78k
        case TYPE_DECIMAL128I:
611
2.80k
        case TYPE_DECIMAL256:
612
2.80k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
2.80k
                                   col_with_type_and_name_right);
614
32
        case TYPE_CHAR:
615
202
        case TYPE_VARCHAR:
616
465
        case TYPE_STRING:
617
465
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
32
        default:
619
32
            return execute_generic(block, result, col_with_type_and_name_left,
620
32
                                   col_with_type_and_name_right);
621
30.5k
        }
622
0
        return Status::OK();
623
30.5k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris