Coverage Report

Created: 2026-03-19 14:47

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
13.9k
                                        PaddedPODArray<UInt8>& c) {
66
13.9k
        size_t size = a.size();
67
13.9k
        const A* __restrict a_pos = a.data();
68
13.9k
        const B* __restrict b_pos = b.data();
69
13.9k
        UInt8* __restrict c_pos = c.data();
70
13.9k
        const A* __restrict a_end = a_pos + size;
71
72
17.9M
        while (a_pos < a_end) {
73
17.9M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
17.9M
            ++a_pos;
75
17.9M
            ++b_pos;
76
17.9M
            ++c_pos;
77
17.9M
        }
78
13.9k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
73
                                        PaddedPODArray<UInt8>& c) {
66
73
        size_t size = a.size();
67
73
        const A* __restrict a_pos = a.data();
68
73
        const B* __restrict b_pos = b.data();
69
73
        UInt8* __restrict c_pos = c.data();
70
73
        const A* __restrict a_end = a_pos + size;
71
72
146
        while (a_pos < a_end) {
73
73
            *c_pos = Op::apply(*a_pos, *b_pos);
74
73
            ++a_pos;
75
73
            ++b_pos;
76
73
            ++c_pos;
77
73
        }
78
73
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
372
                                        PaddedPODArray<UInt8>& c) {
66
372
        size_t size = a.size();
67
372
        const A* __restrict a_pos = a.data();
68
372
        const B* __restrict b_pos = b.data();
69
372
        UInt8* __restrict c_pos = c.data();
70
372
        const A* __restrict a_end = a_pos + size;
71
72
1.59k
        while (a_pos < a_end) {
73
1.22k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.22k
            ++a_pos;
75
1.22k
            ++b_pos;
76
1.22k
            ++c_pos;
77
1.22k
        }
78
372
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
295
                                        PaddedPODArray<UInt8>& c) {
66
295
        size_t size = a.size();
67
295
        const A* __restrict a_pos = a.data();
68
295
        const B* __restrict b_pos = b.data();
69
295
        UInt8* __restrict c_pos = c.data();
70
295
        const A* __restrict a_end = a_pos + size;
71
72
611
        while (a_pos < a_end) {
73
316
            *c_pos = Op::apply(*a_pos, *b_pos);
74
316
            ++a_pos;
75
316
            ++b_pos;
76
316
            ++c_pos;
77
316
        }
78
295
    }
_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
942
                                        PaddedPODArray<UInt8>& c) {
66
942
        size_t size = a.size();
67
942
        const A* __restrict a_pos = a.data();
68
942
        const B* __restrict b_pos = b.data();
69
942
        UInt8* __restrict c_pos = c.data();
70
942
        const A* __restrict a_end = a_pos + size;
71
72
5.75k
        while (a_pos < a_end) {
73
4.81k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.81k
            ++a_pos;
75
4.81k
            ++b_pos;
76
4.81k
            ++c_pos;
77
4.81k
        }
78
942
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
133
                                        PaddedPODArray<UInt8>& c) {
66
133
        size_t size = a.size();
67
133
        const A* __restrict a_pos = a.data();
68
133
        const B* __restrict b_pos = b.data();
69
133
        UInt8* __restrict c_pos = c.data();
70
133
        const A* __restrict a_end = a_pos + size;
71
72
566
        while (a_pos < a_end) {
73
433
            *c_pos = Op::apply(*a_pos, *b_pos);
74
433
            ++a_pos;
75
433
            ++b_pos;
76
433
            ++c_pos;
77
433
        }
78
133
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
265
                                        PaddedPODArray<UInt8>& c) {
66
265
        size_t size = a.size();
67
265
        const A* __restrict a_pos = a.data();
68
265
        const B* __restrict b_pos = b.data();
69
265
        UInt8* __restrict c_pos = c.data();
70
265
        const A* __restrict a_end = a_pos + size;
71
72
1.90k
        while (a_pos < a_end) {
73
1.63k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.63k
            ++a_pos;
75
1.63k
            ++b_pos;
76
1.63k
            ++c_pos;
77
1.63k
        }
78
265
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
216
                                        PaddedPODArray<UInt8>& c) {
66
216
        size_t size = a.size();
67
216
        const A* __restrict a_pos = a.data();
68
216
        const B* __restrict b_pos = b.data();
69
216
        UInt8* __restrict c_pos = c.data();
70
216
        const A* __restrict a_end = a_pos + size;
71
72
11.7k
        while (a_pos < a_end) {
73
11.5k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.5k
            ++a_pos;
75
11.5k
            ++b_pos;
76
11.5k
            ++c_pos;
77
11.5k
        }
78
216
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
93
                                        PaddedPODArray<UInt8>& c) {
66
93
        size_t size = a.size();
67
93
        const A* __restrict a_pos = a.data();
68
93
        const B* __restrict b_pos = b.data();
69
93
        UInt8* __restrict c_pos = c.data();
70
93
        const A* __restrict a_end = a_pos + size;
71
72
210
        while (a_pos < a_end) {
73
117
            *c_pos = Op::apply(*a_pos, *b_pos);
74
117
            ++a_pos;
75
117
            ++b_pos;
76
117
            ++c_pos;
77
117
        }
78
93
    }
_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
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
233
        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
107
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
111
                                        PaddedPODArray<UInt8>& c) {
66
111
        size_t size = a.size();
67
111
        const A* __restrict a_pos = a.data();
68
111
        const B* __restrict b_pos = b.data();
69
111
        UInt8* __restrict c_pos = c.data();
70
111
        const A* __restrict a_end = a_pos + size;
71
72
243
        while (a_pos < a_end) {
73
132
            *c_pos = Op::apply(*a_pos, *b_pos);
74
132
            ++a_pos;
75
132
            ++b_pos;
76
132
            ++c_pos;
77
132
        }
78
111
    }
_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
805
                                        PaddedPODArray<UInt8>& c) {
66
805
        size_t size = a.size();
67
805
        const A* __restrict a_pos = a.data();
68
805
        const B* __restrict b_pos = b.data();
69
805
        UInt8* __restrict c_pos = c.data();
70
805
        const A* __restrict a_end = a_pos + size;
71
72
364k
        while (a_pos < a_end) {
73
363k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
363k
            ++a_pos;
75
363k
            ++b_pos;
76
363k
            ++c_pos;
77
363k
        }
78
805
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
466
                                        PaddedPODArray<UInt8>& c) {
66
466
        size_t size = a.size();
67
466
        const A* __restrict a_pos = a.data();
68
466
        const B* __restrict b_pos = b.data();
69
466
        UInt8* __restrict c_pos = c.data();
70
466
        const A* __restrict a_end = a_pos + size;
71
72
32.4k
        while (a_pos < a_end) {
73
31.9k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31.9k
            ++a_pos;
75
31.9k
            ++b_pos;
76
31.9k
            ++c_pos;
77
31.9k
        }
78
466
    }
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.08k
                                        PaddedPODArray<UInt8>& c) {
66
1.08k
        size_t size = a.size();
67
1.08k
        const A* __restrict a_pos = a.data();
68
1.08k
        const B* __restrict b_pos = b.data();
69
1.08k
        UInt8* __restrict c_pos = c.data();
70
1.08k
        const A* __restrict a_end = a_pos + size;
71
72
5.98M
        while (a_pos < a_end) {
73
5.98M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.98M
            ++a_pos;
75
5.98M
            ++b_pos;
76
5.98M
            ++c_pos;
77
5.98M
        }
78
1.08k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
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
391
                                        PaddedPODArray<UInt8>& c) {
66
391
        size_t size = a.size();
67
391
        const A* __restrict a_pos = a.data();
68
391
        const B* __restrict b_pos = b.data();
69
391
        UInt8* __restrict c_pos = c.data();
70
391
        const A* __restrict a_end = a_pos + size;
71
72
2.69k
        while (a_pos < a_end) {
73
2.30k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.30k
            ++a_pos;
75
2.30k
            ++b_pos;
76
2.30k
            ++c_pos;
77
2.30k
        }
78
391
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
639
                                        PaddedPODArray<UInt8>& c) {
66
639
        size_t size = a.size();
67
639
        const A* __restrict a_pos = a.data();
68
639
        const B* __restrict b_pos = b.data();
69
639
        UInt8* __restrict c_pos = c.data();
70
639
        const A* __restrict a_end = a_pos + size;
71
72
4.54k
        while (a_pos < a_end) {
73
3.90k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.90k
            ++a_pos;
75
3.90k
            ++b_pos;
76
3.90k
            ++c_pos;
77
3.90k
        }
78
639
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
2.94k
                                        PaddedPODArray<UInt8>& c) {
66
2.94k
        size_t size = a.size();
67
2.94k
        const A* __restrict a_pos = a.data();
68
2.94k
        const B* __restrict b_pos = b.data();
69
2.94k
        UInt8* __restrict c_pos = c.data();
70
2.94k
        const A* __restrict a_end = a_pos + size;
71
72
9.75M
        while (a_pos < a_end) {
73
9.74M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9.74M
            ++a_pos;
75
9.74M
            ++b_pos;
76
9.74M
            ++c_pos;
77
9.74M
        }
78
2.94k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
127
                                        PaddedPODArray<UInt8>& c) {
66
127
        size_t size = a.size();
67
127
        const A* __restrict a_pos = a.data();
68
127
        const B* __restrict b_pos = b.data();
69
127
        UInt8* __restrict c_pos = c.data();
70
127
        const A* __restrict a_end = a_pos + size;
71
72
1.62k
        while (a_pos < a_end) {
73
1.50k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.50k
            ++a_pos;
75
1.50k
            ++b_pos;
76
1.50k
            ++c_pos;
77
1.50k
        }
78
127
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
40
                                        PaddedPODArray<UInt8>& c) {
66
40
        size_t size = a.size();
67
40
        const A* __restrict a_pos = a.data();
68
40
        const B* __restrict b_pos = b.data();
69
40
        UInt8* __restrict c_pos = c.data();
70
40
        const A* __restrict a_end = a_pos + size;
71
72
193
        while (a_pos < a_end) {
73
153
            *c_pos = Op::apply(*a_pos, *b_pos);
74
153
            ++a_pos;
75
153
            ++b_pos;
76
153
            ++c_pos;
77
153
        }
78
40
    }
_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
45
                                        PaddedPODArray<UInt8>& c) {
66
45
        size_t size = a.size();
67
45
        const A* __restrict a_pos = a.data();
68
45
        const B* __restrict b_pos = b.data();
69
45
        UInt8* __restrict c_pos = c.data();
70
45
        const A* __restrict a_end = a_pos + size;
71
72
143
        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
45
    }
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
5
                                        PaddedPODArray<UInt8>& c) {
66
5
        size_t size = a.size();
67
5
        const A* __restrict a_pos = a.data();
68
5
        const B* __restrict b_pos = b.data();
69
5
        UInt8* __restrict c_pos = c.data();
70
5
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
7
            *c_pos = Op::apply(*a_pos, *b_pos);
74
7
            ++a_pos;
75
7
            ++b_pos;
76
7
            ++c_pos;
77
7
        }
78
5
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
17
                                        PaddedPODArray<UInt8>& c) {
66
17
        size_t size = a.size();
67
17
        const A* __restrict a_pos = a.data();
68
17
        const B* __restrict b_pos = b.data();
69
17
        UInt8* __restrict c_pos = c.data();
70
17
        const A* __restrict a_end = a_pos + size;
71
72
126
        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
17
    }
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
31
                                        PaddedPODArray<UInt8>& c) {
66
31
        size_t size = a.size();
67
31
        const A* __restrict a_pos = a.data();
68
31
        const B* __restrict b_pos = b.data();
69
31
        UInt8* __restrict c_pos = c.data();
70
31
        const A* __restrict a_end = a_pos + size;
71
72
137
        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
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
78
                                        PaddedPODArray<UInt8>& c) {
66
78
        size_t size = a.size();
67
78
        const A* __restrict a_pos = a.data();
68
78
        const B* __restrict b_pos = b.data();
69
78
        UInt8* __restrict c_pos = c.data();
70
78
        const A* __restrict a_end = a_pos + size;
71
72
156
        while (a_pos < a_end) {
73
78
            *c_pos = Op::apply(*a_pos, *b_pos);
74
78
            ++a_pos;
75
78
            ++b_pos;
76
78
            ++c_pos;
77
78
        }
78
78
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.73k
                                        PaddedPODArray<UInt8>& c) {
66
1.73k
        size_t size = a.size();
67
1.73k
        const A* __restrict a_pos = a.data();
68
1.73k
        const B* __restrict b_pos = b.data();
69
1.73k
        UInt8* __restrict c_pos = c.data();
70
1.73k
        const A* __restrict a_end = a_pos + size;
71
72
1.80M
        while (a_pos < a_end) {
73
1.79M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.79M
            ++a_pos;
75
1.79M
            ++b_pos;
76
1.79M
            ++c_pos;
77
1.79M
        }
78
1.73k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
233
                                        PaddedPODArray<UInt8>& c) {
66
233
        size_t size = a.size();
67
233
        const A* __restrict a_pos = a.data();
68
233
        const B* __restrict b_pos = b.data();
69
233
        UInt8* __restrict c_pos = c.data();
70
233
        const A* __restrict a_end = a_pos + size;
71
72
466
        while (a_pos < a_end) {
73
233
            *c_pos = Op::apply(*a_pos, *b_pos);
74
233
            ++a_pos;
75
233
            ++b_pos;
76
233
            ++c_pos;
77
233
        }
78
233
    }
_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
851
                                        PaddedPODArray<UInt8>& c) {
66
851
        size_t size = a.size();
67
851
        const A* __restrict a_pos = a.data();
68
851
        const B* __restrict b_pos = b.data();
69
851
        UInt8* __restrict c_pos = c.data();
70
851
        const A* __restrict a_end = a_pos + size;
71
72
5.10k
        while (a_pos < a_end) {
73
4.25k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.25k
            ++a_pos;
75
4.25k
            ++b_pos;
76
4.25k
            ++c_pos;
77
4.25k
        }
78
851
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_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
208
        while (a_pos < a_end) {
73
105
            *c_pos = Op::apply(*a_pos, *b_pos);
74
105
            ++a_pos;
75
105
            ++b_pos;
76
105
            ++c_pos;
77
105
        }
78
103
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
161
                                        PaddedPODArray<UInt8>& c) {
66
161
        size_t size = a.size();
67
161
        const A* __restrict a_pos = a.data();
68
161
        const B* __restrict b_pos = b.data();
69
161
        UInt8* __restrict c_pos = c.data();
70
161
        const A* __restrict a_end = a_pos + size;
71
72
814
        while (a_pos < a_end) {
73
653
            *c_pos = Op::apply(*a_pos, *b_pos);
74
653
            ++a_pos;
75
653
            ++b_pos;
76
653
            ++c_pos;
77
653
        }
78
161
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
194
                                        PaddedPODArray<UInt8>& c) {
66
194
        size_t size = a.size();
67
194
        const A* __restrict a_pos = a.data();
68
194
        const B* __restrict b_pos = b.data();
69
194
        UInt8* __restrict c_pos = c.data();
70
194
        const A* __restrict a_end = a_pos + size;
71
72
5.67k
        while (a_pos < a_end) {
73
5.48k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.48k
            ++a_pos;
75
5.48k
            ++b_pos;
76
5.48k
            ++c_pos;
77
5.48k
        }
78
194
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
171
                                        PaddedPODArray<UInt8>& c) {
66
171
        size_t size = a.size();
67
171
        const A* __restrict a_pos = a.data();
68
171
        const B* __restrict b_pos = b.data();
69
171
        UInt8* __restrict c_pos = c.data();
70
171
        const A* __restrict a_end = a_pos + size;
71
72
484
        while (a_pos < a_end) {
73
313
            *c_pos = Op::apply(*a_pos, *b_pos);
74
313
            ++a_pos;
75
313
            ++b_pos;
76
313
            ++c_pos;
77
313
        }
78
171
    }
_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
123
                                        PaddedPODArray<UInt8>& c) {
66
123
        size_t size = a.size();
67
123
        const A* __restrict a_pos = a.data();
68
123
        const B* __restrict b_pos = b.data();
69
123
        UInt8* __restrict c_pos = c.data();
70
123
        const A* __restrict a_end = a_pos + size;
71
72
265
        while (a_pos < a_end) {
73
142
            *c_pos = Op::apply(*a_pos, *b_pos);
74
142
            ++a_pos;
75
142
            ++b_pos;
76
142
            ++c_pos;
77
142
        }
78
123
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
150
                                        PaddedPODArray<UInt8>& c) {
66
150
        size_t size = a.size();
67
150
        const A* __restrict a_pos = a.data();
68
150
        const B* __restrict b_pos = b.data();
69
150
        UInt8* __restrict c_pos = c.data();
70
150
        const A* __restrict a_end = a_pos + size;
71
72
337
        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
150
    }
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
432
                                        PaddedPODArray<UInt8>& c) {
66
432
        size_t size = a.size();
67
432
        const A* __restrict a_pos = a.data();
68
432
        const B* __restrict b_pos = b.data();
69
432
        UInt8* __restrict c_pos = c.data();
70
432
        const A* __restrict a_end = a_pos + size;
71
72
6.86k
        while (a_pos < a_end) {
73
6.43k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.43k
            ++a_pos;
75
6.43k
            ++b_pos;
76
6.43k
            ++c_pos;
77
6.43k
        }
78
432
    }
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
62
                                        PaddedPODArray<UInt8>& c) {
66
62
        size_t size = a.size();
67
62
        const A* __restrict a_pos = a.data();
68
62
        const B* __restrict b_pos = b.data();
69
62
        UInt8* __restrict c_pos = c.data();
70
62
        const A* __restrict a_end = a_pos + size;
71
72
1.12k
        while (a_pos < a_end) {
73
1.05k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.05k
            ++a_pos;
75
1.05k
            ++b_pos;
76
1.05k
            ++c_pos;
77
1.05k
        }
78
62
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
74
                                        PaddedPODArray<UInt8>& c) {
66
74
        size_t size = a.size();
67
74
        const A* __restrict a_pos = a.data();
68
74
        const B* __restrict b_pos = b.data();
69
74
        UInt8* __restrict c_pos = c.data();
70
74
        const A* __restrict a_end = a_pos + size;
71
72
340
        while (a_pos < a_end) {
73
266
            *c_pos = Op::apply(*a_pos, *b_pos);
74
266
            ++a_pos;
75
266
            ++b_pos;
76
266
            ++c_pos;
77
266
        }
78
74
    }
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
18.5k
                                          PaddedPODArray<UInt8>& c) {
82
18.5k
        size_t size = a.size();
83
18.5k
        const A* __restrict a_pos = a.data();
84
18.5k
        UInt8* __restrict c_pos = c.data();
85
18.5k
        const A* __restrict a_end = a_pos + size;
86
87
23.8M
        while (a_pos < a_end) {
88
23.8M
            *c_pos = Op::apply(*a_pos, b);
89
23.8M
            ++a_pos;
90
23.8M
            ++c_pos;
91
23.8M
        }
92
18.5k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
26
                                          PaddedPODArray<UInt8>& c) {
82
26
        size_t size = a.size();
83
26
        const A* __restrict a_pos = a.data();
84
26
        UInt8* __restrict c_pos = c.data();
85
26
        const A* __restrict a_end = a_pos + size;
86
87
165
        while (a_pos < a_end) {
88
139
            *c_pos = Op::apply(*a_pos, b);
89
139
            ++a_pos;
90
139
            ++c_pos;
91
139
        }
92
26
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
637
                                          PaddedPODArray<UInt8>& c) {
82
637
        size_t size = a.size();
83
637
        const A* __restrict a_pos = a.data();
84
637
        UInt8* __restrict c_pos = c.data();
85
637
        const A* __restrict a_end = a_pos + size;
86
87
205k
        while (a_pos < a_end) {
88
204k
            *c_pos = Op::apply(*a_pos, b);
89
204k
            ++a_pos;
90
204k
            ++c_pos;
91
204k
        }
92
637
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
235
                                          PaddedPODArray<UInt8>& c) {
82
235
        size_t size = a.size();
83
235
        const A* __restrict a_pos = a.data();
84
235
        UInt8* __restrict c_pos = c.data();
85
235
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
235
    }
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
2.61k
                                          PaddedPODArray<UInt8>& c) {
82
2.61k
        size_t size = a.size();
83
2.61k
        const A* __restrict a_pos = a.data();
84
2.61k
        UInt8* __restrict c_pos = c.data();
85
2.61k
        const A* __restrict a_end = a_pos + size;
86
87
9.16M
        while (a_pos < a_end) {
88
9.15M
            *c_pos = Op::apply(*a_pos, b);
89
9.15M
            ++a_pos;
90
9.15M
            ++c_pos;
91
9.15M
        }
92
2.61k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
341
                                          PaddedPODArray<UInt8>& c) {
82
341
        size_t size = a.size();
83
341
        const A* __restrict a_pos = a.data();
84
341
        UInt8* __restrict c_pos = c.data();
85
341
        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
341
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.55k
                                          PaddedPODArray<UInt8>& c) {
82
1.55k
        size_t size = a.size();
83
1.55k
        const A* __restrict a_pos = a.data();
84
1.55k
        UInt8* __restrict c_pos = c.data();
85
1.55k
        const A* __restrict a_end = a_pos + size;
86
87
201k
        while (a_pos < a_end) {
88
199k
            *c_pos = Op::apply(*a_pos, b);
89
199k
            ++a_pos;
90
199k
            ++c_pos;
91
199k
        }
92
1.55k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
785
                                          PaddedPODArray<UInt8>& c) {
82
785
        size_t size = a.size();
83
785
        const A* __restrict a_pos = a.data();
84
785
        UInt8* __restrict c_pos = c.data();
85
785
        const A* __restrict a_end = a_pos + size;
86
87
353k
        while (a_pos < a_end) {
88
353k
            *c_pos = Op::apply(*a_pos, b);
89
353k
            ++a_pos;
90
353k
            ++c_pos;
91
353k
        }
92
785
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
24
                                          PaddedPODArray<UInt8>& c) {
82
24
        size_t size = a.size();
83
24
        const A* __restrict a_pos = a.data();
84
24
        UInt8* __restrict c_pos = c.data();
85
24
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
24
    }
_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
85
        while (a_pos < a_end) {
88
70
            *c_pos = Op::apply(*a_pos, b);
89
70
            ++a_pos;
90
70
            ++c_pos;
91
70
        }
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
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
167
                                          PaddedPODArray<UInt8>& c) {
82
167
        size_t size = a.size();
83
167
        const A* __restrict a_pos = a.data();
84
167
        UInt8* __restrict c_pos = c.data();
85
167
        const A* __restrict a_end = a_pos + size;
86
87
700k
        while (a_pos < a_end) {
88
700k
            *c_pos = Op::apply(*a_pos, b);
89
700k
            ++a_pos;
90
700k
            ++c_pos;
91
700k
        }
92
167
    }
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
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
5
        while (a_pos < a_end) {
88
3
            *c_pos = Op::apply(*a_pos, b);
89
3
            ++a_pos;
90
3
            ++c_pos;
91
3
        }
92
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
28
                                          PaddedPODArray<UInt8>& c) {
82
28
        size_t size = a.size();
83
28
        const A* __restrict a_pos = a.data();
84
28
        UInt8* __restrict c_pos = c.data();
85
28
        const A* __restrict a_end = a_pos + size;
86
87
78
        while (a_pos < a_end) {
88
50
            *c_pos = Op::apply(*a_pos, b);
89
50
            ++a_pos;
90
50
            ++c_pos;
91
50
        }
92
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
63
                                          PaddedPODArray<UInt8>& c) {
82
63
        size_t size = a.size();
83
63
        const A* __restrict a_pos = a.data();
84
63
        UInt8* __restrict c_pos = c.data();
85
63
        const A* __restrict a_end = a_pos + size;
86
87
425
        while (a_pos < a_end) {
88
362
            *c_pos = Op::apply(*a_pos, b);
89
362
            ++a_pos;
90
362
            ++c_pos;
91
362
        }
92
63
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
22
                                          PaddedPODArray<UInt8>& c) {
82
22
        size_t size = a.size();
83
22
        const A* __restrict a_pos = a.data();
84
22
        UInt8* __restrict c_pos = c.data();
85
22
        const A* __restrict a_end = a_pos + size;
86
87
1.06k
        while (a_pos < a_end) {
88
1.04k
            *c_pos = Op::apply(*a_pos, b);
89
1.04k
            ++a_pos;
90
1.04k
            ++c_pos;
91
1.04k
        }
92
22
    }
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
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
12
        while (a_pos < a_end) {
88
10
            *c_pos = Op::apply(*a_pos, b);
89
10
            ++a_pos;
90
10
            ++c_pos;
91
10
        }
92
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
331
                                          PaddedPODArray<UInt8>& c) {
82
331
        size_t size = a.size();
83
331
        const A* __restrict a_pos = a.data();
84
331
        UInt8* __restrict c_pos = c.data();
85
331
        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
331
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_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
6
        while (a_pos < a_end) {
88
4
            *c_pos = Op::apply(*a_pos, b);
89
4
            ++a_pos;
90
4
            ++c_pos;
91
4
        }
92
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
59
                                          PaddedPODArray<UInt8>& c) {
82
59
        size_t size = a.size();
83
59
        const A* __restrict a_pos = a.data();
84
59
        UInt8* __restrict c_pos = c.data();
85
59
        const A* __restrict a_end = a_pos + size;
86
87
269
        while (a_pos < a_end) {
88
210
            *c_pos = Op::apply(*a_pos, b);
89
210
            ++a_pos;
90
210
            ++c_pos;
91
210
        }
92
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
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
412
                                          PaddedPODArray<UInt8>& c) {
82
412
        size_t size = a.size();
83
412
        const A* __restrict a_pos = a.data();
84
412
        UInt8* __restrict c_pos = c.data();
85
412
        const A* __restrict a_end = a_pos + size;
86
87
4.20k
        while (a_pos < a_end) {
88
3.79k
            *c_pos = Op::apply(*a_pos, b);
89
3.79k
            ++a_pos;
90
3.79k
            ++c_pos;
91
3.79k
        }
92
412
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
39
                                          PaddedPODArray<UInt8>& c) {
82
39
        size_t size = a.size();
83
39
        const A* __restrict a_pos = a.data();
84
39
        UInt8* __restrict c_pos = c.data();
85
39
        const A* __restrict a_end = a_pos + size;
86
87
157
        while (a_pos < a_end) {
88
118
            *c_pos = Op::apply(*a_pos, b);
89
118
            ++a_pos;
90
118
            ++c_pos;
91
118
        }
92
39
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
413
                                          PaddedPODArray<UInt8>& c) {
82
413
        size_t size = a.size();
83
413
        const A* __restrict a_pos = a.data();
84
413
        UInt8* __restrict c_pos = c.data();
85
413
        const A* __restrict a_end = a_pos + size;
86
87
3.65k
        while (a_pos < a_end) {
88
3.24k
            *c_pos = Op::apply(*a_pos, b);
89
3.24k
            ++a_pos;
90
3.24k
            ++c_pos;
91
3.24k
        }
92
413
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20
                                          PaddedPODArray<UInt8>& c) {
82
20
        size_t size = a.size();
83
20
        const A* __restrict a_pos = a.data();
84
20
        UInt8* __restrict c_pos = c.data();
85
20
        const A* __restrict a_end = a_pos + size;
86
87
50
        while (a_pos < a_end) {
88
30
            *c_pos = Op::apply(*a_pos, b);
89
30
            ++a_pos;
90
30
            ++c_pos;
91
30
        }
92
20
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.84k
                                          PaddedPODArray<UInt8>& c) {
82
1.84k
        size_t size = a.size();
83
1.84k
        const A* __restrict a_pos = a.data();
84
1.84k
        UInt8* __restrict c_pos = c.data();
85
1.84k
        const A* __restrict a_end = a_pos + size;
86
87
15.0k
        while (a_pos < a_end) {
88
13.2k
            *c_pos = Op::apply(*a_pos, b);
89
13.2k
            ++a_pos;
90
13.2k
            ++c_pos;
91
13.2k
        }
92
1.84k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
544
                                          PaddedPODArray<UInt8>& c) {
82
544
        size_t size = a.size();
83
544
        const A* __restrict a_pos = a.data();
84
544
        UInt8* __restrict c_pos = c.data();
85
544
        const A* __restrict a_end = a_pos + size;
86
87
3.29k
        while (a_pos < a_end) {
88
2.74k
            *c_pos = Op::apply(*a_pos, b);
89
2.74k
            ++a_pos;
90
2.74k
            ++c_pos;
91
2.74k
        }
92
544
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.23k
                                          PaddedPODArray<UInt8>& c) {
82
1.23k
        size_t size = a.size();
83
1.23k
        const A* __restrict a_pos = a.data();
84
1.23k
        UInt8* __restrict c_pos = c.data();
85
1.23k
        const A* __restrict a_end = a_pos + size;
86
87
122k
        while (a_pos < a_end) {
88
121k
            *c_pos = Op::apply(*a_pos, b);
89
121k
            ++a_pos;
90
121k
            ++c_pos;
91
121k
        }
92
1.23k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
502
                                          PaddedPODArray<UInt8>& c) {
82
502
        size_t size = a.size();
83
502
        const A* __restrict a_pos = a.data();
84
502
        UInt8* __restrict c_pos = c.data();
85
502
        const A* __restrict a_end = a_pos + size;
86
87
1.50k
        while (a_pos < a_end) {
88
1.00k
            *c_pos = Op::apply(*a_pos, b);
89
1.00k
            ++a_pos;
90
1.00k
            ++c_pos;
91
1.00k
        }
92
502
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
206
                                          PaddedPODArray<UInt8>& c) {
82
206
        size_t size = a.size();
83
206
        const A* __restrict a_pos = a.data();
84
206
        UInt8* __restrict c_pos = c.data();
85
206
        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
206
    }
_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
208
                                          PaddedPODArray<UInt8>& c) {
82
208
        size_t size = a.size();
83
208
        const A* __restrict a_pos = a.data();
84
208
        UInt8* __restrict c_pos = c.data();
85
208
        const A* __restrict a_end = a_pos + size;
86
87
2.63k
        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
208
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
499
                                          PaddedPODArray<UInt8>& c) {
82
499
        size_t size = a.size();
83
499
        const A* __restrict a_pos = a.data();
84
499
        UInt8* __restrict c_pos = c.data();
85
499
        const A* __restrict a_end = a_pos + size;
86
87
7.44k
        while (a_pos < a_end) {
88
6.94k
            *c_pos = Op::apply(*a_pos, b);
89
6.94k
            ++a_pos;
90
6.94k
            ++c_pos;
91
6.94k
        }
92
499
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
191
                                          PaddedPODArray<UInt8>& c) {
82
191
        size_t size = a.size();
83
191
        const A* __restrict a_pos = a.data();
84
191
        UInt8* __restrict c_pos = c.data();
85
191
        const A* __restrict a_end = a_pos + size;
86
87
282k
        while (a_pos < a_end) {
88
282k
            *c_pos = Op::apply(*a_pos, b);
89
282k
            ++a_pos;
90
282k
            ++c_pos;
91
282k
        }
92
191
    }
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
25
                                          PaddedPODArray<UInt8>& c) {
82
25
        size_t size = a.size();
83
25
        const A* __restrict a_pos = a.data();
84
25
        UInt8* __restrict c_pos = c.data();
85
25
        const A* __restrict a_end = a_pos + size;
86
87
116k
        while (a_pos < a_end) {
88
115k
            *c_pos = Op::apply(*a_pos, b);
89
115k
            ++a_pos;
90
115k
            ++c_pos;
91
115k
        }
92
25
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
23
                                          PaddedPODArray<UInt8>& c) {
82
23
        size_t size = a.size();
83
23
        const A* __restrict a_pos = a.data();
84
23
        UInt8* __restrict c_pos = c.data();
85
23
        const A* __restrict a_end = a_pos + size;
86
87
86.6k
        while (a_pos < a_end) {
88
86.6k
            *c_pos = Op::apply(*a_pos, b);
89
86.6k
            ++a_pos;
90
86.6k
            ++c_pos;
91
86.6k
        }
92
23
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
507
                                          PaddedPODArray<UInt8>& c) {
82
507
        size_t size = a.size();
83
507
        const A* __restrict a_pos = a.data();
84
507
        UInt8* __restrict c_pos = c.data();
85
507
        const A* __restrict a_end = a_pos + size;
86
87
1.42M
        while (a_pos < a_end) {
88
1.42M
            *c_pos = Op::apply(*a_pos, b);
89
1.42M
            ++a_pos;
90
1.42M
            ++c_pos;
91
1.42M
        }
92
507
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
135
                                          PaddedPODArray<UInt8>& c) {
82
135
        size_t size = a.size();
83
135
        const A* __restrict a_pos = a.data();
84
135
        UInt8* __restrict c_pos = c.data();
85
135
        const A* __restrict a_end = a_pos + size;
86
87
693k
        while (a_pos < a_end) {
88
693k
            *c_pos = Op::apply(*a_pos, b);
89
693k
            ++a_pos;
90
693k
            ++c_pos;
91
693k
        }
92
135
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
137
                                          PaddedPODArray<UInt8>& c) {
82
137
        size_t size = a.size();
83
137
        const A* __restrict a_pos = a.data();
84
137
        UInt8* __restrict c_pos = c.data();
85
137
        const A* __restrict a_end = a_pos + size;
86
87
517
        while (a_pos < a_end) {
88
380
            *c_pos = Op::apply(*a_pos, b);
89
380
            ++a_pos;
90
380
            ++c_pos;
91
380
        }
92
137
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_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
96
        while (a_pos < a_end) {
88
52
            *c_pos = Op::apply(*a_pos, b);
89
52
            ++a_pos;
90
52
            ++c_pos;
91
52
        }
92
44
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
64
                                          PaddedPODArray<UInt8>& c) {
82
64
        size_t size = a.size();
83
64
        const A* __restrict a_pos = a.data();
84
64
        UInt8* __restrict c_pos = c.data();
85
64
        const A* __restrict a_end = a_pos + size;
86
87
57.4k
        while (a_pos < a_end) {
88
57.4k
            *c_pos = Op::apply(*a_pos, b);
89
57.4k
            ++a_pos;
90
57.4k
            ++c_pos;
91
57.4k
        }
92
64
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
50
                                          PaddedPODArray<UInt8>& c) {
82
50
        size_t size = a.size();
83
50
        const A* __restrict a_pos = a.data();
84
50
        UInt8* __restrict c_pos = c.data();
85
50
        const A* __restrict a_end = a_pos + size;
86
87
12.2k
        while (a_pos < a_end) {
88
12.2k
            *c_pos = Op::apply(*a_pos, b);
89
12.2k
            ++a_pos;
90
12.2k
            ++c_pos;
91
12.2k
        }
92
50
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
102
                                          PaddedPODArray<UInt8>& c) {
82
102
        size_t size = a.size();
83
102
        const A* __restrict a_pos = a.data();
84
102
        UInt8* __restrict c_pos = c.data();
85
102
        const A* __restrict a_end = a_pos + size;
86
87
77.8k
        while (a_pos < a_end) {
88
77.7k
            *c_pos = Op::apply(*a_pos, b);
89
77.7k
            ++a_pos;
90
77.7k
            ++c_pos;
91
77.7k
        }
92
102
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
105
                                          PaddedPODArray<UInt8>& c) {
82
105
        size_t size = a.size();
83
105
        const A* __restrict a_pos = a.data();
84
105
        UInt8* __restrict c_pos = c.data();
85
105
        const A* __restrict a_end = a_pos + size;
86
87
11.7k
        while (a_pos < a_end) {
88
11.6k
            *c_pos = Op::apply(*a_pos, b);
89
11.6k
            ++a_pos;
90
11.6k
            ++c_pos;
91
11.6k
        }
92
105
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_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
3.87M
        while (a_pos < a_end) {
88
3.86M
            *c_pos = Op::apply(*a_pos, b);
89
3.86M
            ++a_pos;
90
3.86M
            ++c_pos;
91
3.86M
        }
92
1.79k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_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
3.87M
        while (a_pos < a_end) {
88
3.87M
            *c_pos = Op::apply(*a_pos, b);
89
3.87M
            ++a_pos;
90
3.87M
            ++c_pos;
91
3.87M
        }
92
1.79k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
163
                                          PaddedPODArray<UInt8>& c) {
82
163
        size_t size = a.size();
83
163
        const A* __restrict a_pos = a.data();
84
163
        UInt8* __restrict c_pos = c.data();
85
163
        const A* __restrict a_end = a_pos + size;
86
87
5.53k
        while (a_pos < a_end) {
88
5.36k
            *c_pos = Op::apply(*a_pos, b);
89
5.36k
            ++a_pos;
90
5.36k
            ++c_pos;
91
5.36k
        }
92
163
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
228
                                          PaddedPODArray<UInt8>& c) {
82
228
        size_t size = a.size();
83
228
        const A* __restrict a_pos = a.data();
84
228
        UInt8* __restrict c_pos = c.data();
85
228
        const A* __restrict a_end = a_pos + size;
86
87
2.22k
        while (a_pos < a_end) {
88
1.99k
            *c_pos = Op::apply(*a_pos, b);
89
1.99k
            ++a_pos;
90
1.99k
            ++c_pos;
91
1.99k
        }
92
228
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
29
                                          PaddedPODArray<UInt8>& c) {
82
29
        size_t size = a.size();
83
29
        const A* __restrict a_pos = a.data();
84
29
        UInt8* __restrict c_pos = c.data();
85
29
        const A* __restrict a_end = a_pos + size;
86
87
110k
        while (a_pos < a_end) {
88
110k
            *c_pos = Op::apply(*a_pos, b);
89
110k
            ++a_pos;
90
110k
            ++c_pos;
91
110k
        }
92
29
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
12
                                          PaddedPODArray<UInt8>& c) {
82
12
        size_t size = a.size();
83
12
        const A* __restrict a_pos = a.data();
84
12
        UInt8* __restrict c_pos = c.data();
85
12
        const A* __restrict a_end = a_pos + size;
86
87
29.4k
        while (a_pos < a_end) {
88
29.4k
            *c_pos = Op::apply(*a_pos, b);
89
29.4k
            ++a_pos;
90
29.4k
            ++c_pos;
91
29.4k
        }
92
12
    }
_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
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
15
        while (a_pos < a_end) {
88
9
            *c_pos = Op::apply(*a_pos, b);
89
9
            ++a_pos;
90
9
            ++c_pos;
91
9
        }
92
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
102
                                          PaddedPODArray<UInt8>& c) {
82
102
        size_t size = a.size();
83
102
        const A* __restrict a_pos = a.data();
84
102
        UInt8* __restrict c_pos = c.data();
85
102
        const A* __restrict a_end = a_pos + size;
86
87
355k
        while (a_pos < a_end) {
88
355k
            *c_pos = Op::apply(*a_pos, b);
89
355k
            ++a_pos;
90
355k
            ++c_pos;
91
355k
        }
92
102
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
106
                                          PaddedPODArray<UInt8>& c) {
82
106
        size_t size = a.size();
83
106
        const A* __restrict a_pos = a.data();
84
106
        UInt8* __restrict c_pos = c.data();
85
106
        const A* __restrict a_end = a_pos + size;
86
87
275k
        while (a_pos < a_end) {
88
275k
            *c_pos = Op::apply(*a_pos, b);
89
275k
            ++a_pos;
90
275k
            ++c_pos;
91
275k
        }
92
106
    }
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
108
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
108
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
257k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
257k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
257k
        }
113
108
    }
_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
30
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
30
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
98.6k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
98.6k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
98.6k
        }
113
30
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
41
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
41
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
158k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
158k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
158k
        }
113
41
    }
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
415
                                                      PaddedPODArray<UInt8>& c) {
127
415
        size_t size = a_offsets.size();
128
415
        ColumnString::Offset prev_a_offset = 0;
129
415
        ColumnString::Offset prev_b_offset = 0;
130
415
        const auto* a_pos = a_data.data();
131
415
        const auto* b_pos = b_data.data();
132
133
1.12k
        for (size_t i = 0; i < size; ++i) {
134
712
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
712
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
712
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
712
                             0);
138
139
712
            prev_a_offset = a_offsets[i];
140
712
            prev_b_offset = b_offsets[i];
141
712
        }
142
415
    }
_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
367
                                                      PaddedPODArray<UInt8>& c) {
127
367
        size_t size = a_offsets.size();
128
367
        ColumnString::Offset prev_a_offset = 0;
129
367
        ColumnString::Offset prev_b_offset = 0;
130
367
        const auto* a_pos = a_data.data();
131
367
        const auto* b_pos = b_data.data();
132
133
738
        for (size_t i = 0; i < size; ++i) {
134
371
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
371
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
371
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
371
                             0);
138
139
371
            prev_a_offset = a_offsets[i];
140
371
            prev_b_offset = b_offsets[i];
141
371
        }
142
367
    }
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
718
                                                 PaddedPODArray<UInt8>& c) {
149
718
        size_t size = a_offsets.size();
150
718
        ColumnString::Offset prev_a_offset = 0;
151
718
        const auto* a_pos = a_data.data();
152
718
        const auto* b_pos = b_data.data();
153
154
897k
        for (size_t i = 0; i < size; ++i) {
155
896k
            c[i] = Op::apply(
156
896k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
896k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
896k
                    0);
159
160
896k
            prev_a_offset = a_offsets[i];
161
896k
        }
162
718
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
191
                                                 PaddedPODArray<UInt8>& c) {
149
191
        size_t size = a_offsets.size();
150
191
        ColumnString::Offset prev_a_offset = 0;
151
191
        const auto* a_pos = a_data.data();
152
191
        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
191
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
123
                                                 PaddedPODArray<UInt8>& c) {
149
123
        size_t size = a_offsets.size();
150
123
        ColumnString::Offset prev_a_offset = 0;
151
123
        const auto* a_pos = a_data.data();
152
123
        const auto* b_pos = b_data.data();
153
154
72.1k
        for (size_t i = 0; i < size; ++i) {
155
72.0k
            c[i] = Op::apply(
156
72.0k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.0k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.0k
                    0);
159
160
72.0k
            prev_a_offset = a_offsets[i];
161
72.0k
        }
162
123
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
207
                                                 PaddedPODArray<UInt8>& c) {
149
207
        size_t size = a_offsets.size();
150
207
        ColumnString::Offset prev_a_offset = 0;
151
207
        const auto* a_pos = a_data.data();
152
207
        const auto* b_pos = b_data.data();
153
154
217k
        for (size_t i = 0; i < size; ++i) {
155
217k
            c[i] = Op::apply(
156
217k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
217k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
217k
                    0);
159
160
217k
            prev_a_offset = a_offsets[i];
161
217k
        }
162
207
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
197
                                                 PaddedPODArray<UInt8>& c) {
149
197
        size_t size = a_offsets.size();
150
197
        ColumnString::Offset prev_a_offset = 0;
151
197
        const auto* a_pos = a_data.data();
152
197
        const auto* b_pos = b_data.data();
153
154
283k
        for (size_t i = 0; i < size; ++i) {
155
282k
            c[i] = Op::apply(
156
282k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
282k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
282k
                    0);
159
160
282k
            prev_a_offset = a_offsets[i];
161
282k
        }
162
197
    }
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
455
                                                      PaddedPODArray<UInt8>& c) {
181
455
        size_t size = a_offsets.size();
182
455
        ColumnString::Offset prev_a_offset = 0;
183
455
        ColumnString::Offset prev_b_offset = 0;
184
455
        const auto* a_pos = a_data.data();
185
455
        const auto* b_pos = b_data.data();
186
187
1.21k
        for (size_t i = 0; i < size; ++i) {
188
758
            auto a_size = a_offsets[i] - prev_a_offset;
189
758
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
758
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
758
                                                               b_pos + prev_b_offset, b_size);
193
194
758
            prev_a_offset = a_offsets[i];
195
758
            prev_b_offset = b_offsets[i];
196
758
        }
197
455
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
454
                                                      PaddedPODArray<UInt8>& c) {
181
454
        size_t size = a_offsets.size();
182
454
        ColumnString::Offset prev_a_offset = 0;
183
454
        ColumnString::Offset prev_b_offset = 0;
184
454
        const auto* a_pos = a_data.data();
185
454
        const auto* b_pos = b_data.data();
186
187
1.20k
        for (size_t i = 0; i < size; ++i) {
188
754
            auto a_size = a_offsets[i] - prev_a_offset;
189
754
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
754
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
754
                                                               b_pos + prev_b_offset, b_size);
193
194
754
            prev_a_offset = a_offsets[i];
195
754
            prev_b_offset = b_offsets[i];
196
754
        }
197
454
    }
_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
10.9k
                                                 PaddedPODArray<UInt8>& c) {
204
10.9k
        size_t size = a_offsets.size();
205
10.9k
        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
10.8k
        } else {
215
10.8k
            ColumnString::Offset prev_a_offset = 0;
216
10.8k
            const auto* a_pos = a_data.data();
217
10.8k
            const auto* b_pos = b_data.data();
218
1.45M
            for (size_t i = 0; i < size; ++i) {
219
1.44M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.44M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.44M
                                                                   b_pos, b_size);
222
1.44M
                prev_a_offset = a_offsets[i];
223
1.44M
            }
224
10.8k
        }
225
10.9k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
10.8k
                                                 PaddedPODArray<UInt8>& c) {
204
10.8k
        size_t size = a_offsets.size();
205
10.8k
        if (b_size == 0) {
206
0
            auto* __restrict data = c.data();
207
0
            auto* __restrict offsets = a_offsets.data();
208
209
0
            ColumnString::Offset prev_a_offset = 0;
210
0
            for (size_t i = 0; i < size; ++i) {
211
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
0
                prev_a_offset = offsets[i];
213
0
            }
214
10.8k
        } else {
215
10.8k
            ColumnString::Offset prev_a_offset = 0;
216
10.8k
            const auto* a_pos = a_data.data();
217
10.8k
            const auto* b_pos = b_data.data();
218
1.40M
            for (size_t i = 0; i < size; ++i) {
219
1.39M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.39M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.39M
                                                                   b_pos, b_size);
222
1.39M
                prev_a_offset = a_offsets[i];
223
1.39M
            }
224
10.8k
        }
225
10.8k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
116
                                                 PaddedPODArray<UInt8>& c) {
204
116
        size_t size = a_offsets.size();
205
116
        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
91
        } else {
215
91
            ColumnString::Offset prev_a_offset = 0;
216
91
            const auto* a_pos = a_data.data();
217
91
            const auto* b_pos = b_data.data();
218
43.2k
            for (size_t i = 0; i < size; ++i) {
219
43.1k
                auto a_size = a_offsets[i] - prev_a_offset;
220
43.1k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
43.1k
                                                                   b_pos, b_size);
222
43.1k
                prev_a_offset = a_offsets[i];
223
43.1k
            }
224
91
        }
225
116
    }
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
321k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
252k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.13k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
5.01k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
30.3k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
2.73k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
29.8k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
321k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
252k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.13k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
5.01k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
30.3k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
2.73k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
29.8k
    FunctionComparison() = default;
268
269
692k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
679k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
543
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
3.40k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
4.45k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
1.73k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
2.96k
    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
32.4k
                            const ColumnPtr& col_right_ptr) const {
275
32.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
32.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
32.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
32.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
32.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
32.4k
        if (!left_is_const && !right_is_const) {
284
13.8k
            auto col_res = ColumnUInt8::create();
285
286
13.8k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
13.8k
            vec_res.resize(col_left->get_data().size());
288
13.8k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
13.8k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
13.8k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
13.8k
                                                     vec_res);
292
293
13.8k
            block.replace_by_position(result, std::move(col_res));
294
18.5k
        } else if (!left_is_const && right_is_const) {
295
18.5k
            auto col_res = ColumnUInt8::create();
296
297
18.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
18.5k
            vec_res.resize(col_left->size());
299
18.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
18.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
18.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
18.5k
                                                       col_right->get_element(0), vec_res);
303
304
18.5k
            block.replace_by_position(result, std::move(col_res));
305
18.5k
        } 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
32.4k
        return Status::OK();
318
32.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
99
                            const ColumnPtr& col_right_ptr) const {
275
99
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
99
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
99
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
99
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
99
        DCHECK(!(left_is_const && right_is_const));
282
283
99
        if (!left_is_const && !right_is_const) {
284
73
            auto col_res = ColumnUInt8::create();
285
286
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
73
            vec_res.resize(col_left->get_data().size());
288
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
73
                              typename PrimitiveTypeTraits<PT>::CppType,
290
73
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
73
                                                     vec_res);
292
293
73
            block.replace_by_position(result, std::move(col_res));
294
73
        } else if (!left_is_const && right_is_const) {
295
26
            auto col_res = ColumnUInt8::create();
296
297
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
26
            vec_res.resize(col_left->size());
299
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              typename PrimitiveTypeTraits<PT>::CppType,
301
26
                              Op<PT>>::vector_constant(col_left->get_data(),
302
26
                                                       col_right->get_element(0), vec_res);
303
304
26
            block.replace_by_position(result, std::move(col_res));
305
26
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
99
        return Status::OK();
318
99
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.00k
                            const ColumnPtr& col_right_ptr) const {
275
1.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.00k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.00k
        if (!left_is_const && !right_is_const) {
284
372
            auto col_res = ColumnUInt8::create();
285
286
372
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
372
            vec_res.resize(col_left->get_data().size());
288
372
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
372
                              typename PrimitiveTypeTraits<PT>::CppType,
290
372
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
372
                                                     vec_res);
292
293
372
            block.replace_by_position(result, std::move(col_res));
294
637
        } else if (!left_is_const && right_is_const) {
295
637
            auto col_res = ColumnUInt8::create();
296
297
637
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
637
            vec_res.resize(col_left->size());
299
637
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
637
                              typename PrimitiveTypeTraits<PT>::CppType,
301
637
                              Op<PT>>::vector_constant(col_left->get_data(),
302
637
                                                       col_right->get_element(0), vec_res);
303
304
637
            block.replace_by_position(result, std::move(col_res));
305
637
        } 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.00k
        return Status::OK();
318
1.00k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
530
                            const ColumnPtr& col_right_ptr) const {
275
530
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
530
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
530
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
530
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
530
        DCHECK(!(left_is_const && right_is_const));
282
283
530
        if (!left_is_const && !right_is_const) {
284
295
            auto col_res = ColumnUInt8::create();
285
286
295
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
295
            vec_res.resize(col_left->get_data().size());
288
295
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
295
                              typename PrimitiveTypeTraits<PT>::CppType,
290
295
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
295
                                                     vec_res);
292
293
295
            block.replace_by_position(result, std::move(col_res));
294
295
        } else if (!left_is_const && right_is_const) {
295
235
            auto col_res = ColumnUInt8::create();
296
297
235
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
235
            vec_res.resize(col_left->size());
299
235
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
235
                              typename PrimitiveTypeTraits<PT>::CppType,
301
235
                              Op<PT>>::vector_constant(col_left->get_data(),
302
235
                                                       col_right->get_element(0), vec_res);
303
304
235
            block.replace_by_position(result, std::move(col_res));
305
235
        } 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
530
        return Status::OK();
318
530
    }
_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.55k
                            const ColumnPtr& col_right_ptr) const {
275
3.55k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.55k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.55k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.55k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.55k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.55k
        if (!left_is_const && !right_is_const) {
284
942
            auto col_res = ColumnUInt8::create();
285
286
942
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
942
            vec_res.resize(col_left->get_data().size());
288
942
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
942
                              typename PrimitiveTypeTraits<PT>::CppType,
290
942
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
942
                                                     vec_res);
292
293
942
            block.replace_by_position(result, std::move(col_res));
294
2.61k
        } else if (!left_is_const && right_is_const) {
295
2.61k
            auto col_res = ColumnUInt8::create();
296
297
2.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.61k
            vec_res.resize(col_left->size());
299
2.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.61k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.61k
                                                       col_right->get_element(0), vec_res);
303
304
2.61k
            block.replace_by_position(result, std::move(col_res));
305
2.61k
        } 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.55k
        return Status::OK();
318
3.55k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
473
                            const ColumnPtr& col_right_ptr) const {
275
473
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
473
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
473
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
473
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
473
        DCHECK(!(left_is_const && right_is_const));
282
283
474
        if (!left_is_const && !right_is_const) {
284
133
            auto col_res = ColumnUInt8::create();
285
286
133
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
133
            vec_res.resize(col_left->get_data().size());
288
133
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
133
                              typename PrimitiveTypeTraits<PT>::CppType,
290
133
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
133
                                                     vec_res);
292
293
133
            block.replace_by_position(result, std::move(col_res));
294
341
        } else if (!left_is_const && right_is_const) {
295
341
            auto col_res = ColumnUInt8::create();
296
297
341
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
341
            vec_res.resize(col_left->size());
299
341
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
341
                              typename PrimitiveTypeTraits<PT>::CppType,
301
341
                              Op<PT>>::vector_constant(col_left->get_data(),
302
341
                                                       col_right->get_element(0), vec_res);
303
304
341
            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
473
        return Status::OK();
318
473
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.81k
                            const ColumnPtr& col_right_ptr) const {
275
1.81k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.81k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.81k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.81k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.81k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.81k
        if (!left_is_const && !right_is_const) {
284
265
            auto col_res = ColumnUInt8::create();
285
286
265
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
265
            vec_res.resize(col_left->get_data().size());
288
265
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
265
                              typename PrimitiveTypeTraits<PT>::CppType,
290
265
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
265
                                                     vec_res);
292
293
265
            block.replace_by_position(result, std::move(col_res));
294
1.55k
        } else if (!left_is_const && right_is_const) {
295
1.54k
            auto col_res = ColumnUInt8::create();
296
297
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.54k
            vec_res.resize(col_left->size());
299
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.54k
                                                       col_right->get_element(0), vec_res);
303
304
1.54k
            block.replace_by_position(result, std::move(col_res));
305
1.54k
        } else if (left_is_const && !right_is_const) {
306
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
1.81k
        return Status::OK();
318
1.81k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.00k
                            const ColumnPtr& col_right_ptr) const {
275
1.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.00k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.00k
        if (!left_is_const && !right_is_const) {
284
216
            auto col_res = ColumnUInt8::create();
285
286
216
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
216
            vec_res.resize(col_left->get_data().size());
288
216
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
216
                              typename PrimitiveTypeTraits<PT>::CppType,
290
216
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
216
                                                     vec_res);
292
293
216
            block.replace_by_position(result, std::move(col_res));
294
784
        } else if (!left_is_const && right_is_const) {
295
784
            auto col_res = ColumnUInt8::create();
296
297
784
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
784
            vec_res.resize(col_left->size());
299
784
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
784
                              typename PrimitiveTypeTraits<PT>::CppType,
301
784
                              Op<PT>>::vector_constant(col_left->get_data(),
302
784
                                                       col_right->get_element(0), vec_res);
303
304
784
            block.replace_by_position(result, std::move(col_res));
305
784
        } 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.00k
        return Status::OK();
318
1.00k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
117
                            const ColumnPtr& col_right_ptr) const {
275
117
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
117
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
117
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
117
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
117
        DCHECK(!(left_is_const && right_is_const));
282
283
117
        if (!left_is_const && !right_is_const) {
284
93
            auto col_res = ColumnUInt8::create();
285
286
93
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
93
            vec_res.resize(col_left->get_data().size());
288
93
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
93
                              typename PrimitiveTypeTraits<PT>::CppType,
290
93
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
93
                                                     vec_res);
292
293
93
            block.replace_by_position(result, std::move(col_res));
294
93
        } else if (!left_is_const && right_is_const) {
295
24
            auto col_res = ColumnUInt8::create();
296
297
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
24
            vec_res.resize(col_left->size());
299
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
24
                              typename PrimitiveTypeTraits<PT>::CppType,
301
24
                              Op<PT>>::vector_constant(col_left->get_data(),
302
24
                                                       col_right->get_element(0), vec_res);
303
304
24
            block.replace_by_position(result, std::move(col_res));
305
24
        } 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
117
        return Status::OK();
318
117
    }
_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
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
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
107
        return Status::OK();
318
107
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
278
                            const ColumnPtr& col_right_ptr) const {
275
278
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
278
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
278
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
278
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
278
        DCHECK(!(left_is_const && right_is_const));
282
283
278
        if (!left_is_const && !right_is_const) {
284
111
            auto col_res = ColumnUInt8::create();
285
286
111
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
111
            vec_res.resize(col_left->get_data().size());
288
111
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
111
                              typename PrimitiveTypeTraits<PT>::CppType,
290
111
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
111
                                                     vec_res);
292
293
111
            block.replace_by_position(result, std::move(col_res));
294
167
        } else if (!left_is_const && right_is_const) {
295
167
            auto col_res = ColumnUInt8::create();
296
297
167
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
167
            vec_res.resize(col_left->size());
299
167
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
167
                              typename PrimitiveTypeTraits<PT>::CppType,
301
167
                              Op<PT>>::vector_constant(col_left->get_data(),
302
167
                                                       col_right->get_element(0), vec_res);
303
304
167
            block.replace_by_position(result, std::move(col_res));
305
167
        } 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
278
        return Status::OK();
318
278
    }
_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
41
                            const ColumnPtr& col_right_ptr) const {
275
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
41
        DCHECK(!(left_is_const && right_is_const));
282
283
41
        if (!left_is_const && !right_is_const) {
284
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
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
41
        return Status::OK();
318
41
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
92
                            const ColumnPtr& col_right_ptr) const {
275
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
92
        DCHECK(!(left_is_const && right_is_const));
282
283
92
        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
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
92
        return Status::OK();
318
92
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
868
                            const ColumnPtr& col_right_ptr) const {
275
868
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
868
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
868
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
868
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
868
        DCHECK(!(left_is_const && right_is_const));
282
283
868
        if (!left_is_const && !right_is_const) {
284
805
            auto col_res = ColumnUInt8::create();
285
286
805
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
805
            vec_res.resize(col_left->get_data().size());
288
805
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
805
                              typename PrimitiveTypeTraits<PT>::CppType,
290
805
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
805
                                                     vec_res);
292
293
805
            block.replace_by_position(result, std::move(col_res));
294
805
        } else if (!left_is_const && right_is_const) {
295
63
            auto col_res = ColumnUInt8::create();
296
297
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
63
            vec_res.resize(col_left->size());
299
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
63
                              typename PrimitiveTypeTraits<PT>::CppType,
301
63
                              Op<PT>>::vector_constant(col_left->get_data(),
302
63
                                                       col_right->get_element(0), vec_res);
303
304
63
            block.replace_by_position(result, std::move(col_res));
305
63
        } 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
868
        return Status::OK();
318
868
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
488
                            const ColumnPtr& col_right_ptr) const {
275
488
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
488
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
488
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
488
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
488
        DCHECK(!(left_is_const && right_is_const));
282
283
488
        if (!left_is_const && !right_is_const) {
284
466
            auto col_res = ColumnUInt8::create();
285
286
466
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
466
            vec_res.resize(col_left->get_data().size());
288
466
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
466
                              typename PrimitiveTypeTraits<PT>::CppType,
290
466
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
466
                                                     vec_res);
292
293
466
            block.replace_by_position(result, std::move(col_res));
294
466
        } else if (!left_is_const && right_is_const) {
295
22
            auto col_res = ColumnUInt8::create();
296
297
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
22
            vec_res.resize(col_left->size());
299
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
22
                              typename PrimitiveTypeTraits<PT>::CppType,
301
22
                              Op<PT>>::vector_constant(col_left->get_data(),
302
22
                                                       col_right->get_element(0), vec_res);
303
304
22
            block.replace_by_position(result, std::move(col_res));
305
22
        } 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
488
        return Status::OK();
318
488
    }
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
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
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
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
72
        return Status::OK();
318
72
    }
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.08k
                            const ColumnPtr& col_right_ptr) const {
275
1.08k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.08k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.08k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.08k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.08k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.08k
        if (!left_is_const && !right_is_const) {
284
1.08k
            auto col_res = ColumnUInt8::create();
285
286
1.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.08k
            vec_res.resize(col_left->get_data().size());
288
1.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.08k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.08k
                                                     vec_res);
292
293
1.08k
            block.replace_by_position(result, std::move(col_res));
294
1.08k
        } 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
1.08k
        return Status::OK();
318
1.08k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_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
    }
_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
800
                            const ColumnPtr& col_right_ptr) const {
275
800
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
800
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
800
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
800
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
800
        DCHECK(!(left_is_const && right_is_const));
282
283
801
        if (!left_is_const && !right_is_const) {
284
391
            auto col_res = ColumnUInt8::create();
285
286
391
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
391
            vec_res.resize(col_left->get_data().size());
288
391
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
391
                              typename PrimitiveTypeTraits<PT>::CppType,
290
391
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
391
                                                     vec_res);
292
293
391
            block.replace_by_position(result, std::move(col_res));
294
411
        } else if (!left_is_const && right_is_const) {
295
411
            auto col_res = ColumnUInt8::create();
296
297
411
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
411
            vec_res.resize(col_left->size());
299
411
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
411
                              typename PrimitiveTypeTraits<PT>::CppType,
301
411
                              Op<PT>>::vector_constant(col_left->get_data(),
302
411
                                                       col_right->get_element(0), vec_res);
303
304
411
            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
800
        return Status::OK();
318
800
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.04k
                            const ColumnPtr& col_right_ptr) const {
275
1.04k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.04k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.04k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.04k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.04k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.05k
        if (!left_is_const && !right_is_const) {
284
639
            auto col_res = ColumnUInt8::create();
285
286
639
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
639
            vec_res.resize(col_left->get_data().size());
288
639
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
639
                              typename PrimitiveTypeTraits<PT>::CppType,
290
639
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
639
                                                     vec_res);
292
293
639
            block.replace_by_position(result, std::move(col_res));
294
639
        } else if (!left_is_const && right_is_const) {
295
412
            auto col_res = ColumnUInt8::create();
296
297
412
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
412
            vec_res.resize(col_left->size());
299
412
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
412
                              typename PrimitiveTypeTraits<PT>::CppType,
301
412
                              Op<PT>>::vector_constant(col_left->get_data(),
302
412
                                                       col_right->get_element(0), vec_res);
303
304
412
            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.04k
        return Status::OK();
318
1.04k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4.78k
                            const ColumnPtr& col_right_ptr) const {
275
4.78k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4.78k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4.78k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4.78k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4.78k
        DCHECK(!(left_is_const && right_is_const));
282
283
4.78k
        if (!left_is_const && !right_is_const) {
284
2.94k
            auto col_res = ColumnUInt8::create();
285
286
2.94k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2.94k
            vec_res.resize(col_left->get_data().size());
288
2.94k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2.94k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2.94k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2.94k
                                                     vec_res);
292
293
2.94k
            block.replace_by_position(result, std::move(col_res));
294
2.94k
        } else if (!left_is_const && right_is_const) {
295
1.84k
            auto col_res = ColumnUInt8::create();
296
297
1.84k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.84k
            vec_res.resize(col_left->size());
299
1.84k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.84k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.84k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.84k
                                                       col_right->get_element(0), vec_res);
303
304
1.84k
            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
4.78k
        return Status::OK();
318
4.78k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.36k
                            const ColumnPtr& col_right_ptr) const {
275
1.36k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.36k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.36k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.36k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.36k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.36k
        if (!left_is_const && !right_is_const) {
284
127
            auto col_res = ColumnUInt8::create();
285
286
127
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
127
            vec_res.resize(col_left->get_data().size());
288
127
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
127
                              typename PrimitiveTypeTraits<PT>::CppType,
290
127
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
127
                                                     vec_res);
292
293
127
            block.replace_by_position(result, std::move(col_res));
294
1.23k
        } else if (!left_is_const && right_is_const) {
295
1.23k
            auto col_res = ColumnUInt8::create();
296
297
1.23k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.23k
            vec_res.resize(col_left->size());
299
1.23k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.23k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.23k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.23k
                                                       col_right->get_element(0), vec_res);
303
304
1.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
1.36k
        return Status::OK();
318
1.36k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
245
                            const ColumnPtr& col_right_ptr) const {
275
245
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
245
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
245
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
245
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
245
        DCHECK(!(left_is_const && right_is_const));
282
283
245
        if (!left_is_const && !right_is_const) {
284
40
            auto col_res = ColumnUInt8::create();
285
286
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
40
            vec_res.resize(col_left->get_data().size());
288
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
40
                              typename PrimitiveTypeTraits<PT>::CppType,
290
40
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
40
                                                     vec_res);
292
293
40
            block.replace_by_position(result, std::move(col_res));
294
206
        } else if (!left_is_const && right_is_const) {
295
206
            auto col_res = ColumnUInt8::create();
296
297
206
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
206
            vec_res.resize(col_left->size());
299
206
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
206
                              typename PrimitiveTypeTraits<PT>::CppType,
301
206
                              Op<PT>>::vector_constant(col_left->get_data(),
302
206
                                                       col_right->get_element(0), vec_res);
303
304
206
            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
245
        return Status::OK();
318
245
    }
_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
228
                            const ColumnPtr& col_right_ptr) const {
275
228
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
228
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
228
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
228
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
228
        DCHECK(!(left_is_const && right_is_const));
282
283
228
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
208
        } else if (!left_is_const && right_is_const) {
295
208
            auto col_res = ColumnUInt8::create();
296
297
208
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
208
            vec_res.resize(col_left->size());
299
208
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
208
                              typename PrimitiveTypeTraits<PT>::CppType,
301
208
                              Op<PT>>::vector_constant(col_left->get_data(),
302
208
                                                       col_right->get_element(0), vec_res);
303
304
208
            block.replace_by_position(result, std::move(col_res));
305
208
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
228
        return Status::OK();
318
228
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
544
                            const ColumnPtr& col_right_ptr) const {
275
544
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
544
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
544
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
544
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
544
        DCHECK(!(left_is_const && right_is_const));
282
283
544
        if (!left_is_const && !right_is_const) {
284
45
            auto col_res = ColumnUInt8::create();
285
286
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
45
            vec_res.resize(col_left->get_data().size());
288
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
45
                              typename PrimitiveTypeTraits<PT>::CppType,
290
45
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
45
                                                     vec_res);
292
293
45
            block.replace_by_position(result, std::move(col_res));
294
499
        } else if (!left_is_const && right_is_const) {
295
499
            auto col_res = ColumnUInt8::create();
296
297
499
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
499
            vec_res.resize(col_left->size());
299
499
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
499
                              typename PrimitiveTypeTraits<PT>::CppType,
301
499
                              Op<PT>>::vector_constant(col_left->get_data(),
302
499
                                                       col_right->get_element(0), vec_res);
303
304
499
            block.replace_by_position(result, std::move(col_res));
305
499
        } 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
544
        return Status::OK();
318
544
    }
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
25
                            const ColumnPtr& col_right_ptr) const {
275
25
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
25
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
25
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
25
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
25
        DCHECK(!(left_is_const && right_is_const));
282
283
25
        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
25
        } else if (!left_is_const && right_is_const) {
295
25
            auto col_res = ColumnUInt8::create();
296
297
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
25
            vec_res.resize(col_left->size());
299
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
25
                              typename PrimitiveTypeTraits<PT>::CppType,
301
25
                              Op<PT>>::vector_constant(col_left->get_data(),
302
25
                                                       col_right->get_element(0), vec_res);
303
304
25
            block.replace_by_position(result, std::move(col_res));
305
25
        } 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
25
        return Status::OK();
318
25
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
514
                            const ColumnPtr& col_right_ptr) const {
275
514
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
514
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
514
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
514
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
514
        DCHECK(!(left_is_const && right_is_const));
282
283
514
        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
507
        } else if (!left_is_const && right_is_const) {
295
507
            auto col_res = ColumnUInt8::create();
296
297
507
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
507
            vec_res.resize(col_left->size());
299
507
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
507
                              typename PrimitiveTypeTraits<PT>::CppType,
301
507
                              Op<PT>>::vector_constant(col_left->get_data(),
302
507
                                                       col_right->get_element(0), vec_res);
303
304
507
            block.replace_by_position(result, std::move(col_res));
305
507
        } 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
514
        return Status::OK();
318
514
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
147
                            const ColumnPtr& col_right_ptr) const {
275
147
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
147
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
147
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
147
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
147
        DCHECK(!(left_is_const && right_is_const));
282
283
147
        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
137
        } else if (!left_is_const && right_is_const) {
295
137
            auto col_res = ColumnUInt8::create();
296
297
137
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
137
            vec_res.resize(col_left->size());
299
137
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
137
                              typename PrimitiveTypeTraits<PT>::CppType,
301
137
                              Op<PT>>::vector_constant(col_left->get_data(),
302
137
                                                       col_right->get_element(0), vec_res);
303
304
137
            block.replace_by_position(result, std::move(col_res));
305
137
        } 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
147
        return Status::OK();
318
147
    }
_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
64
                            const ColumnPtr& col_right_ptr) const {
275
64
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
64
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
64
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
64
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
64
        DCHECK(!(left_is_const && right_is_const));
282
283
64
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
64
        } else if (!left_is_const && right_is_const) {
295
64
            auto col_res = ColumnUInt8::create();
296
297
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
64
            vec_res.resize(col_left->size());
299
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
64
                              typename PrimitiveTypeTraits<PT>::CppType,
301
64
                              Op<PT>>::vector_constant(col_left->get_data(),
302
64
                                                       col_right->get_element(0), vec_res);
303
304
64
            block.replace_by_position(result, std::move(col_res));
305
64
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
64
        return Status::OK();
318
64
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
102
                            const ColumnPtr& col_right_ptr) const {
275
102
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
102
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
102
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
102
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
102
        DCHECK(!(left_is_const && right_is_const));
282
283
102
        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
102
        } else if (!left_is_const && right_is_const) {
295
102
            auto col_res = ColumnUInt8::create();
296
297
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
102
            vec_res.resize(col_left->size());
299
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
102
                              typename PrimitiveTypeTraits<PT>::CppType,
301
102
                              Op<PT>>::vector_constant(col_left->get_data(),
302
102
                                                       col_right->get_element(0), vec_res);
303
304
102
            block.replace_by_position(result, std::move(col_res));
305
102
        } 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
102
        return Status::OK();
318
102
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.80k
                            const ColumnPtr& col_right_ptr) const {
275
1.80k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.80k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.80k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.80k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.80k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.80k
        if (!left_is_const && !right_is_const) {
284
5
            auto col_res = ColumnUInt8::create();
285
286
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
5
            vec_res.resize(col_left->get_data().size());
288
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
5
                              typename PrimitiveTypeTraits<PT>::CppType,
290
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
5
                                                     vec_res);
292
293
5
            block.replace_by_position(result, std::move(col_res));
294
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.80k
        return Status::OK();
318
1.80k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
180
                            const ColumnPtr& col_right_ptr) const {
275
180
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
180
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
180
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
180
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
180
        DCHECK(!(left_is_const && right_is_const));
282
283
180
        if (!left_is_const && !right_is_const) {
284
17
            auto col_res = ColumnUInt8::create();
285
286
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
17
            vec_res.resize(col_left->get_data().size());
288
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
17
                              typename PrimitiveTypeTraits<PT>::CppType,
290
17
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
17
                                                     vec_res);
292
293
17
            block.replace_by_position(result, std::move(col_res));
294
163
        } else if (!left_is_const && right_is_const) {
295
163
            auto col_res = ColumnUInt8::create();
296
297
163
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
163
            vec_res.resize(col_left->size());
299
163
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
163
                              typename PrimitiveTypeTraits<PT>::CppType,
301
163
                              Op<PT>>::vector_constant(col_left->get_data(),
302
163
                                                       col_right->get_element(0), vec_res);
303
304
163
            block.replace_by_position(result, std::move(col_res));
305
163
        } 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
180
        return Status::OK();
318
180
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
29
                            const ColumnPtr& col_right_ptr) const {
275
29
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
29
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
29
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
29
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
29
        DCHECK(!(left_is_const && right_is_const));
282
283
29
        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
29
        } else if (!left_is_const && right_is_const) {
295
29
            auto col_res = ColumnUInt8::create();
296
297
29
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
29
            vec_res.resize(col_left->size());
299
29
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
29
                              typename PrimitiveTypeTraits<PT>::CppType,
301
29
                              Op<PT>>::vector_constant(col_left->get_data(),
302
29
                                                       col_right->get_element(0), vec_res);
303
304
29
            block.replace_by_position(result, std::move(col_res));
305
29
        } 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
29
        return Status::OK();
318
29
    }
_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
26
                            const ColumnPtr& col_right_ptr) const {
275
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
26
        DCHECK(!(left_is_const && right_is_const));
282
283
26
        if (!left_is_const && !right_is_const) {
284
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
20
        } 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
26
        return Status::OK();
318
26
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
133
                            const ColumnPtr& col_right_ptr) const {
275
133
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
133
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
133
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
133
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
133
        DCHECK(!(left_is_const && right_is_const));
282
283
133
        if (!left_is_const && !right_is_const) {
284
31
            auto col_res = ColumnUInt8::create();
285
286
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
31
            vec_res.resize(col_left->get_data().size());
288
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
31
                              typename PrimitiveTypeTraits<PT>::CppType,
290
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
31
                                                     vec_res);
292
293
31
            block.replace_by_position(result, std::move(col_res));
294
102
        } else if (!left_is_const && right_is_const) {
295
102
            auto col_res = ColumnUInt8::create();
296
297
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
102
            vec_res.resize(col_left->size());
299
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
102
                              typename PrimitiveTypeTraits<PT>::CppType,
301
102
                              Op<PT>>::vector_constant(col_left->get_data(),
302
102
                                                       col_right->get_element(0), vec_res);
303
304
102
            block.replace_by_position(result, std::move(col_res));
305
102
        } 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
133
        return Status::OK();
318
133
    }
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
78
                            const ColumnPtr& col_right_ptr) const {
275
78
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
78
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
78
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
78
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
78
        DCHECK(!(left_is_const && right_is_const));
282
283
78
        if (!left_is_const && !right_is_const) {
284
78
            auto col_res = ColumnUInt8::create();
285
286
78
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
78
            vec_res.resize(col_left->get_data().size());
288
78
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
78
                              typename PrimitiveTypeTraits<PT>::CppType,
290
78
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
78
                                                     vec_res);
292
293
78
            block.replace_by_position(result, std::move(col_res));
294
78
        } 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
78
        return Status::OK();
318
78
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.06k
                            const ColumnPtr& col_right_ptr) const {
275
2.06k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.06k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.06k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.06k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.06k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.06k
        if (!left_is_const && !right_is_const) {
284
1.73k
            auto col_res = ColumnUInt8::create();
285
286
1.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.73k
            vec_res.resize(col_left->get_data().size());
288
1.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.73k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.73k
                                                     vec_res);
292
293
1.73k
            block.replace_by_position(result, std::move(col_res));
294
1.73k
        } else if (!left_is_const && right_is_const) {
295
331
            auto col_res = ColumnUInt8::create();
296
297
331
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
331
            vec_res.resize(col_left->size());
299
331
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
331
                              typename PrimitiveTypeTraits<PT>::CppType,
301
331
                              Op<PT>>::vector_constant(col_left->get_data(),
302
331
                                                       col_right->get_element(0), vec_res);
303
304
331
            block.replace_by_position(result, std::move(col_res));
305
331
        } 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.06k
        return Status::OK();
318
2.06k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
292
                            const ColumnPtr& col_right_ptr) const {
275
292
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
292
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
292
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
292
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
292
        DCHECK(!(left_is_const && right_is_const));
282
283
292
        if (!left_is_const && !right_is_const) {
284
232
            auto col_res = ColumnUInt8::create();
285
286
232
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
232
            vec_res.resize(col_left->get_data().size());
288
232
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
232
                              typename PrimitiveTypeTraits<PT>::CppType,
290
232
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
232
                                                     vec_res);
292
293
232
            block.replace_by_position(result, std::move(col_res));
294
232
        } else if (!left_is_const && right_is_const) {
295
59
            auto col_res = ColumnUInt8::create();
296
297
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
59
            vec_res.resize(col_left->size());
299
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
59
                              typename PrimitiveTypeTraits<PT>::CppType,
301
59
                              Op<PT>>::vector_constant(col_left->get_data(),
302
59
                                                       col_right->get_element(0), vec_res);
303
304
59
            block.replace_by_position(result, std::move(col_res));
305
59
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
292
        return Status::OK();
318
292
    }
_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
890
                            const ColumnPtr& col_right_ptr) const {
275
890
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
890
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
890
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
890
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
890
        DCHECK(!(left_is_const && right_is_const));
282
283
890
        if (!left_is_const && !right_is_const) {
284
851
            auto col_res = ColumnUInt8::create();
285
286
851
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
851
            vec_res.resize(col_left->get_data().size());
288
851
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
851
                              typename PrimitiveTypeTraits<PT>::CppType,
290
851
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
851
                                                     vec_res);
292
293
851
            block.replace_by_position(result, std::move(col_res));
294
851
        } else if (!left_is_const && right_is_const) {
295
39
            auto col_res = ColumnUInt8::create();
296
297
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
39
            vec_res.resize(col_left->size());
299
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
39
                              typename PrimitiveTypeTraits<PT>::CppType,
301
39
                              Op<PT>>::vector_constant(col_left->get_data(),
302
39
                                                       col_right->get_element(0), vec_res);
303
304
39
            block.replace_by_position(result, std::move(col_res));
305
39
        } 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
890
        return Status::OK();
318
890
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
122
                            const ColumnPtr& col_right_ptr) const {
275
122
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
122
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
122
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
122
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
122
        DCHECK(!(left_is_const && right_is_const));
282
283
122
        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
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
122
        return Status::OK();
318
122
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
705
                            const ColumnPtr& col_right_ptr) const {
275
705
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
705
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
705
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
705
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
705
        DCHECK(!(left_is_const && right_is_const));
282
283
705
        if (!left_is_const && !right_is_const) {
284
161
            auto col_res = ColumnUInt8::create();
285
286
161
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
161
            vec_res.resize(col_left->get_data().size());
288
161
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
161
                              typename PrimitiveTypeTraits<PT>::CppType,
290
161
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
161
                                                     vec_res);
292
293
161
            block.replace_by_position(result, std::move(col_res));
294
544
        } else if (!left_is_const && right_is_const) {
295
544
            auto col_res = ColumnUInt8::create();
296
297
544
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
544
            vec_res.resize(col_left->size());
299
544
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
544
                              typename PrimitiveTypeTraits<PT>::CppType,
301
544
                              Op<PT>>::vector_constant(col_left->get_data(),
302
544
                                                       col_right->get_element(0), vec_res);
303
304
544
            block.replace_by_position(result, std::move(col_res));
305
544
        } 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
705
        return Status::OK();
318
705
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
696
                            const ColumnPtr& col_right_ptr) const {
275
696
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
696
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
696
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
696
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
696
        DCHECK(!(left_is_const && right_is_const));
282
283
696
        if (!left_is_const && !right_is_const) {
284
194
            auto col_res = ColumnUInt8::create();
285
286
194
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
194
            vec_res.resize(col_left->get_data().size());
288
194
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
194
                              typename PrimitiveTypeTraits<PT>::CppType,
290
194
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
194
                                                     vec_res);
292
293
194
            block.replace_by_position(result, std::move(col_res));
294
502
        } else if (!left_is_const && right_is_const) {
295
502
            auto col_res = ColumnUInt8::create();
296
297
502
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
502
            vec_res.resize(col_left->size());
299
502
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
502
                              typename PrimitiveTypeTraits<PT>::CppType,
301
502
                              Op<PT>>::vector_constant(col_left->get_data(),
302
502
                                                       col_right->get_element(0), vec_res);
303
304
502
            block.replace_by_position(result, std::move(col_res));
305
502
        } 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
696
        return Status::OK();
318
696
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
184
                            const ColumnPtr& col_right_ptr) const {
275
184
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
184
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
184
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
184
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
184
        DCHECK(!(left_is_const && right_is_const));
282
283
184
        if (!left_is_const && !right_is_const) {
284
171
            auto col_res = ColumnUInt8::create();
285
286
171
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
171
            vec_res.resize(col_left->get_data().size());
288
171
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
171
                              typename PrimitiveTypeTraits<PT>::CppType,
290
171
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
171
                                                     vec_res);
292
293
171
            block.replace_by_position(result, std::move(col_res));
294
171
        } 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
184
        return Status::OK();
318
184
    }
_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
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
123
            auto col_res = ColumnUInt8::create();
285
286
123
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
123
            vec_res.resize(col_left->get_data().size());
288
123
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
123
                              typename PrimitiveTypeTraits<PT>::CppType,
290
123
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
123
                                                     vec_res);
292
293
123
            block.replace_by_position(result, std::move(col_res));
294
123
        } 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
123
        return Status::OK();
318
123
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
341
                            const ColumnPtr& col_right_ptr) const {
275
341
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
341
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
341
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
341
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
341
        DCHECK(!(left_is_const && right_is_const));
282
283
341
        if (!left_is_const && !right_is_const) {
284
150
            auto col_res = ColumnUInt8::create();
285
286
150
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
150
            vec_res.resize(col_left->get_data().size());
288
150
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
150
                              typename PrimitiveTypeTraits<PT>::CppType,
290
150
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
150
                                                     vec_res);
292
293
150
            block.replace_by_position(result, std::move(col_res));
294
191
        } else if (!left_is_const && right_is_const) {
295
190
            auto col_res = ColumnUInt8::create();
296
297
190
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
190
            vec_res.resize(col_left->size());
299
190
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
190
                              typename PrimitiveTypeTraits<PT>::CppType,
301
190
                              Op<PT>>::vector_constant(col_left->get_data(),
302
190
                                                       col_right->get_element(0), vec_res);
303
304
190
            block.replace_by_position(result, std::move(col_res));
305
190
        } 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
341
        return Status::OK();
318
341
    }
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
23
                            const ColumnPtr& col_right_ptr) const {
275
23
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
23
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
23
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
23
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
23
        DCHECK(!(left_is_const && right_is_const));
282
283
23
        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
23
        } else if (!left_is_const && right_is_const) {
295
23
            auto col_res = ColumnUInt8::create();
296
297
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
23
            vec_res.resize(col_left->size());
299
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
23
                              typename PrimitiveTypeTraits<PT>::CppType,
301
23
                              Op<PT>>::vector_constant(col_left->get_data(),
302
23
                                                       col_right->get_element(0), vec_res);
303
304
23
            block.replace_by_position(result, std::move(col_res));
305
23
        } 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
23
        return Status::OK();
318
23
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
566
                            const ColumnPtr& col_right_ptr) const {
275
566
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
566
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
566
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
566
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
566
        DCHECK(!(left_is_const && right_is_const));
282
283
566
        if (!left_is_const && !right_is_const) {
284
429
            auto col_res = ColumnUInt8::create();
285
286
429
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
429
            vec_res.resize(col_left->get_data().size());
288
429
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
429
                              typename PrimitiveTypeTraits<PT>::CppType,
290
429
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
429
                                                     vec_res);
292
293
429
            block.replace_by_position(result, std::move(col_res));
294
429
        } else if (!left_is_const && right_is_const) {
295
135
            auto col_res = ColumnUInt8::create();
296
297
135
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
135
            vec_res.resize(col_left->size());
299
135
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
135
                              typename PrimitiveTypeTraits<PT>::CppType,
301
135
                              Op<PT>>::vector_constant(col_left->get_data(),
302
135
                                                       col_right->get_element(0), vec_res);
303
304
135
            block.replace_by_position(result, std::move(col_res));
305
135
        } 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
566
        return Status::OK();
318
566
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
44
                            const ColumnPtr& col_right_ptr) const {
275
44
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
44
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
44
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
44
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
44
        DCHECK(!(left_is_const && right_is_const));
282
283
44
        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
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
44
        return Status::OK();
318
44
    }
_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
51
                            const ColumnPtr& col_right_ptr) const {
275
51
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
51
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
51
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
51
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
51
        DCHECK(!(left_is_const && right_is_const));
282
283
51
        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
50
        } else if (!left_is_const && right_is_const) {
295
50
            auto col_res = ColumnUInt8::create();
296
297
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
50
            vec_res.resize(col_left->size());
299
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
50
                              typename PrimitiveTypeTraits<PT>::CppType,
301
50
                              Op<PT>>::vector_constant(col_left->get_data(),
302
50
                                                       col_right->get_element(0), vec_res);
303
304
50
            block.replace_by_position(result, std::move(col_res));
305
50
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
51
        return Status::OK();
318
51
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
105
                            const ColumnPtr& col_right_ptr) const {
275
105
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
105
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
105
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
105
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
105
        DCHECK(!(left_is_const && right_is_const));
282
283
105
        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
105
        } else if (!left_is_const && right_is_const) {
295
105
            auto col_res = ColumnUInt8::create();
296
297
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
105
            vec_res.resize(col_left->size());
299
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
105
                              typename PrimitiveTypeTraits<PT>::CppType,
301
105
                              Op<PT>>::vector_constant(col_left->get_data(),
302
105
                                                       col_right->get_element(0), vec_res);
303
304
105
            block.replace_by_position(result, std::move(col_res));
305
105
        } 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
105
        return Status::OK();
318
105
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.85k
                            const ColumnPtr& col_right_ptr) const {
275
1.85k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.85k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.85k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.85k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.85k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.85k
        if (!left_is_const && !right_is_const) {
284
62
            auto col_res = ColumnUInt8::create();
285
286
62
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
62
            vec_res.resize(col_left->get_data().size());
288
62
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
62
                              typename PrimitiveTypeTraits<PT>::CppType,
290
62
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
62
                                                     vec_res);
292
293
62
            block.replace_by_position(result, std::move(col_res));
294
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.85k
        return Status::OK();
318
1.85k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
302
                            const ColumnPtr& col_right_ptr) const {
275
302
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
302
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
302
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
302
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
302
        DCHECK(!(left_is_const && right_is_const));
282
283
302
        if (!left_is_const && !right_is_const) {
284
74
            auto col_res = ColumnUInt8::create();
285
286
74
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
74
            vec_res.resize(col_left->get_data().size());
288
74
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
74
                              typename PrimitiveTypeTraits<PT>::CppType,
290
74
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
74
                                                     vec_res);
292
293
74
            block.replace_by_position(result, std::move(col_res));
294
228
        } else if (!left_is_const && right_is_const) {
295
228
            auto col_res = ColumnUInt8::create();
296
297
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
228
            vec_res.resize(col_left->size());
299
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
228
                              typename PrimitiveTypeTraits<PT>::CppType,
301
228
                              Op<PT>>::vector_constant(col_left->get_data(),
302
228
                                                       col_right->get_element(0), vec_res);
303
304
228
            block.replace_by_position(result, std::move(col_res));
305
228
        } 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
302
        return Status::OK();
318
302
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
12
                            const ColumnPtr& col_right_ptr) const {
275
12
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
12
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
12
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
12
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
12
        DCHECK(!(left_is_const && right_is_const));
282
283
12
        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
12
        } else if (!left_is_const && right_is_const) {
295
12
            auto col_res = ColumnUInt8::create();
296
297
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
12
            vec_res.resize(col_left->size());
299
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
12
                              typename PrimitiveTypeTraits<PT>::CppType,
301
12
                              Op<PT>>::vector_constant(col_left->get_data(),
302
12
                                                       col_right->get_element(0), vec_res);
303
304
12
            block.replace_by_position(result, std::move(col_res));
305
12
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
12
        return Status::OK();
318
12
    }
_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
20
                            const ColumnPtr& col_right_ptr) const {
275
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20
        DCHECK(!(left_is_const && right_is_const));
282
283
20
        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
20
        } 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
20
        return Status::OK();
318
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
126
                            const ColumnPtr& col_right_ptr) const {
275
126
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
126
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
126
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
126
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
126
        DCHECK(!(left_is_const && right_is_const));
282
283
126
        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
106
        } else if (!left_is_const && right_is_const) {
295
106
            auto col_res = ColumnUInt8::create();
296
297
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
106
            vec_res.resize(col_left->size());
299
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
106
                              typename PrimitiveTypeTraits<PT>::CppType,
301
106
                              Op<PT>>::vector_constant(col_left->get_data(),
302
106
                                                       col_right->get_element(0), vec_res);
303
304
106
            block.replace_by_position(result, std::move(col_res));
305
106
        } 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
126
        return Status::OK();
318
126
    }
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
3.15k
                           const ColumnWithTypeAndName& col_right) const {
322
3.15k
        auto call = [&](const auto& type) -> bool {
323
3.15k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.15k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.15k
                    block, result, col_left, col_right);
326
3.15k
            return true;
327
3.15k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
156
        auto call = [&](const auto& type) -> bool {
323
156
            using DispatchType = std::decay_t<decltype(type)>;
324
156
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
156
                    block, result, col_left, col_right);
326
156
            return true;
327
156
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
179
        auto call = [&](const auto& type) -> bool {
323
179
            using DispatchType = std::decay_t<decltype(type)>;
324
179
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
179
                    block, result, col_left, col_right);
326
179
            return true;
327
179
        };
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
959
        auto call = [&](const auto& type) -> bool {
323
959
            using DispatchType = std::decay_t<decltype(type)>;
324
959
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
959
                    block, result, col_left, col_right);
326
959
            return true;
327
959
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
34
        auto call = [&](const auto& type) -> bool {
323
34
            using DispatchType = std::decay_t<decltype(type)>;
324
34
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
34
                    block, result, col_left, col_right);
326
34
            return true;
327
34
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
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
28
        auto call = [&](const auto& type) -> bool {
323
28
            using DispatchType = std::decay_t<decltype(type)>;
324
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
28
                    block, result, col_left, col_right);
326
28
            return true;
327
28
        };
_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
12
        auto call = [&](const auto& type) -> bool {
323
12
            using DispatchType = std::decay_t<decltype(type)>;
324
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
12
                    block, result, col_left, col_right);
326
12
            return true;
327
12
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
66
        auto call = [&](const auto& type) -> bool {
323
66
            using DispatchType = std::decay_t<decltype(type)>;
324
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
66
                    block, result, col_left, col_right);
326
66
            return true;
327
66
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
784
        auto call = [&](const auto& type) -> bool {
323
784
            using DispatchType = std::decay_t<decltype(type)>;
324
784
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
784
                    block, result, col_left, col_right);
326
784
            return true;
327
784
        };
_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
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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
29
        auto call = [&](const auto& type) -> bool {
323
29
            using DispatchType = std::decay_t<decltype(type)>;
324
29
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
29
                    block, result, col_left, col_right);
326
29
            return true;
327
29
        };
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
28
        auto call = [&](const auto& type) -> bool {
323
28
            using DispatchType = std::decay_t<decltype(type)>;
324
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
28
                    block, result, col_left, col_right);
326
28
            return true;
327
28
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
21
        auto call = [&](const auto& type) -> bool {
323
21
            using DispatchType = std::decay_t<decltype(type)>;
324
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
21
                    block, result, col_left, col_right);
326
21
            return true;
327
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
185
        auto call = [&](const auto& type) -> bool {
323
185
            using DispatchType = std::decay_t<decltype(type)>;
324
185
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
185
                    block, result, col_left, col_right);
326
185
            return true;
327
185
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
226
        auto call = [&](const auto& type) -> bool {
323
226
            using DispatchType = std::decay_t<decltype(type)>;
324
226
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
226
                    block, result, col_left, col_right);
326
226
            return true;
327
226
        };
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
270
        auto call = [&](const auto& type) -> bool {
323
270
            using DispatchType = std::decay_t<decltype(type)>;
324
270
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
270
                    block, result, col_left, col_right);
326
270
            return true;
327
270
        };
_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
8
        auto call = [&](const auto& type) -> bool {
323
8
            using DispatchType = std::decay_t<decltype(type)>;
324
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
8
                    block, result, col_left, col_right);
326
8
            return true;
327
8
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
31
        auto call = [&](const auto& type) -> bool {
323
31
            using DispatchType = std::decay_t<decltype(type)>;
324
31
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
31
                    block, result, col_left, col_right);
326
31
            return true;
327
31
        };
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
26
        auto call = [&](const auto& type) -> bool {
323
26
            using DispatchType = std::decay_t<decltype(type)>;
324
26
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
26
                    block, result, col_left, col_right);
326
26
            return true;
327
26
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
16
        auto call = [&](const auto& type) -> bool {
323
16
            using DispatchType = std::decay_t<decltype(type)>;
324
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
16
                    block, result, col_left, col_right);
326
16
            return true;
327
16
        };
328
329
3.15k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
3.15k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
3.15k
        return Status::OK();
340
3.15k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.32k
                           const ColumnWithTypeAndName& col_right) const {
322
1.32k
        auto call = [&](const auto& type) -> bool {
323
1.32k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.32k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.32k
                    block, result, col_left, col_right);
326
1.32k
            return true;
327
1.32k
        };
328
329
1.32k
        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.32k
        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.32k
        return Status::OK();
340
1.32k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
119
                           const ColumnWithTypeAndName& col_right) const {
322
119
        auto call = [&](const auto& type) -> bool {
323
119
            using DispatchType = std::decay_t<decltype(type)>;
324
119
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
119
                    block, result, col_left, col_right);
326
119
            return true;
327
119
        };
328
329
119
        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
119
        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
119
        return Status::OK();
340
119
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
864
                           const ColumnWithTypeAndName& col_right) const {
322
864
        auto call = [&](const auto& type) -> bool {
323
864
            using DispatchType = std::decay_t<decltype(type)>;
324
864
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
864
                    block, result, col_left, col_right);
326
864
            return true;
327
864
        };
328
329
864
        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
864
        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
864
        return Status::OK();
340
864
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
79
                           const ColumnWithTypeAndName& col_right) const {
322
79
        auto call = [&](const auto& type) -> bool {
323
79
            using DispatchType = std::decay_t<decltype(type)>;
324
79
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
79
                    block, result, col_left, col_right);
326
79
            return true;
327
79
        };
328
329
79
        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
79
        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
79
        return Status::OK();
340
79
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
682
                           const ColumnWithTypeAndName& col_right) const {
322
682
        auto call = [&](const auto& type) -> bool {
323
682
            using DispatchType = std::decay_t<decltype(type)>;
324
682
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
682
                    block, result, col_left, col_right);
326
682
            return true;
327
682
        };
328
329
682
        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
682
        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
682
        return Status::OK();
340
682
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
81
                           const ColumnWithTypeAndName& col_right) const {
322
81
        auto call = [&](const auto& type) -> bool {
323
81
            using DispatchType = std::decay_t<decltype(type)>;
324
81
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
81
                    block, result, col_left, col_right);
326
81
            return true;
327
81
        };
328
329
81
        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
81
        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
81
        return Status::OK();
340
81
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
12.5k
                          const IColumn* c1) const {
344
12.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
12.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
12.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
12.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
12.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
12.5k
        DCHECK(!(c0_const && c1_const));
353
12.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
12.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
12.5k
        ColumnString::Offset c0_const_size = 0;
356
12.5k
        ColumnString::Offset c1_const_size = 0;
357
358
12.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
12.5k
        if (c1_const) {
372
11.6k
            const ColumnString* c1_const_string =
373
11.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
11.6k
            if (c1_const_string) {
376
11.6k
                c1_const_chars = &c1_const_string->get_chars();
377
11.6k
                c1_const_size = c1_const_string->get_offsets()[0];
378
11.6k
            } else {
379
2
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
2
                                            c1->get_name(), name);
381
2
            }
382
11.6k
        }
383
384
12.4k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
12.4k
        auto c_res = ColumnUInt8::create();
387
12.4k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
12.4k
        vec_res.resize(c0->size());
389
390
12.5k
        if (c0_string && c1_string) {
391
870
            StringImpl::string_vector_string_vector(
392
870
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
870
                    c1_string->get_offsets(), vec_res);
394
11.6k
        } else if (c0_string && c1_const) {
395
11.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
11.6k
                                               *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
12.5k
        block.replace_by_position(result, std::move(c_res));
406
12.5k
        return Status::OK();
407
12.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
11.2k
                          const IColumn* c1) const {
344
11.2k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
11.2k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
11.2k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
11.2k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
11.2k
        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
11.2k
        DCHECK(!(c0_const && c1_const));
353
11.2k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
11.2k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
11.2k
        ColumnString::Offset c0_const_size = 0;
356
11.2k
        ColumnString::Offset c1_const_size = 0;
357
358
11.2k
        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
11.2k
        if (c1_const) {
372
10.7k
            const ColumnString* c1_const_string =
373
10.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
10.7k
            if (c1_const_string) {
376
10.7k
                c1_const_chars = &c1_const_string->get_chars();
377
10.7k
                c1_const_size = c1_const_string->get_offsets()[0];
378
10.7k
            } else {
379
2
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
2
                                            c1->get_name(), name);
381
2
            }
382
10.7k
        }
383
384
11.2k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
11.2k
        auto c_res = ColumnUInt8::create();
387
11.2k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
11.2k
        vec_res.resize(c0->size());
389
390
11.2k
        if (c0_string && c1_string) {
391
454
            StringImpl::string_vector_string_vector(
392
454
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
454
                    c1_string->get_offsets(), vec_res);
394
10.8k
        } else if (c0_string && c1_const) {
395
10.8k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
10.8k
                                               *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
11.2k
        block.replace_by_position(result, std::move(c_res));
406
11.2k
        return Status::OK();
407
11.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
117
                          const IColumn* c1) const {
344
117
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
117
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
117
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
117
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
117
        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
117
        DCHECK(!(c0_const && c1_const));
353
117
        const ColumnString::Chars* c0_const_chars = nullptr;
354
117
        const ColumnString::Chars* c1_const_chars = nullptr;
355
117
        ColumnString::Offset c0_const_size = 0;
356
117
        ColumnString::Offset c1_const_size = 0;
357
358
117
        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
117
        if (c1_const) {
372
116
            const ColumnString* c1_const_string =
373
116
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
116
            if (c1_const_string) {
376
116
                c1_const_chars = &c1_const_string->get_chars();
377
116
                c1_const_size = c1_const_string->get_offsets()[0];
378
116
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
116
        }
383
384
117
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
117
        auto c_res = ColumnUInt8::create();
387
117
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
117
        vec_res.resize(c0->size());
389
390
117
        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
116
        } else if (c0_string && c1_const) {
395
116
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
116
                                               *c1_const_chars, c1_const_size, vec_res);
397
116
        } 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
117
        block.replace_by_position(result, std::move(c_res));
406
117
        return Status::OK();
407
117
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
193
                          const IColumn* c1) const {
344
193
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
193
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
193
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
193
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
193
        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
193
        DCHECK(!(c0_const && c1_const));
353
193
        const ColumnString::Chars* c0_const_chars = nullptr;
354
193
        const ColumnString::Chars* c1_const_chars = nullptr;
355
193
        ColumnString::Offset c0_const_size = 0;
356
193
        ColumnString::Offset c1_const_size = 0;
357
358
193
        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
193
        if (c1_const) {
372
191
            const ColumnString* c1_const_string =
373
191
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
191
            if (c1_const_string) {
376
191
                c1_const_chars = &c1_const_string->get_chars();
377
191
                c1_const_size = c1_const_string->get_offsets()[0];
378
191
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
191
        }
383
384
193
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
193
        auto c_res = ColumnUInt8::create();
387
193
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
193
        vec_res.resize(c0->size());
389
390
193
        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
191
        } else if (c0_string && c1_const) {
395
191
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
191
                                               *c1_const_chars, c1_const_size, vec_res);
397
191
        } 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
193
        block.replace_by_position(result, std::move(c_res));
406
193
        return Status::OK();
407
193
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
253
                          const IColumn* c1) const {
344
253
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
253
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
253
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
253
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
253
        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
253
        DCHECK(!(c0_const && c1_const));
353
253
        const ColumnString::Chars* c0_const_chars = nullptr;
354
253
        const ColumnString::Chars* c1_const_chars = nullptr;
355
253
        ColumnString::Offset c0_const_size = 0;
356
253
        ColumnString::Offset c1_const_size = 0;
357
358
253
        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
253
        if (c1_const) {
372
207
            const ColumnString* c1_const_string =
373
207
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
207
            if (c1_const_string) {
376
207
                c1_const_chars = &c1_const_string->get_chars();
377
207
                c1_const_size = c1_const_string->get_offsets()[0];
378
207
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
207
        }
383
384
253
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
253
        auto c_res = ColumnUInt8::create();
387
253
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
253
        vec_res.resize(c0->size());
389
390
253
        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
207
        } else if (c0_string && c1_const) {
395
207
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
207
                                               *c1_const_chars, c1_const_size, vec_res);
397
207
        } 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
253
        block.replace_by_position(result, std::move(c_res));
406
253
        return Status::OK();
407
253
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
490
                          const IColumn* c1) const {
344
490
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
490
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
490
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
490
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
490
        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
490
        DCHECK(!(c0_const && c1_const));
353
490
        const ColumnString::Chars* c0_const_chars = nullptr;
354
490
        const ColumnString::Chars* c1_const_chars = nullptr;
355
490
        ColumnString::Offset c0_const_size = 0;
356
490
        ColumnString::Offset c1_const_size = 0;
357
358
490
        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
490
        if (c1_const) {
372
123
            const ColumnString* c1_const_string =
373
123
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
123
            if (c1_const_string) {
376
123
                c1_const_chars = &c1_const_string->get_chars();
377
123
                c1_const_size = c1_const_string->get_offsets()[0];
378
123
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
123
        }
383
384
490
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
490
        auto c_res = ColumnUInt8::create();
387
490
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
490
        vec_res.resize(c0->size());
389
390
490
        if (c0_string && c1_string) {
391
367
            StringImpl::string_vector_string_vector(
392
367
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
367
                    c1_string->get_offsets(), vec_res);
394
367
        } else if (c0_string && c1_const) {
395
123
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
123
                                               *c1_const_chars, c1_const_size, vec_res);
397
123
        } 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
490
        block.replace_by_position(result, std::move(c_res));
406
490
        return Status::OK();
407
490
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_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
197
            const ColumnString* c1_const_string =
373
197
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
197
            if (c1_const_string) {
376
197
                c1_const_chars = &c1_const_string->get_chars();
377
197
                c1_const_size = c1_const_string->get_offsets()[0];
378
197
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
197
        }
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
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
197
        } else if (c0_string && c1_const) {
395
197
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
197
                                               *c1_const_chars, c1_const_size, vec_res);
397
197
        } 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
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
117
                                         const IColumn* c1) const {
411
117
        bool c0_const = is_column_const(*c0);
412
117
        bool c1_const = is_column_const(*c1);
413
414
117
        DCHECK(!(c0_const && c1_const));
415
416
117
        auto c_res = ColumnUInt8::create();
417
117
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
117
        vec_res.resize(c0->size());
419
420
117
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
117
        } else if (c1_const) {
423
108
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
108
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
117
        block.replace_by_position(result, std::move(c_res));
429
117
    }
_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
42
                                         const IColumn* c1) const {
411
42
        bool c0_const = is_column_const(*c0);
412
42
        bool c1_const = is_column_const(*c1);
413
414
42
        DCHECK(!(c0_const && c1_const));
415
416
42
        auto c_res = ColumnUInt8::create();
417
42
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
42
        vec_res.resize(c0->size());
419
420
42
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
42
        } else if (c1_const) {
423
41
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
41
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
42
        block.replace_by_position(result, std::move(c_res));
429
42
    }
_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
30
                                         const IColumn* c1) const {
411
30
        bool c0_const = is_column_const(*c0);
412
30
        bool c1_const = is_column_const(*c1);
413
414
30
        DCHECK(!(c0_const && c1_const));
415
416
30
        auto c_res = ColumnUInt8::create();
417
30
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
30
        vec_res.resize(c0->size());
419
420
30
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
30
        } else if (c1_const) {
423
30
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
30
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
30
        block.replace_by_position(result, std::move(c_res));
429
30
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
117
                           const ColumnWithTypeAndName& c1) const {
433
117
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
117
        return Status::OK();
435
117
    }
_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
42
                           const ColumnWithTypeAndName& c1) const {
433
42
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
42
        return Status::OK();
435
42
    }
_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
30
                           const ColumnWithTypeAndName& c1) const {
433
30
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
30
        return Status::OK();
435
30
    }
436
437
public:
438
219
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
36
    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
321k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
252k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.12k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
5.00k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
30.3k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
2.73k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
29.8k
    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
321k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
321k
        return std::make_shared<DataTypeUInt8>();
445
321k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
252k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
252k
        return std::make_shared<DataTypeUInt8>();
445
252k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.12k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.12k
        return std::make_shared<DataTypeUInt8>();
445
1.12k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
5.00k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
5.00k
        return std::make_shared<DataTypeUInt8>();
445
5.00k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
30.3k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
30.3k
        return std::make_shared<DataTypeUInt8>();
445
30.3k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
2.73k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
2.73k
        return std::make_shared<DataTypeUInt8>();
445
2.73k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
29.8k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
29.8k
        return std::make_shared<DataTypeUInt8>();
445
29.8k
    }
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.73k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.73k
        DCHECK(arguments.size() == 1);
454
1.73k
        DCHECK(data_type_with_names.size() == 1);
455
1.73k
        DCHECK(iterators.size() == 1);
456
1.73k
        auto* iter = iterators[0];
457
1.73k
        auto data_type_with_name = data_type_with_names[0];
458
1.73k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.73k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
429
            return Status::OK();
463
429
        }
464
1.30k
        segment_v2::InvertedIndexQueryType query_type;
465
1.30k
        std::string_view name_view(name);
466
1.30k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
839
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
839
        } else if (name_view == NameLess::name) {
469
118
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
346
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
248
        } else if (name_view == NameGreater::name) {
473
113
            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.30k
        if (segment_v2::is_range_query(query_type) &&
481
1.30k
            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.13k
        Field param_value;
486
1.13k
        arguments[0].column->get(0, param_value);
487
1.13k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.13k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.13k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.13k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.13k
                param_type, &param_value, query_param));
494
495
1.13k
        segment_v2::InvertedIndexParam param;
496
1.13k
        param.column_name = data_type_with_name.first;
497
1.13k
        param.column_type = data_type_with_name.second;
498
1.13k
        param.query_value = query_param->get_value();
499
1.13k
        param.query_type = query_type;
500
1.13k
        param.num_rows = num_rows;
501
1.13k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.13k
        param.analyzer_ctx = analyzer_ctx;
503
1.13k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
982
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
982
        if (iter->has_null()) {
506
979
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
979
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
979
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
979
        }
510
982
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
982
        bitmap_result = result;
512
982
        bitmap_result.mask_out_null();
513
514
982
        if (name_view == NameNotEquals::name) {
515
62
            roaring::Roaring full_result;
516
62
            full_result.addRange(0, num_rows);
517
62
            bitmap_result.op_not(&full_result);
518
62
        }
519
520
982
        return Status::OK();
521
982
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
840
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
840
        DCHECK(arguments.size() == 1);
454
840
        DCHECK(data_type_with_names.size() == 1);
455
840
        DCHECK(iterators.size() == 1);
456
840
        auto* iter = iterators[0];
457
840
        auto data_type_with_name = data_type_with_names[0];
458
840
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
840
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
72
            return Status::OK();
463
72
        }
464
768
        segment_v2::InvertedIndexQueryType query_type;
465
768
        std::string_view name_view(name);
466
769
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
769
            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
769
        if (segment_v2::is_range_query(query_type) &&
481
769
            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
769
        Field param_value;
486
769
        arguments[0].column->get(0, param_value);
487
769
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
767
        auto param_type = arguments[0].type->get_primitive_type();
491
767
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
767
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
767
                param_type, &param_value, query_param));
494
495
766
        segment_v2::InvertedIndexParam param;
496
766
        param.column_name = data_type_with_name.first;
497
766
        param.column_type = data_type_with_name.second;
498
766
        param.query_value = query_param->get_value();
499
766
        param.query_type = query_type;
500
766
        param.num_rows = num_rows;
501
766
        param.roaring = std::make_shared<roaring::Roaring>();
502
766
        param.analyzer_ctx = analyzer_ctx;
503
766
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
726
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
726
        if (iter->has_null()) {
506
726
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
726
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
726
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
726
        }
510
726
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
726
        bitmap_result = result;
512
726
        bitmap_result.mask_out_null();
513
514
726
        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
726
        return Status::OK();
521
726
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
78
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
78
        DCHECK(arguments.size() == 1);
454
78
        DCHECK(data_type_with_names.size() == 1);
455
78
        DCHECK(iterators.size() == 1);
456
78
        auto* iter = iterators[0];
457
78
        auto data_type_with_name = data_type_with_names[0];
458
78
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
78
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
70
        segment_v2::InvertedIndexQueryType query_type;
465
70
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
70
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
0
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        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
64
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
64
        if (iter->has_null()) {
506
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
63
        }
510
64
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
64
        bitmap_result = result;
512
64
        bitmap_result.mask_out_null();
513
514
64
        if (name_view == NameNotEquals::name) {
515
62
            roaring::Roaring full_result;
516
62
            full_result.addRange(0, num_rows);
517
62
            bitmap_result.op_not(&full_result);
518
62
        }
519
520
64
        return Status::OK();
521
64
    }
_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
62
            return Status::OK();
463
62
        }
464
112
        segment_v2::InvertedIndexQueryType query_type;
465
112
        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
112
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
112
        } 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
113
            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
113
        if (segment_v2::is_range_query(query_type) &&
481
113
            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
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        auto param_type = arguments[0].type->get_primitive_type();
491
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
85
                param_type, &param_value, query_param));
494
495
85
        segment_v2::InvertedIndexParam param;
496
85
        param.column_name = data_type_with_name.first;
497
85
        param.column_type = data_type_with_name.second;
498
85
        param.query_value = query_param->get_value();
499
85
        param.query_type = query_type;
500
85
        param.num_rows = num_rows;
501
85
        param.roaring = std::make_shared<roaring::Roaring>();
502
85
        param.analyzer_ctx = analyzer_ctx;
503
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
66
        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
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
66
        bitmap_result = result;
512
66
        bitmap_result.mask_out_null();
513
514
66
        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
66
        return Status::OK();
521
66
    }
_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
178
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
178
        DCHECK(arguments.size() == 1);
454
178
        DCHECK(data_type_with_names.size() == 1);
455
178
        DCHECK(iterators.size() == 1);
456
178
        auto* iter = iterators[0];
457
178
        auto data_type_with_name = data_type_with_names[0];
458
178
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
178
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
117
        segment_v2::InvertedIndexQueryType query_type;
465
117
        std::string_view name_view(name);
466
118
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
118
        } else if (name_view == NameLess::name) {
469
118
            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
118
        if (segment_v2::is_range_query(query_type) &&
481
118
            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
92
        Field param_value;
486
92
        arguments[0].column->get(0, param_value);
487
92
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
92
        auto param_type = arguments[0].type->get_primitive_type();
491
92
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
92
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
92
                param_type, &param_value, query_param));
494
495
92
        segment_v2::InvertedIndexParam param;
496
92
        param.column_name = data_type_with_name.first;
497
92
        param.column_type = data_type_with_name.second;
498
92
        param.query_value = query_param->get_value();
499
92
        param.query_type = query_type;
500
92
        param.num_rows = num_rows;
501
92
        param.roaring = std::make_shared<roaring::Roaring>();
502
92
        param.analyzer_ctx = analyzer_ctx;
503
92
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
70
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
70
        if (iter->has_null()) {
506
70
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
70
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
70
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
70
        }
510
70
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
70
        bitmap_result = result;
512
70
        bitmap_result.mask_out_null();
513
514
70
        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
70
        return Status::OK();
521
70
    }
_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
112
            return Status::OK();
463
112
        }
464
99
        segment_v2::InvertedIndexQueryType query_type;
465
99
        std::string_view name_view(name);
466
99
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
99
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
99
        } 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
1
        } 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
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
48.2k
                        uint32_t result, size_t input_rows_count) const override {
525
48.2k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
48.2k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
48.2k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
48.2k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
48.2k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
48.2k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
48.2k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
48.2k
        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
48.2k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
48.2k
            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
80.7k
        auto can_compare = [](PrimitiveType t) -> bool {
563
80.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
80.7k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
30.6k
        auto can_compare = [](PrimitiveType t) -> bool {
563
30.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
30.6k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
3.46k
        auto can_compare = [](PrimitiveType t) -> bool {
563
3.46k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.46k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
21.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
21.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
21.2k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
6.48k
        auto can_compare = [](PrimitiveType t) -> bool {
563
6.48k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.48k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
12.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
12.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
12.2k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
6.57k
        auto can_compare = [](PrimitiveType t) -> bool {
563
6.57k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.57k
        };
565
566
48.2k
        if (can_compare(left_type->get_primitive_type()) &&
567
48.2k
            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
32.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
32.5k
        }
575
576
48.2k
        auto compare_type = left_type->get_primitive_type();
577
48.2k
        switch (compare_type) {
578
225
        case TYPE_BOOLEAN:
579
225
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
5.27k
        case TYPE_DATEV2:
581
5.27k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
1.01k
        case TYPE_DATETIMEV2:
583
1.01k
            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.45k
        case TYPE_TINYINT:
587
5.45k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.85k
        case TYPE_SMALLINT:
589
1.85k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
11.8k
        case TYPE_INT:
591
11.8k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
4.03k
        case TYPE_BIGINT:
593
4.03k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
587
        case TYPE_LARGEINT:
595
587
            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
554
        case TYPE_FLOAT:
601
554
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.49k
        case TYPE_DOUBLE:
603
1.49k
            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
362
        case TYPE_DECIMAL32:
609
954
        case TYPE_DECIMAL64:
610
3.04k
        case TYPE_DECIMAL128I:
611
3.15k
        case TYPE_DECIMAL256:
612
3.15k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
3.15k
                                   col_with_type_and_name_right);
614
690
        case TYPE_CHAR:
615
6.79k
        case TYPE_VARCHAR:
616
12.5k
        case TYPE_STRING:
617
12.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
117
        default:
619
117
            return execute_generic(block, result, col_with_type_and_name_left,
620
117
                                   col_with_type_and_name_right);
621
48.2k
        }
622
0
        return Status::OK();
623
48.2k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
21.6k
                        uint32_t result, size_t input_rows_count) const override {
525
21.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
21.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
21.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
21.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
21.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
21.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
21.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
21.6k
        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
21.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
21.6k
            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
21.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
21.6k
        };
565
566
21.6k
        if (can_compare(left_type->get_primitive_type()) &&
567
21.6k
            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
9.05k
            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
9.05k
        }
575
576
21.6k
        auto compare_type = left_type->get_primitive_type();
577
21.6k
        switch (compare_type) {
578
99
        case TYPE_BOOLEAN:
579
99
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.00k
        case TYPE_DATEV2:
581
1.00k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
530
        case TYPE_DATETIMEV2:
583
530
            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.55k
        case TYPE_TINYINT:
587
3.55k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
474
        case TYPE_SMALLINT:
589
474
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.81k
        case TYPE_INT:
591
1.81k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.00k
        case TYPE_BIGINT:
593
1.00k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
117
        case TYPE_LARGEINT:
595
117
            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
278
        case TYPE_DOUBLE:
603
278
            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
156
        case TYPE_DECIMAL32:
609
335
        case TYPE_DECIMAL64:
610
1.29k
        case TYPE_DECIMAL128I:
611
1.32k
        case TYPE_DECIMAL256:
612
1.32k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.32k
                                   col_with_type_and_name_right);
614
471
        case TYPE_CHAR:
615
5.99k
        case TYPE_VARCHAR:
616
11.2k
        case TYPE_STRING:
617
11.2k
            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
21.6k
        }
622
0
        return Status::OK();
623
21.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
1.85k
                        uint32_t result, size_t input_rows_count) const override {
525
1.85k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
1.85k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
1.85k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
1.85k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
1.85k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
1.85k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
1.85k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
1.85k
        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
1.85k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
1.85k
            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
1.85k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
1.85k
        };
565
566
1.85k
        if (can_compare(left_type->get_primitive_type()) &&
567
1.85k
            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
1.61k
            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
1.61k
        }
575
576
1.85k
        auto compare_type = left_type->get_primitive_type();
577
1.85k
        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
41
        case TYPE_DATEV2:
581
41
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
0
        case TYPE_DATETIMEV2:
583
0
            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
92
        case TYPE_TINYINT:
587
92
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
0
        case TYPE_SMALLINT:
589
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
868
        case TYPE_INT:
591
868
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
488
        case TYPE_BIGINT:
593
488
            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
51
        case TYPE_FLOAT:
601
51
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
72
        case TYPE_DOUBLE:
603
72
            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
89
        case TYPE_DECIMAL128I:
611
119
        case TYPE_DECIMAL256:
612
119
            return execute_decimal(block, result, col_with_type_and_name_left,
613
119
                                   col_with_type_and_name_right);
614
1
        case TYPE_CHAR:
615
33
        case TYPE_VARCHAR:
616
117
        case TYPE_STRING:
617
117
            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
1.85k
        }
622
0
        return Status::OK();
623
1.85k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
11.1k
                        uint32_t result, size_t input_rows_count) const override {
525
11.1k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
11.1k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
11.1k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
11.1k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
11.1k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
11.1k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
11.1k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
11.1k
        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
11.1k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
11.1k
            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
11.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
11.1k
        };
565
566
11.1k
        if (can_compare(left_type->get_primitive_type()) &&
567
11.1k
            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
10.1k
            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
10.1k
        }
575
576
11.1k
        auto compare_type = left_type->get_primitive_type();
577
11.1k
        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.08k
        case TYPE_DATEV2:
581
1.08k
            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
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
801
        case TYPE_TINYINT:
587
801
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.04k
        case TYPE_SMALLINT:
589
1.04k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
4.78k
        case TYPE_INT:
591
4.78k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.36k
        case TYPE_BIGINT:
593
1.36k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
245
        case TYPE_LARGEINT:
595
245
            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
228
        case TYPE_FLOAT:
601
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
544
        case TYPE_DOUBLE:
603
544
            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
12
        case TYPE_DECIMAL32:
609
78
        case TYPE_DECIMAL64:
610
862
        case TYPE_DECIMAL128I:
611
864
        case TYPE_DECIMAL256:
612
864
            return execute_decimal(block, result, col_with_type_and_name_left,
613
864
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
91
        case TYPE_VARCHAR:
616
193
        case TYPE_STRING:
617
193
            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
11.1k
        }
622
0
        return Status::OK();
623
11.1k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
3.41k
                        uint32_t result, size_t input_rows_count) const override {
525
3.41k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
3.41k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
3.41k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
3.41k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
3.41k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
3.41k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
3.41k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
3.41k
        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
3.41k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
3.41k
            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
3.41k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.41k
        };
565
566
3.41k
        if (can_compare(left_type->get_primitive_type()) &&
567
3.41k
            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
3.07k
            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
3.07k
        }
575
576
3.41k
        auto compare_type = left_type->get_primitive_type();
577
3.41k
        switch (compare_type) {
578
25
        case TYPE_BOOLEAN:
579
25
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
514
        case TYPE_DATEV2:
581
514
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
147
        case TYPE_DATETIMEV2:
583
147
            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
64
        case TYPE_TINYINT:
587
64
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
102
        case TYPE_SMALLINT:
589
102
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.80k
        case TYPE_INT:
591
1.80k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
180
        case TYPE_BIGINT:
593
180
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
29
        case TYPE_LARGEINT:
595
29
            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
26
        case TYPE_FLOAT:
601
26
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
133
        case TYPE_DOUBLE:
603
133
            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
1
        case TYPE_DECIMAL32:
609
30
        case TYPE_DECIMAL64:
610
58
        case TYPE_DECIMAL128I:
611
79
        case TYPE_DECIMAL256:
612
79
            return execute_decimal(block, result, col_with_type_and_name_left,
613
79
                                   col_with_type_and_name_right);
614
18
        case TYPE_CHAR:
615
192
        case TYPE_VARCHAR:
616
253
        case TYPE_STRING:
617
253
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
42
        default:
619
42
            return execute_generic(block, result, col_with_type_and_name_left,
620
42
                                   col_with_type_and_name_right);
621
3.41k
        }
622
0
        return Status::OK();
623
3.41k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
6.71k
                        uint32_t result, size_t input_rows_count) const override {
525
6.71k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
6.71k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
6.71k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
6.71k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
6.71k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
6.71k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
6.71k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
6.71k
        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
6.71k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
6.71k
            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
6.71k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.71k
        };
565
566
6.71k
        if (can_compare(left_type->get_primitive_type()) &&
567
6.71k
            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
5.52k
            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
5.52k
        }
575
576
6.71k
        auto compare_type = left_type->get_primitive_type();
577
6.71k
        switch (compare_type) {
578
78
        case TYPE_BOOLEAN:
579
78
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.06k
        case TYPE_DATEV2:
581
2.06k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
292
        case TYPE_DATETIMEV2:
583
292
            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
890
        case TYPE_TINYINT:
587
890
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
122
        case TYPE_SMALLINT:
589
122
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
705
        case TYPE_INT:
591
705
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
696
        case TYPE_BIGINT:
593
696
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
184
        case TYPE_LARGEINT:
595
184
            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
122
        case TYPE_FLOAT:
601
122
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
341
        case TYPE_DOUBLE:
603
341
            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
185
        case TYPE_DECIMAL32:
609
411
        case TYPE_DECIMAL64:
610
681
        case TYPE_DECIMAL128I:
611
682
        case TYPE_DECIMAL256:
612
682
            return execute_decimal(block, result, col_with_type_and_name_left,
613
682
                                   col_with_type_and_name_right);
614
154
        case TYPE_CHAR:
615
338
        case TYPE_VARCHAR:
616
490
        case TYPE_STRING:
617
490
            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
6.71k
        }
622
0
        return Status::OK();
623
6.71k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
3.42k
                        uint32_t result, size_t input_rows_count) const override {
525
3.42k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
3.42k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
3.42k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
3.42k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
3.42k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
3.42k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
3.42k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
3.42k
        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
3.42k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
3.42k
            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
3.42k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.42k
        };
565
566
3.42k
        if (can_compare(left_type->get_primitive_type()) &&
567
3.42k
            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
3.14k
            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
3.14k
        }
575
576
3.42k
        auto compare_type = left_type->get_primitive_type();
577
3.42k
        switch (compare_type) {
578
23
        case TYPE_BOOLEAN:
579
23
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
565
        case TYPE_DATEV2:
581
565
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
44
        case TYPE_DATETIMEV2:
583
44
            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
51
        case TYPE_TINYINT:
587
51
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
105
        case TYPE_SMALLINT:
589
105
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.85k
        case TYPE_INT:
591
1.85k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
302
        case TYPE_BIGINT:
593
302
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
12
        case TYPE_LARGEINT:
595
12
            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
20
        case TYPE_FLOAT:
601
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
126
        case TYPE_DOUBLE:
603
126
            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
8
        case TYPE_DECIMAL32:
609
39
        case TYPE_DECIMAL64:
610
65
        case TYPE_DECIMAL128I:
611
81
        case TYPE_DECIMAL256:
612
81
            return execute_decimal(block, result, col_with_type_and_name_left,
613
81
                                   col_with_type_and_name_right);
614
25
        case TYPE_CHAR:
615
149
        case TYPE_VARCHAR:
616
197
        case TYPE_STRING:
617
197
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
30
        default:
619
30
            return execute_generic(block, result, col_with_type_and_name_left,
620
30
                                   col_with_type_and_name_right);
621
3.42k
        }
622
0
        return Status::OK();
623
3.42k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris