Coverage Report

Created: 2026-05-15 05:27

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/field.h"
38
#include "core/memcmp_small.h"
39
#include "core/value/vdatetime_value.h"
40
#include "exprs/function/function.h"
41
#include "exprs/function/function_helpers.h"
42
#include "exprs/function/functions_logical.h"
43
#include "storage/index/index_reader_helper.h"
44
45
namespace doris {
46
47
/** Comparison functions: ==, !=, <, >, <=, >=.
48
  * The comparison functions always return 0 or 1 (UInt8).
49
  *
50
  * You can compare the following types:
51
  * - numbers and decimals;
52
  * - strings and fixed strings;
53
  * - dates;
54
  * - datetimes;
55
  *   within each group, but not from different groups;
56
  * - tuples (lexicographic comparison).
57
  *
58
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
59
  */
60
61
template <typename A, typename B, typename Op>
62
struct NumComparisonImpl {
63
    /// If you don't specify NO_INLINE, the compiler will inline this function, but we don't need this as this function contains tight loop inside.
64
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
65
12.5k
                                        PaddedPODArray<UInt8>& c) {
66
12.5k
        size_t size = a.size();
67
12.5k
        const A* __restrict a_pos = a.data();
68
12.5k
        const B* __restrict b_pos = b.data();
69
12.5k
        UInt8* __restrict c_pos = c.data();
70
12.5k
        const A* __restrict a_end = a_pos + size;
71
72
15.6M
        while (a_pos < a_end) {
73
15.6M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
15.6M
            ++a_pos;
75
15.6M
            ++b_pos;
76
15.6M
            ++c_pos;
77
15.6M
        }
78
12.5k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
67
                                        PaddedPODArray<UInt8>& c) {
66
67
        size_t size = a.size();
67
67
        const A* __restrict a_pos = a.data();
68
67
        const B* __restrict b_pos = b.data();
69
67
        UInt8* __restrict c_pos = c.data();
70
67
        const A* __restrict a_end = a_pos + size;
71
72
134
        while (a_pos < a_end) {
73
67
            *c_pos = Op::apply(*a_pos, *b_pos);
74
67
            ++a_pos;
75
67
            ++b_pos;
76
67
            ++c_pos;
77
67
        }
78
67
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
317
                                        PaddedPODArray<UInt8>& c) {
66
317
        size_t size = a.size();
67
317
        const A* __restrict a_pos = a.data();
68
317
        const B* __restrict b_pos = b.data();
69
317
        UInt8* __restrict c_pos = c.data();
70
317
        const A* __restrict a_end = a_pos + size;
71
72
1.48k
        while (a_pos < a_end) {
73
1.17k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.17k
            ++a_pos;
75
1.17k
            ++b_pos;
76
1.17k
            ++c_pos;
77
1.17k
        }
78
317
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
231
                                        PaddedPODArray<UInt8>& c) {
66
231
        size_t size = a.size();
67
231
        const A* __restrict a_pos = a.data();
68
231
        const B* __restrict b_pos = b.data();
69
231
        UInt8* __restrict c_pos = c.data();
70
231
        const A* __restrict a_end = a_pos + size;
71
72
480
        while (a_pos < a_end) {
73
249
            *c_pos = Op::apply(*a_pos, *b_pos);
74
249
            ++a_pos;
75
249
            ++b_pos;
76
249
            ++c_pos;
77
249
        }
78
231
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
2
                                        PaddedPODArray<UInt8>& c) {
66
2
        size_t size = a.size();
67
2
        const A* __restrict a_pos = a.data();
68
2
        const B* __restrict b_pos = b.data();
69
2
        UInt8* __restrict c_pos = c.data();
70
2
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
10
            *c_pos = Op::apply(*a_pos, *b_pos);
74
10
            ++a_pos;
75
10
            ++b_pos;
76
10
            ++c_pos;
77
10
        }
78
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
609
                                        PaddedPODArray<UInt8>& c) {
66
609
        size_t size = a.size();
67
609
        const A* __restrict a_pos = a.data();
68
609
        const B* __restrict b_pos = b.data();
69
609
        UInt8* __restrict c_pos = c.data();
70
609
        const A* __restrict a_end = a_pos + size;
71
72
4.97k
        while (a_pos < a_end) {
73
4.36k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.36k
            ++a_pos;
75
4.36k
            ++b_pos;
76
4.36k
            ++c_pos;
77
4.36k
        }
78
609
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
113
                                        PaddedPODArray<UInt8>& c) {
66
113
        size_t size = a.size();
67
113
        const A* __restrict a_pos = a.data();
68
113
        const B* __restrict b_pos = b.data();
69
113
        UInt8* __restrict c_pos = c.data();
70
113
        const A* __restrict a_end = a_pos + size;
71
72
539
        while (a_pos < a_end) {
73
426
            *c_pos = Op::apply(*a_pos, *b_pos);
74
426
            ++a_pos;
75
426
            ++b_pos;
76
426
            ++c_pos;
77
426
        }
78
113
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
373
                                        PaddedPODArray<UInt8>& c) {
66
373
        size_t size = a.size();
67
373
        const A* __restrict a_pos = a.data();
68
373
        const B* __restrict b_pos = b.data();
69
373
        UInt8* __restrict c_pos = c.data();
70
373
        const A* __restrict a_end = a_pos + size;
71
72
132k
        while (a_pos < a_end) {
73
131k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
131k
            ++a_pos;
75
131k
            ++b_pos;
76
131k
            ++c_pos;
77
131k
        }
78
373
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
381
                                        PaddedPODArray<UInt8>& c) {
66
381
        size_t size = a.size();
67
381
        const A* __restrict a_pos = a.data();
68
381
        const B* __restrict b_pos = b.data();
69
381
        UInt8* __restrict c_pos = c.data();
70
381
        const A* __restrict a_end = a_pos + size;
71
72
12.3k
        while (a_pos < a_end) {
73
11.9k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.9k
            ++a_pos;
75
11.9k
            ++b_pos;
76
11.9k
            ++c_pos;
77
11.9k
        }
78
381
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
71
                                        PaddedPODArray<UInt8>& c) {
66
71
        size_t size = a.size();
67
71
        const A* __restrict a_pos = a.data();
68
71
        const B* __restrict b_pos = b.data();
69
71
        UInt8* __restrict c_pos = c.data();
70
71
        const A* __restrict a_end = a_pos + size;
71
72
155
        while (a_pos < a_end) {
73
84
            *c_pos = Op::apply(*a_pos, *b_pos);
74
84
            ++a_pos;
75
84
            ++b_pos;
76
84
            ++c_pos;
77
84
        }
78
71
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_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
10
        while (a_pos < a_end) {
73
5
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5
            ++a_pos;
75
5
            ++b_pos;
76
5
            ++c_pos;
77
5
        }
78
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
13
                                        PaddedPODArray<UInt8>& c) {
66
13
        size_t size = a.size();
67
13
        const A* __restrict a_pos = a.data();
68
13
        const B* __restrict b_pos = b.data();
69
13
        UInt8* __restrict c_pos = c.data();
70
13
        const A* __restrict a_end = a_pos + size;
71
72
26
        while (a_pos < a_end) {
73
13
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13
            ++a_pos;
75
13
            ++b_pos;
76
13
            ++c_pos;
77
13
        }
78
13
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
88
                                        PaddedPODArray<UInt8>& c) {
66
88
        size_t size = a.size();
67
88
        const A* __restrict a_pos = a.data();
68
88
        const B* __restrict b_pos = b.data();
69
88
        UInt8* __restrict c_pos = c.data();
70
88
        const A* __restrict a_end = a_pos + size;
71
72
195
        while (a_pos < a_end) {
73
107
            *c_pos = Op::apply(*a_pos, *b_pos);
74
107
            ++a_pos;
75
107
            ++b_pos;
76
107
            ++c_pos;
77
107
        }
78
88
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
85
                                        PaddedPODArray<UInt8>& c) {
66
85
        size_t size = a.size();
67
85
        const A* __restrict a_pos = a.data();
68
85
        const B* __restrict b_pos = b.data();
69
85
        UInt8* __restrict c_pos = c.data();
70
85
        const A* __restrict a_end = a_pos + size;
71
72
191
        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
85
    }
_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
54
                                        PaddedPODArray<UInt8>& c) {
66
54
        size_t size = a.size();
67
54
        const A* __restrict a_pos = a.data();
68
54
        const B* __restrict b_pos = b.data();
69
54
        UInt8* __restrict c_pos = c.data();
70
54
        const A* __restrict a_end = a_pos + size;
71
72
243
        while (a_pos < a_end) {
73
189
            *c_pos = Op::apply(*a_pos, *b_pos);
74
189
            ++a_pos;
75
189
            ++b_pos;
76
189
            ++c_pos;
77
189
        }
78
54
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1.09k
                                        PaddedPODArray<UInt8>& c) {
66
1.09k
        size_t size = a.size();
67
1.09k
        const A* __restrict a_pos = a.data();
68
1.09k
        const B* __restrict b_pos = b.data();
69
1.09k
        UInt8* __restrict c_pos = c.data();
70
1.09k
        const A* __restrict a_end = a_pos + size;
71
72
1.54M
        while (a_pos < a_end) {
73
1.54M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.54M
            ++a_pos;
75
1.54M
            ++b_pos;
76
1.54M
            ++c_pos;
77
1.54M
        }
78
1.09k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
404
                                        PaddedPODArray<UInt8>& c) {
66
404
        size_t size = a.size();
67
404
        const A* __restrict a_pos = a.data();
68
404
        const B* __restrict b_pos = b.data();
69
404
        UInt8* __restrict c_pos = c.data();
70
404
        const A* __restrict a_end = a_pos + size;
71
72
31.7k
        while (a_pos < a_end) {
73
31.3k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31.3k
            ++a_pos;
75
31.3k
            ++b_pos;
76
31.3k
            ++c_pos;
77
31.3k
        }
78
404
    }
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.25k
                                        PaddedPODArray<UInt8>& c) {
66
1.25k
        size_t size = a.size();
67
1.25k
        const A* __restrict a_pos = a.data();
68
1.25k
        const B* __restrict b_pos = b.data();
69
1.25k
        UInt8* __restrict c_pos = c.data();
70
1.25k
        const A* __restrict a_end = a_pos + size;
71
72
5.88M
        while (a_pos < a_end) {
73
5.88M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.88M
            ++a_pos;
75
5.88M
            ++b_pos;
76
5.88M
            ++c_pos;
77
5.88M
        }
78
1.25k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
10
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
256
                                        PaddedPODArray<UInt8>& c) {
66
256
        size_t size = a.size();
67
256
        const A* __restrict a_pos = a.data();
68
256
        const B* __restrict b_pos = b.data();
69
256
        UInt8* __restrict c_pos = c.data();
70
256
        const A* __restrict a_end = a_pos + size;
71
72
2.40k
        while (a_pos < a_end) {
73
2.14k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.14k
            ++a_pos;
75
2.14k
            ++b_pos;
76
2.14k
            ++c_pos;
77
2.14k
        }
78
256
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
451
                                        PaddedPODArray<UInt8>& c) {
66
451
        size_t size = a.size();
67
451
        const A* __restrict a_pos = a.data();
68
451
        const B* __restrict b_pos = b.data();
69
451
        UInt8* __restrict c_pos = c.data();
70
451
        const A* __restrict a_end = a_pos + size;
71
72
4.13k
        while (a_pos < a_end) {
73
3.67k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.67k
            ++a_pos;
75
3.67k
            ++b_pos;
76
3.67k
            ++c_pos;
77
3.67k
        }
78
451
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1.99k
                                        PaddedPODArray<UInt8>& c) {
66
1.99k
        size_t size = a.size();
67
1.99k
        const A* __restrict a_pos = a.data();
68
1.99k
        const B* __restrict b_pos = b.data();
69
1.99k
        UInt8* __restrict c_pos = c.data();
70
1.99k
        const A* __restrict a_end = a_pos + size;
71
72
6.21M
        while (a_pos < a_end) {
73
6.21M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.21M
            ++a_pos;
75
6.21M
            ++b_pos;
76
6.21M
            ++c_pos;
77
6.21M
        }
78
1.99k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
139
                                        PaddedPODArray<UInt8>& c) {
66
139
        size_t size = a.size();
67
139
        const A* __restrict a_pos = a.data();
68
139
        const B* __restrict b_pos = b.data();
69
139
        UInt8* __restrict c_pos = c.data();
70
139
        const A* __restrict a_end = a_pos + size;
71
72
1.84k
        while (a_pos < a_end) {
73
1.70k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.70k
            ++a_pos;
75
1.70k
            ++b_pos;
76
1.70k
            ++c_pos;
77
1.70k
        }
78
139
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_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
99
        while (a_pos < a_end) {
73
82
            *c_pos = Op::apply(*a_pos, *b_pos);
74
82
            ++a_pos;
75
82
            ++b_pos;
76
82
            ++c_pos;
77
82
        }
78
17
    }
_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
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
138
        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
40
    }
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
6
                                        PaddedPODArray<UInt8>& c) {
66
6
        size_t size = a.size();
67
6
        const A* __restrict a_pos = a.data();
68
6
        const B* __restrict b_pos = b.data();
69
6
        UInt8* __restrict c_pos = c.data();
70
6
        const A* __restrict a_end = a_pos + size;
71
72
70
        while (a_pos < a_end) {
73
64
            *c_pos = Op::apply(*a_pos, *b_pos);
74
64
            ++a_pos;
75
64
            ++b_pos;
76
64
            ++c_pos;
77
64
        }
78
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
10
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
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
7
        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
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
8
                                        PaddedPODArray<UInt8>& c) {
66
8
        size_t size = a.size();
67
8
        const A* __restrict a_pos = a.data();
68
8
        const B* __restrict b_pos = b.data();
69
8
        UInt8* __restrict c_pos = c.data();
70
8
        const A* __restrict a_end = a_pos + size;
71
72
62
        while (a_pos < a_end) {
73
54
            *c_pos = Op::apply(*a_pos, *b_pos);
74
54
            ++a_pos;
75
54
            ++b_pos;
76
54
            ++c_pos;
77
54
        }
78
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
30
                                        PaddedPODArray<UInt8>& c) {
66
30
        size_t size = a.size();
67
30
        const A* __restrict a_pos = a.data();
68
30
        const B* __restrict b_pos = b.data();
69
30
        UInt8* __restrict c_pos = c.data();
70
30
        const A* __restrict a_end = a_pos + size;
71
72
136
        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
30
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
75
                                        PaddedPODArray<UInt8>& c) {
66
75
        size_t size = a.size();
67
75
        const A* __restrict a_pos = a.data();
68
75
        const B* __restrict b_pos = b.data();
69
75
        UInt8* __restrict c_pos = c.data();
70
75
        const A* __restrict a_end = a_pos + size;
71
72
150
        while (a_pos < a_end) {
73
75
            *c_pos = Op::apply(*a_pos, *b_pos);
74
75
            ++a_pos;
75
75
            ++b_pos;
76
75
            ++c_pos;
77
75
        }
78
75
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.92k
                                        PaddedPODArray<UInt8>& c) {
66
1.92k
        size_t size = a.size();
67
1.92k
        const A* __restrict a_pos = a.data();
68
1.92k
        const B* __restrict b_pos = b.data();
69
1.92k
        UInt8* __restrict c_pos = c.data();
70
1.92k
        const A* __restrict a_end = a_pos + size;
71
72
1.80M
        while (a_pos < a_end) {
73
1.80M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.80M
            ++a_pos;
75
1.80M
            ++b_pos;
76
1.80M
            ++c_pos;
77
1.80M
        }
78
1.92k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
218
                                        PaddedPODArray<UInt8>& c) {
66
218
        size_t size = a.size();
67
218
        const A* __restrict a_pos = a.data();
68
218
        const B* __restrict b_pos = b.data();
69
218
        UInt8* __restrict c_pos = c.data();
70
218
        const A* __restrict a_end = a_pos + size;
71
72
436
        while (a_pos < a_end) {
73
218
            *c_pos = Op::apply(*a_pos, *b_pos);
74
218
            ++a_pos;
75
218
            ++b_pos;
76
218
            ++c_pos;
77
218
        }
78
218
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
10
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
540
                                        PaddedPODArray<UInt8>& c) {
66
540
        size_t size = a.size();
67
540
        const A* __restrict a_pos = a.data();
68
540
        const B* __restrict b_pos = b.data();
69
540
        UInt8* __restrict c_pos = c.data();
70
540
        const A* __restrict a_end = a_pos + size;
71
72
4.32k
        while (a_pos < a_end) {
73
3.78k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.78k
            ++a_pos;
75
3.78k
            ++b_pos;
76
3.78k
            ++c_pos;
77
3.78k
        }
78
540
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
117
                                        PaddedPODArray<UInt8>& c) {
66
117
        size_t size = a.size();
67
117
        const A* __restrict a_pos = a.data();
68
117
        const B* __restrict b_pos = b.data();
69
117
        UInt8* __restrict c_pos = c.data();
70
117
        const A* __restrict a_end = a_pos + size;
71
72
235
        while (a_pos < a_end) {
73
118
            *c_pos = Op::apply(*a_pos, *b_pos);
74
118
            ++a_pos;
75
118
            ++b_pos;
76
118
            ++c_pos;
77
118
        }
78
117
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
148
                                        PaddedPODArray<UInt8>& c) {
66
148
        size_t size = a.size();
67
148
        const A* __restrict a_pos = a.data();
68
148
        const B* __restrict b_pos = b.data();
69
148
        UInt8* __restrict c_pos = c.data();
70
148
        const A* __restrict a_end = a_pos + size;
71
72
791
        while (a_pos < a_end) {
73
643
            *c_pos = Op::apply(*a_pos, *b_pos);
74
643
            ++a_pos;
75
643
            ++b_pos;
76
643
            ++c_pos;
77
643
        }
78
148
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
228
                                        PaddedPODArray<UInt8>& c) {
66
228
        size_t size = a.size();
67
228
        const A* __restrict a_pos = a.data();
68
228
        const B* __restrict b_pos = b.data();
69
228
        UInt8* __restrict c_pos = c.data();
70
228
        const A* __restrict a_end = a_pos + size;
71
72
5.72k
        while (a_pos < a_end) {
73
5.49k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.49k
            ++a_pos;
75
5.49k
            ++b_pos;
76
5.49k
            ++c_pos;
77
5.49k
        }
78
228
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
141
                                        PaddedPODArray<UInt8>& c) {
66
141
        size_t size = a.size();
67
141
        const A* __restrict a_pos = a.data();
68
141
        const B* __restrict b_pos = b.data();
69
141
        UInt8* __restrict c_pos = c.data();
70
141
        const A* __restrict a_end = a_pos + size;
71
72
385
        while (a_pos < a_end) {
73
244
            *c_pos = Op::apply(*a_pos, *b_pos);
74
244
            ++a_pos;
75
244
            ++b_pos;
76
244
            ++c_pos;
77
244
        }
78
141
    }
_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
120
                                        PaddedPODArray<UInt8>& c) {
66
120
        size_t size = a.size();
67
120
        const A* __restrict a_pos = a.data();
68
120
        const B* __restrict b_pos = b.data();
69
120
        UInt8* __restrict c_pos = c.data();
70
120
        const A* __restrict a_end = a_pos + size;
71
72
259
        while (a_pos < a_end) {
73
139
            *c_pos = Op::apply(*a_pos, *b_pos);
74
139
            ++a_pos;
75
139
            ++b_pos;
76
139
            ++c_pos;
77
139
        }
78
120
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
141
                                        PaddedPODArray<UInt8>& c) {
66
141
        size_t size = a.size();
67
141
        const A* __restrict a_pos = a.data();
68
141
        const B* __restrict b_pos = b.data();
69
141
        UInt8* __restrict c_pos = c.data();
70
141
        const A* __restrict a_end = a_pos + size;
71
72
314
        while (a_pos < a_end) {
73
173
            *c_pos = Op::apply(*a_pos, *b_pos);
74
173
            ++a_pos;
75
173
            ++b_pos;
76
173
            ++c_pos;
77
173
        }
78
141
    }
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.75k
        while (a_pos < a_end) {
73
6.32k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.32k
            ++a_pos;
75
6.32k
            ++b_pos;
76
6.32k
            ++c_pos;
77
6.32k
        }
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
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
10
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
1
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
5
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
57
                                        PaddedPODArray<UInt8>& c) {
66
57
        size_t size = a.size();
67
57
        const A* __restrict a_pos = a.data();
68
57
        const B* __restrict b_pos = b.data();
69
57
        UInt8* __restrict c_pos = c.data();
70
57
        const A* __restrict a_end = a_pos + size;
71
72
1.05k
        while (a_pos < a_end) {
73
996
            *c_pos = Op::apply(*a_pos, *b_pos);
74
996
            ++a_pos;
75
996
            ++b_pos;
76
996
            ++c_pos;
77
996
        }
78
57
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
70
                                        PaddedPODArray<UInt8>& c) {
66
70
        size_t size = a.size();
67
70
        const A* __restrict a_pos = a.data();
68
70
        const B* __restrict b_pos = b.data();
69
70
        UInt8* __restrict c_pos = c.data();
70
70
        const A* __restrict a_end = a_pos + size;
71
72
336
        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
70
    }
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
157k
                                          PaddedPODArray<UInt8>& c) {
82
157k
        size_t size = a.size();
83
157k
        const A* __restrict a_pos = a.data();
84
157k
        UInt8* __restrict c_pos = c.data();
85
157k
        const A* __restrict a_end = a_pos + size;
86
87
193M
        while (a_pos < a_end) {
88
193M
            *c_pos = Op::apply(*a_pos, b);
89
193M
            ++a_pos;
90
193M
            ++c_pos;
91
193M
        }
92
157k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
1.54k
                                          PaddedPODArray<UInt8>& c) {
82
1.54k
        size_t size = a.size();
83
1.54k
        const A* __restrict a_pos = a.data();
84
1.54k
        UInt8* __restrict c_pos = c.data();
85
1.54k
        const A* __restrict a_end = a_pos + size;
86
87
5.04k
        while (a_pos < a_end) {
88
3.49k
            *c_pos = Op::apply(*a_pos, b);
89
3.49k
            ++a_pos;
90
3.49k
            ++c_pos;
91
3.49k
        }
92
1.54k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.18k
                                          PaddedPODArray<UInt8>& c) {
82
1.18k
        size_t size = a.size();
83
1.18k
        const A* __restrict a_pos = a.data();
84
1.18k
        UInt8* __restrict c_pos = c.data();
85
1.18k
        const A* __restrict a_end = a_pos + size;
86
87
207k
        while (a_pos < a_end) {
88
206k
            *c_pos = Op::apply(*a_pos, b);
89
206k
            ++a_pos;
90
206k
            ++c_pos;
91
206k
        }
92
1.18k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_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
101k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
412
    }
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
4.74k
                                          PaddedPODArray<UInt8>& c) {
82
4.74k
        size_t size = a.size();
83
4.74k
        const A* __restrict a_pos = a.data();
84
4.74k
        UInt8* __restrict c_pos = c.data();
85
4.74k
        const A* __restrict a_end = a_pos + size;
86
87
9.20M
        while (a_pos < a_end) {
88
9.19M
            *c_pos = Op::apply(*a_pos, b);
89
9.19M
            ++a_pos;
90
9.19M
            ++c_pos;
91
9.19M
        }
92
4.74k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.21k
                                          PaddedPODArray<UInt8>& c) {
82
1.21k
        size_t size = a.size();
83
1.21k
        const A* __restrict a_pos = a.data();
84
1.21k
        UInt8* __restrict c_pos = c.data();
85
1.21k
        const A* __restrict a_end = a_pos + size;
86
87
127k
        while (a_pos < a_end) {
88
126k
            *c_pos = Op::apply(*a_pos, b);
89
126k
            ++a_pos;
90
126k
            ++c_pos;
91
126k
        }
92
1.21k
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
30.1k
                                          PaddedPODArray<UInt8>& c) {
82
30.1k
        size_t size = a.size();
83
30.1k
        const A* __restrict a_pos = a.data();
84
30.1k
        UInt8* __restrict c_pos = c.data();
85
30.1k
        const A* __restrict a_end = a_pos + size;
86
87
2.03M
        while (a_pos < a_end) {
88
2.00M
            *c_pos = Op::apply(*a_pos, b);
89
2.00M
            ++a_pos;
90
2.00M
            ++c_pos;
91
2.00M
        }
92
30.1k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
22.6k
                                          PaddedPODArray<UInt8>& c) {
82
22.6k
        size_t size = a.size();
83
22.6k
        const A* __restrict a_pos = a.data();
84
22.6k
        UInt8* __restrict c_pos = c.data();
85
22.6k
        const A* __restrict a_end = a_pos + size;
86
87
2.86M
        while (a_pos < a_end) {
88
2.84M
            *c_pos = Op::apply(*a_pos, b);
89
2.84M
            ++a_pos;
90
2.84M
            ++c_pos;
91
2.84M
        }
92
22.6k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
57
                                          PaddedPODArray<UInt8>& c) {
82
57
        size_t size = a.size();
83
57
        const A* __restrict a_pos = a.data();
84
57
        UInt8* __restrict c_pos = c.data();
85
57
        const A* __restrict a_end = a_pos + size;
86
87
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
57
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
15
                                          PaddedPODArray<UInt8>& c) {
82
15
        size_t size = a.size();
83
15
        const A* __restrict a_pos = a.data();
84
15
        UInt8* __restrict c_pos = c.data();
85
15
        const A* __restrict a_end = a_pos + size;
86
87
129
        while (a_pos < a_end) {
88
114
            *c_pos = Op::apply(*a_pos, b);
89
114
            ++a_pos;
90
114
            ++c_pos;
91
114
        }
92
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
26
        while (a_pos < a_end) {
88
22
            *c_pos = Op::apply(*a_pos, b);
89
22
            ++a_pos;
90
22
            ++c_pos;
91
22
        }
92
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
313
                                          PaddedPODArray<UInt8>& c) {
82
313
        size_t size = a.size();
83
313
        const A* __restrict a_pos = a.data();
84
313
        UInt8* __restrict c_pos = c.data();
85
313
        const A* __restrict a_end = a_pos + size;
86
87
701k
        while (a_pos < a_end) {
88
701k
            *c_pos = Op::apply(*a_pos, b);
89
701k
            ++a_pos;
90
701k
            ++c_pos;
91
701k
        }
92
313
    }
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
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
98
        while (a_pos < a_end) {
88
59
            *c_pos = Op::apply(*a_pos, b);
89
59
            ++a_pos;
90
59
            ++c_pos;
91
59
        }
92
39
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
4
        while (a_pos < a_end) {
88
2
            *c_pos = Op::apply(*a_pos, b);
89
2
            ++a_pos;
90
2
            ++c_pos;
91
2
        }
92
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
44
                                          PaddedPODArray<UInt8>& c) {
82
44
        size_t size = a.size();
83
44
        const A* __restrict a_pos = a.data();
84
44
        UInt8* __restrict c_pos = c.data();
85
44
        const A* __restrict a_end = a_pos + size;
86
87
1.24k
        while (a_pos < a_end) {
88
1.19k
            *c_pos = Op::apply(*a_pos, b);
89
1.19k
            ++a_pos;
90
1.19k
            ++c_pos;
91
1.19k
        }
92
44
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
26
                                          PaddedPODArray<UInt8>& c) {
82
26
        size_t size = a.size();
83
26
        const A* __restrict a_pos = a.data();
84
26
        UInt8* __restrict c_pos = c.data();
85
26
        const A* __restrict a_end = a_pos + size;
86
87
802
        while (a_pos < a_end) {
88
776
            *c_pos = Op::apply(*a_pos, b);
89
776
            ++a_pos;
90
776
            ++c_pos;
91
776
        }
92
26
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.73k
                                          PaddedPODArray<UInt8>& c) {
82
2.73k
        size_t size = a.size();
83
2.73k
        const A* __restrict a_pos = a.data();
84
2.73k
        UInt8* __restrict c_pos = c.data();
85
2.73k
        const A* __restrict a_end = a_pos + size;
86
87
657k
        while (a_pos < a_end) {
88
655k
            *c_pos = Op::apply(*a_pos, b);
89
655k
            ++a_pos;
90
655k
            ++c_pos;
91
655k
        }
92
2.73k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.92k
                                          PaddedPODArray<UInt8>& c) {
82
1.92k
        size_t size = a.size();
83
1.92k
        const A* __restrict a_pos = a.data();
84
1.92k
        UInt8* __restrict c_pos = c.data();
85
1.92k
        const A* __restrict a_end = a_pos + size;
86
87
269k
        while (a_pos < a_end) {
88
267k
            *c_pos = Op::apply(*a_pos, b);
89
267k
            ++a_pos;
90
267k
            ++c_pos;
91
267k
        }
92
1.92k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
28
                                          PaddedPODArray<UInt8>& c) {
82
28
        size_t size = a.size();
83
28
        const A* __restrict a_pos = a.data();
84
28
        UInt8* __restrict c_pos = c.data();
85
28
        const A* __restrict a_end = a_pos + size;
86
87
70
        while (a_pos < a_end) {
88
42
            *c_pos = Op::apply(*a_pos, b);
89
42
            ++a_pos;
90
42
            ++c_pos;
91
42
        }
92
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
40
                                          PaddedPODArray<UInt8>& c) {
82
40
        size_t size = a.size();
83
40
        const A* __restrict a_pos = a.data();
84
40
        UInt8* __restrict c_pos = c.data();
85
40
        const A* __restrict a_end = a_pos + size;
86
87
282
        while (a_pos < a_end) {
88
242
            *c_pos = Op::apply(*a_pos, b);
89
242
            ++a_pos;
90
242
            ++c_pos;
91
242
        }
92
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
157
                                          PaddedPODArray<UInt8>& c) {
82
157
        size_t size = a.size();
83
157
        const A* __restrict a_pos = a.data();
84
157
        UInt8* __restrict c_pos = c.data();
85
157
        const A* __restrict a_end = a_pos + size;
86
87
743
        while (a_pos < a_end) {
88
586
            *c_pos = Op::apply(*a_pos, b);
89
586
            ++a_pos;
90
586
            ++c_pos;
91
586
        }
92
157
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
480
                                          PaddedPODArray<UInt8>& c) {
82
480
        size_t size = a.size();
83
480
        const A* __restrict a_pos = a.data();
84
480
        UInt8* __restrict c_pos = c.data();
85
480
        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
480
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
94
                                          PaddedPODArray<UInt8>& c) {
82
94
        size_t size = a.size();
83
94
        const A* __restrict a_pos = a.data();
84
94
        UInt8* __restrict c_pos = c.data();
85
94
        const A* __restrict a_end = a_pos + size;
86
87
210
        while (a_pos < a_end) {
88
116
            *c_pos = Op::apply(*a_pos, b);
89
116
            ++a_pos;
90
116
            ++c_pos;
91
116
        }
92
94
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
337
                                          PaddedPODArray<UInt8>& c) {
82
337
        size_t size = a.size();
83
337
        const A* __restrict a_pos = a.data();
84
337
        UInt8* __restrict c_pos = c.data();
85
337
        const A* __restrict a_end = a_pos + size;
86
87
45.4k
        while (a_pos < a_end) {
88
45.1k
            *c_pos = Op::apply(*a_pos, b);
89
45.1k
            ++a_pos;
90
45.1k
            ++c_pos;
91
45.1k
        }
92
337
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
8
        while (a_pos < a_end) {
88
7
            *c_pos = Op::apply(*a_pos, b);
89
7
            ++a_pos;
90
7
            ++c_pos;
91
7
        }
92
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
384
                                          PaddedPODArray<UInt8>& c) {
82
384
        size_t size = a.size();
83
384
        const A* __restrict a_pos = a.data();
84
384
        UInt8* __restrict c_pos = c.data();
85
384
        const A* __restrict a_end = a_pos + size;
86
87
4.03k
        while (a_pos < a_end) {
88
3.64k
            *c_pos = Op::apply(*a_pos, b);
89
3.64k
            ++a_pos;
90
3.64k
            ++c_pos;
91
3.64k
        }
92
384
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_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
2.36k
        while (a_pos < a_end) {
88
2.29k
            *c_pos = Op::apply(*a_pos, b);
89
2.29k
            ++a_pos;
90
2.29k
            ++c_pos;
91
2.29k
        }
92
64
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
561
                                          PaddedPODArray<UInt8>& c) {
82
561
        size_t size = a.size();
83
561
        const A* __restrict a_pos = a.data();
84
561
        UInt8* __restrict c_pos = c.data();
85
561
        const A* __restrict a_end = a_pos + size;
86
87
7.96k
        while (a_pos < a_end) {
88
7.39k
            *c_pos = Op::apply(*a_pos, b);
89
7.39k
            ++a_pos;
90
7.39k
            ++c_pos;
91
7.39k
        }
92
561
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
268
                                          PaddedPODArray<UInt8>& c) {
82
268
        size_t size = a.size();
83
268
        const A* __restrict a_pos = a.data();
84
268
        UInt8* __restrict c_pos = c.data();
85
268
        const A* __restrict a_end = a_pos + size;
86
87
12.7k
        while (a_pos < a_end) {
88
12.4k
            *c_pos = Op::apply(*a_pos, b);
89
12.4k
            ++a_pos;
90
12.4k
            ++c_pos;
91
12.4k
        }
92
268
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
18.2k
                                          PaddedPODArray<UInt8>& c) {
82
18.2k
        size_t size = a.size();
83
18.2k
        const A* __restrict a_pos = a.data();
84
18.2k
        UInt8* __restrict c_pos = c.data();
85
18.2k
        const A* __restrict a_end = a_pos + size;
86
87
1.44M
        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
18.2k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
5.70k
                                          PaddedPODArray<UInt8>& c) {
82
5.70k
        size_t size = a.size();
83
5.70k
        const A* __restrict a_pos = a.data();
84
5.70k
        UInt8* __restrict c_pos = c.data();
85
5.70k
        const A* __restrict a_end = a_pos + size;
86
87
4.42M
        while (a_pos < a_end) {
88
4.41M
            *c_pos = Op::apply(*a_pos, b);
89
4.41M
            ++a_pos;
90
4.41M
            ++c_pos;
91
4.41M
        }
92
5.70k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13.2k
                                          PaddedPODArray<UInt8>& c) {
82
13.2k
        size_t size = a.size();
83
13.2k
        const A* __restrict a_pos = a.data();
84
13.2k
        UInt8* __restrict c_pos = c.data();
85
13.2k
        const A* __restrict a_end = a_pos + size;
86
87
171k
        while (a_pos < a_end) {
88
158k
            *c_pos = Op::apply(*a_pos, b);
89
158k
            ++a_pos;
90
158k
            ++c_pos;
91
158k
        }
92
13.2k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.40k
                                          PaddedPODArray<UInt8>& c) {
82
1.40k
        size_t size = a.size();
83
1.40k
        const A* __restrict a_pos = a.data();
84
1.40k
        UInt8* __restrict c_pos = c.data();
85
1.40k
        const A* __restrict a_end = a_pos + size;
86
87
3.96k
        while (a_pos < a_end) {
88
2.55k
            *c_pos = Op::apply(*a_pos, b);
89
2.55k
            ++a_pos;
90
2.55k
            ++c_pos;
91
2.55k
        }
92
1.40k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
202
                                          PaddedPODArray<UInt8>& c) {
82
202
        size_t size = a.size();
83
202
        const A* __restrict a_pos = a.data();
84
202
        UInt8* __restrict c_pos = c.data();
85
202
        const A* __restrict a_end = a_pos + size;
86
87
1.74k
        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
202
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
36
                                          PaddedPODArray<UInt8>& c) {
82
36
        size_t size = a.size();
83
36
        const A* __restrict a_pos = a.data();
84
36
        UInt8* __restrict c_pos = c.data();
85
36
        const A* __restrict a_end = a_pos + size;
86
87
86.0k
        while (a_pos < a_end) {
88
86.0k
            *c_pos = Op::apply(*a_pos, b);
89
86.0k
            ++a_pos;
90
86.0k
            ++c_pos;
91
86.0k
        }
92
36
    }
_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
216
                                          PaddedPODArray<UInt8>& c) {
82
216
        size_t size = a.size();
83
216
        const A* __restrict a_pos = a.data();
84
216
        UInt8* __restrict c_pos = c.data();
85
216
        const A* __restrict a_end = a_pos + size;
86
87
3.77k
        while (a_pos < a_end) {
88
3.55k
            *c_pos = Op::apply(*a_pos, b);
89
3.55k
            ++a_pos;
90
3.55k
            ++c_pos;
91
3.55k
        }
92
216
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
26
                                          PaddedPODArray<UInt8>& c) {
82
26
        size_t size = a.size();
83
26
        const A* __restrict a_pos = a.data();
84
26
        UInt8* __restrict c_pos = c.data();
85
26
        const A* __restrict a_end = a_pos + size;
86
87
64
        while (a_pos < a_end) {
88
38
            *c_pos = Op::apply(*a_pos, b);
89
38
            ++a_pos;
90
38
            ++c_pos;
91
38
        }
92
26
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.43k
                                          PaddedPODArray<UInt8>& c) {
82
2.43k
        size_t size = a.size();
83
2.43k
        const A* __restrict a_pos = a.data();
84
2.43k
        UInt8* __restrict c_pos = c.data();
85
2.43k
        const A* __restrict a_end = a_pos + size;
86
87
346k
        while (a_pos < a_end) {
88
344k
            *c_pos = Op::apply(*a_pos, b);
89
344k
            ++a_pos;
90
344k
            ++c_pos;
91
344k
        }
92
2.43k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
211
                                          PaddedPODArray<UInt8>& c) {
82
211
        size_t size = a.size();
83
211
        const A* __restrict a_pos = a.data();
84
211
        UInt8* __restrict c_pos = c.data();
85
211
        const A* __restrict a_end = a_pos + size;
86
87
316k
        while (a_pos < a_end) {
88
316k
            *c_pos = Op::apply(*a_pos, b);
89
316k
            ++a_pos;
90
316k
            ++c_pos;
91
316k
        }
92
211
    }
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
144
                                          PaddedPODArray<UInt8>& c) {
82
144
        size_t size = a.size();
83
144
        const A* __restrict a_pos = a.data();
84
144
        UInt8* __restrict c_pos = c.data();
85
144
        const A* __restrict a_end = a_pos + size;
86
87
116k
        while (a_pos < a_end) {
88
116k
            *c_pos = Op::apply(*a_pos, b);
89
116k
            ++a_pos;
90
116k
            ++c_pos;
91
116k
        }
92
144
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
340
                                          PaddedPODArray<UInt8>& c) {
82
340
        size_t size = a.size();
83
340
        const A* __restrict a_pos = a.data();
84
340
        UInt8* __restrict c_pos = c.data();
85
340
        const A* __restrict a_end = a_pos + size;
86
87
158k
        while (a_pos < a_end) {
88
157k
            *c_pos = Op::apply(*a_pos, b);
89
157k
            ++a_pos;
90
157k
            ++c_pos;
91
157k
        }
92
340
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.54k
                                          PaddedPODArray<UInt8>& c) {
82
1.54k
        size_t size = a.size();
83
1.54k
        const A* __restrict a_pos = a.data();
84
1.54k
        UInt8* __restrict c_pos = c.data();
85
1.54k
        const A* __restrict a_end = a_pos + size;
86
87
4.66M
        while (a_pos < a_end) {
88
4.66M
            *c_pos = Op::apply(*a_pos, b);
89
4.66M
            ++a_pos;
90
4.66M
            ++c_pos;
91
4.66M
        }
92
1.54k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
10.3k
                                          PaddedPODArray<UInt8>& c) {
82
10.3k
        size_t size = a.size();
83
10.3k
        const A* __restrict a_pos = a.data();
84
10.3k
        UInt8* __restrict c_pos = c.data();
85
10.3k
        const A* __restrict a_end = a_pos + size;
86
87
75.3M
        while (a_pos < a_end) {
88
75.3M
            *c_pos = Op::apply(*a_pos, b);
89
75.3M
            ++a_pos;
90
75.3M
            ++c_pos;
91
75.3M
        }
92
10.3k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
610
                                          PaddedPODArray<UInt8>& c) {
82
610
        size_t size = a.size();
83
610
        const A* __restrict a_pos = a.data();
84
610
        UInt8* __restrict c_pos = c.data();
85
610
        const A* __restrict a_end = a_pos + size;
86
87
30.6k
        while (a_pos < a_end) {
88
29.9k
            *c_pos = Op::apply(*a_pos, b);
89
29.9k
            ++a_pos;
90
29.9k
            ++c_pos;
91
29.9k
        }
92
610
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
454
                                          PaddedPODArray<UInt8>& c) {
82
454
        size_t size = a.size();
83
454
        const A* __restrict a_pos = a.data();
84
454
        UInt8* __restrict c_pos = c.data();
85
454
        const A* __restrict a_end = a_pos + size;
86
87
26.3k
        while (a_pos < a_end) {
88
25.8k
            *c_pos = Op::apply(*a_pos, b);
89
25.8k
            ++a_pos;
90
25.8k
            ++c_pos;
91
25.8k
        }
92
454
    }
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
58
                                          PaddedPODArray<UInt8>& c) {
82
58
        size_t size = a.size();
83
58
        const A* __restrict a_pos = a.data();
84
58
        UInt8* __restrict c_pos = c.data();
85
58
        const A* __restrict a_end = a_pos + size;
86
87
123k
        while (a_pos < a_end) {
88
123k
            *c_pos = Op::apply(*a_pos, b);
89
123k
            ++a_pos;
90
123k
            ++c_pos;
91
123k
        }
92
58
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
280
                                          PaddedPODArray<UInt8>& c) {
82
280
        size_t size = a.size();
83
280
        const A* __restrict a_pos = a.data();
84
280
        UInt8* __restrict c_pos = c.data();
85
280
        const A* __restrict a_end = a_pos + size;
86
87
80.4k
        while (a_pos < a_end) {
88
80.1k
            *c_pos = Op::apply(*a_pos, b);
89
80.1k
            ++a_pos;
90
80.1k
            ++c_pos;
91
80.1k
        }
92
280
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
58
                                          PaddedPODArray<UInt8>& c) {
82
58
        size_t size = a.size();
83
58
        const A* __restrict a_pos = a.data();
84
58
        UInt8* __restrict c_pos = c.data();
85
58
        const A* __restrict a_end = a_pos + size;
86
87
140k
        while (a_pos < a_end) {
88
140k
            *c_pos = Op::apply(*a_pos, b);
89
140k
            ++a_pos;
90
140k
            ++c_pos;
91
140k
        }
92
58
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
239
                                          PaddedPODArray<UInt8>& c) {
82
239
        size_t size = a.size();
83
239
        const A* __restrict a_pos = a.data();
84
239
        UInt8* __restrict c_pos = c.data();
85
239
        const A* __restrict a_end = a_pos + size;
86
87
153k
        while (a_pos < a_end) {
88
153k
            *c_pos = Op::apply(*a_pos, b);
89
153k
            ++a_pos;
90
153k
            ++c_pos;
91
153k
        }
92
239
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
12.0k
                                          PaddedPODArray<UInt8>& c) {
82
12.0k
        size_t size = a.size();
83
12.0k
        const A* __restrict a_pos = a.data();
84
12.0k
        UInt8* __restrict c_pos = c.data();
85
12.0k
        const A* __restrict a_end = a_pos + size;
86
87
41.4M
        while (a_pos < a_end) {
88
41.4M
            *c_pos = Op::apply(*a_pos, b);
89
41.4M
            ++a_pos;
90
41.4M
            ++c_pos;
91
41.4M
        }
92
12.0k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
18.0k
                                          PaddedPODArray<UInt8>& c) {
82
18.0k
        size_t size = a.size();
83
18.0k
        const A* __restrict a_pos = a.data();
84
18.0k
        UInt8* __restrict c_pos = c.data();
85
18.0k
        const A* __restrict a_end = a_pos + size;
86
87
45.5M
        while (a_pos < a_end) {
88
45.5M
            *c_pos = Op::apply(*a_pos, b);
89
45.5M
            ++a_pos;
90
45.5M
            ++c_pos;
91
45.5M
        }
92
18.0k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
794
                                          PaddedPODArray<UInt8>& c) {
82
794
        size_t size = a.size();
83
794
        const A* __restrict a_pos = a.data();
84
794
        UInt8* __restrict c_pos = c.data();
85
794
        const A* __restrict a_end = a_pos + size;
86
87
40.9k
        while (a_pos < a_end) {
88
40.1k
            *c_pos = Op::apply(*a_pos, b);
89
40.1k
            ++a_pos;
90
40.1k
            ++c_pos;
91
40.1k
        }
92
794
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
781
                                          PaddedPODArray<UInt8>& c) {
82
781
        size_t size = a.size();
83
781
        const A* __restrict a_pos = a.data();
84
781
        UInt8* __restrict c_pos = c.data();
85
781
        const A* __restrict a_end = a_pos + size;
86
87
38.7k
        while (a_pos < a_end) {
88
38.0k
            *c_pos = Op::apply(*a_pos, b);
89
38.0k
            ++a_pos;
90
38.0k
            ++c_pos;
91
38.0k
        }
92
781
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
38
                                          PaddedPODArray<UInt8>& c) {
82
38
        size_t size = a.size();
83
38
        const A* __restrict a_pos = a.data();
84
38
        UInt8* __restrict c_pos = c.data();
85
38
        const A* __restrict a_end = a_pos + size;
86
87
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
38
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
34
                                          PaddedPODArray<UInt8>& c) {
82
34
        size_t size = a.size();
83
34
        const A* __restrict a_pos = a.data();
84
34
        UInt8* __restrict c_pos = c.data();
85
34
        const A* __restrict a_end = a_pos + size;
86
87
90.3k
        while (a_pos < a_end) {
88
90.2k
            *c_pos = Op::apply(*a_pos, b);
89
90.2k
            ++a_pos;
90
90.2k
            ++c_pos;
91
90.2k
        }
92
34
    }
_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
108
                                          PaddedPODArray<UInt8>& c) {
82
108
        size_t size = a.size();
83
108
        const A* __restrict a_pos = a.data();
84
108
        UInt8* __restrict c_pos = c.data();
85
108
        const A* __restrict a_end = a_pos + size;
86
87
218
        while (a_pos < a_end) {
88
110
            *c_pos = Op::apply(*a_pos, b);
89
110
            ++a_pos;
90
110
            ++c_pos;
91
110
        }
92
108
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
104
                                          PaddedPODArray<UInt8>& c) {
82
104
        size_t size = a.size();
83
104
        const A* __restrict a_pos = a.data();
84
104
        UInt8* __restrict c_pos = c.data();
85
104
        const A* __restrict a_end = a_pos + size;
86
87
208
        while (a_pos < a_end) {
88
104
            *c_pos = Op::apply(*a_pos, b);
89
104
            ++a_pos;
90
104
            ++c_pos;
91
104
        }
92
104
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
107
                                          PaddedPODArray<UInt8>& c) {
82
107
        size_t size = a.size();
83
107
        const A* __restrict a_pos = a.data();
84
107
        UInt8* __restrict c_pos = c.data();
85
107
        const A* __restrict a_end = a_pos + size;
86
87
276k
        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
107
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
117
                                          PaddedPODArray<UInt8>& c) {
82
117
        size_t size = a.size();
83
117
        const A* __restrict a_pos = a.data();
84
117
        UInt8* __restrict c_pos = c.data();
85
117
        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
117
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
5
    }
Unexecuted instantiation: _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
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
5
    }
Unexecuted instantiation: _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
131
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
131
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
408k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
408k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
408k
        }
113
131
    }
_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
53
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
53
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
242k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
242k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
242k
        }
113
53
    }
_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
166k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
166k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
166k
        }
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
403
                                                      PaddedPODArray<UInt8>& c) {
127
403
        size_t size = a_offsets.size();
128
403
        ColumnString::Offset prev_a_offset = 0;
129
403
        ColumnString::Offset prev_b_offset = 0;
130
403
        const auto* a_pos = a_data.data();
131
403
        const auto* b_pos = b_data.data();
132
133
1.11k
        for (size_t i = 0; i < size; ++i) {
134
708
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
708
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
708
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
708
                             0);
138
139
708
            prev_a_offset = a_offsets[i];
140
708
            prev_b_offset = b_offsets[i];
141
708
        }
142
403
    }
_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
38
                                                      PaddedPODArray<UInt8>& c) {
127
38
        size_t size = a_offsets.size();
128
38
        ColumnString::Offset prev_a_offset = 0;
129
38
        ColumnString::Offset prev_b_offset = 0;
130
38
        const auto* a_pos = a_data.data();
131
38
        const auto* b_pos = b_data.data();
132
133
332
        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
38
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
363
                                                      PaddedPODArray<UInt8>& c) {
127
363
        size_t size = a_offsets.size();
128
363
        ColumnString::Offset prev_a_offset = 0;
129
363
        ColumnString::Offset prev_b_offset = 0;
130
363
        const auto* a_pos = a_data.data();
131
363
        const auto* b_pos = b_data.data();
132
133
730
        for (size_t i = 0; i < size; ++i) {
134
367
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
367
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
367
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
367
                             0);
138
139
367
            prev_a_offset = a_offsets[i];
140
367
            prev_b_offset = b_offsets[i];
141
367
        }
142
363
    }
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
2.93k
                                                 PaddedPODArray<UInt8>& c) {
149
2.93k
        size_t size = a_offsets.size();
150
2.93k
        ColumnString::Offset prev_a_offset = 0;
151
2.93k
        const auto* a_pos = a_data.data();
152
2.93k
        const auto* b_pos = b_data.data();
153
154
1.62M
        for (size_t i = 0; i < size; ++i) {
155
1.62M
            c[i] = Op::apply(
156
1.62M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.62M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.62M
                    0);
159
160
1.62M
            prev_a_offset = a_offsets[i];
161
1.62M
        }
162
2.93k
    }
_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
321k
        for (size_t i = 0; i < size; ++i) {
155
320k
            c[i] = Op::apply(
156
320k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
320k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
320k
                    0);
159
160
320k
            prev_a_offset = a_offsets[i];
161
320k
        }
162
191
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
253
                                                 PaddedPODArray<UInt8>& c) {
149
253
        size_t size = a_offsets.size();
150
253
        ColumnString::Offset prev_a_offset = 0;
151
253
        const auto* a_pos = a_data.data();
152
253
        const auto* b_pos = b_data.data();
153
154
73.0k
        for (size_t i = 0; i < size; ++i) {
155
72.7k
            c[i] = Op::apply(
156
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.7k
                    0);
159
160
72.7k
            prev_a_offset = a_offsets[i];
161
72.7k
        }
162
253
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
611
                                                 PaddedPODArray<UInt8>& c) {
149
611
        size_t size = a_offsets.size();
150
611
        ColumnString::Offset prev_a_offset = 0;
151
611
        const auto* a_pos = a_data.data();
152
611
        const auto* b_pos = b_data.data();
153
154
576k
        for (size_t i = 0; i < size; ++i) {
155
575k
            c[i] = Op::apply(
156
575k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
575k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
575k
                    0);
159
160
575k
            prev_a_offset = a_offsets[i];
161
575k
        }
162
611
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
1.87k
                                                 PaddedPODArray<UInt8>& c) {
149
1.87k
        size_t size = a_offsets.size();
150
1.87k
        ColumnString::Offset prev_a_offset = 0;
151
1.87k
        const auto* a_pos = a_data.data();
152
1.87k
        const auto* b_pos = b_data.data();
153
154
654k
        for (size_t i = 0; i < size; ++i) {
155
652k
            c[i] = Op::apply(
156
652k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
652k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
652k
                    0);
159
160
652k
            prev_a_offset = a_offsets[i];
161
652k
        }
162
1.87k
    }
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
392
                                                      PaddedPODArray<UInt8>& c) {
181
392
        size_t size = a_offsets.size();
182
392
        ColumnString::Offset prev_a_offset = 0;
183
392
        ColumnString::Offset prev_b_offset = 0;
184
392
        const auto* a_pos = a_data.data();
185
392
        const auto* b_pos = b_data.data();
186
187
1.25k
        for (size_t i = 0; i < size; ++i) {
188
863
            auto a_size = a_offsets[i] - prev_a_offset;
189
863
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
863
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
863
                                                               b_pos + prev_b_offset, b_size);
193
194
863
            prev_a_offset = a_offsets[i];
195
863
            prev_b_offset = b_offsets[i];
196
863
        }
197
392
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
391
                                                      PaddedPODArray<UInt8>& c) {
181
391
        size_t size = a_offsets.size();
182
391
        ColumnString::Offset prev_a_offset = 0;
183
391
        ColumnString::Offset prev_b_offset = 0;
184
391
        const auto* a_pos = a_data.data();
185
391
        const auto* b_pos = b_data.data();
186
187
1.25k
        for (size_t i = 0; i < size; ++i) {
188
859
            auto a_size = a_offsets[i] - prev_a_offset;
189
859
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
859
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
859
                                                               b_pos + prev_b_offset, b_size);
193
194
859
            prev_a_offset = a_offsets[i];
195
859
            prev_b_offset = b_offsets[i];
196
859
        }
197
391
    }
_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
22.2k
                                                 PaddedPODArray<UInt8>& c) {
204
22.2k
        size_t size = a_offsets.size();
205
22.2k
        if (b_size == 0) {
206
1
            auto* __restrict data = c.data();
207
1
            auto* __restrict offsets = a_offsets.data();
208
209
1
            ColumnString::Offset prev_a_offset = 0;
210
4
            for (size_t i = 0; i < size; ++i) {
211
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
3
                prev_a_offset = offsets[i];
213
3
            }
214
22.2k
        } else {
215
22.2k
            ColumnString::Offset prev_a_offset = 0;
216
22.2k
            const auto* a_pos = a_data.data();
217
22.2k
            const auto* b_pos = b_data.data();
218
9.09M
            for (size_t i = 0; i < size; ++i) {
219
9.07M
                auto a_size = a_offsets[i] - prev_a_offset;
220
9.07M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
9.07M
                                                                   b_pos, b_size);
222
9.07M
                prev_a_offset = a_offsets[i];
223
9.07M
            }
224
22.2k
        }
225
22.2k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
20.7k
                                                 PaddedPODArray<UInt8>& c) {
204
20.7k
        size_t size = a_offsets.size();
205
20.7k
        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
20.7k
        } else {
215
20.7k
            ColumnString::Offset prev_a_offset = 0;
216
20.7k
            const auto* a_pos = a_data.data();
217
20.7k
            const auto* b_pos = b_data.data();
218
8.13M
            for (size_t i = 0; i < size; ++i) {
219
8.11M
                auto a_size = a_offsets[i] - prev_a_offset;
220
8.11M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
8.11M
                                                                   b_pos, b_size);
222
8.11M
                prev_a_offset = a_offsets[i];
223
8.11M
            }
224
20.7k
        }
225
20.7k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
1.47k
                                                 PaddedPODArray<UInt8>& c) {
204
1.47k
        size_t size = a_offsets.size();
205
1.47k
        if (b_size == 0) {
206
1
            auto* __restrict data = c.data();
207
1
            auto* __restrict offsets = a_offsets.data();
208
209
1
            ColumnString::Offset prev_a_offset = 0;
210
4
            for (size_t i = 0; i < size; ++i) {
211
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
3
                prev_a_offset = offsets[i];
213
3
            }
214
1.46k
        } else {
215
1.46k
            ColumnString::Offset prev_a_offset = 0;
216
1.46k
            const auto* a_pos = a_data.data();
217
1.46k
            const auto* b_pos = b_data.data();
218
957k
            for (size_t i = 0; i < size; ++i) {
219
956k
                auto a_size = a_offsets[i] - prev_a_offset;
220
956k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
956k
                                                                   b_pos, b_size);
222
956k
                prev_a_offset = a_offsets[i];
223
956k
            }
224
1.46k
        }
225
1.47k
    }
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
473k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
421k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.34k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.28k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
18.7k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.11k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
21.9k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
473k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
422k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.34k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.28k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
18.7k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.11k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
21.9k
    FunctionComparison() = default;
268
269
1.21M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.17M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.18k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
6.55k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
17.1k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.22k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
16.1k
    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
169k
                            const ColumnPtr& col_right_ptr) const {
275
169k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
169k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
169k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
169k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
169k
        DCHECK(!(left_is_const && right_is_const));
282
283
169k
        if (!left_is_const && !right_is_const) {
284
12.5k
            auto col_res = ColumnUInt8::create();
285
286
12.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
12.5k
            vec_res.resize(col_left->get_data().size());
288
12.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
12.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
12.5k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
12.5k
                                                     vec_res);
292
293
12.5k
            block.replace_by_position(result, std::move(col_res));
294
157k
        } else if (!left_is_const && right_is_const) {
295
157k
            auto col_res = ColumnUInt8::create();
296
297
157k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
157k
            vec_res.resize(col_left->size());
299
157k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
157k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
157k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
157k
                                                       col_right->get_element(0), vec_res);
303
304
157k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
169k
        return Status::OK();
318
169k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.60k
                            const ColumnPtr& col_right_ptr) const {
275
1.60k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.60k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.60k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.60k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.60k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.60k
        if (!left_is_const && !right_is_const) {
284
67
            auto col_res = ColumnUInt8::create();
285
286
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
67
            vec_res.resize(col_left->get_data().size());
288
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
67
                              typename PrimitiveTypeTraits<PT>::CppType,
290
67
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
67
                                                     vec_res);
292
293
67
            block.replace_by_position(result, std::move(col_res));
294
1.54k
        } else if (!left_is_const && right_is_const) {
295
1.53k
            auto col_res = ColumnUInt8::create();
296
297
1.53k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.53k
            vec_res.resize(col_left->size());
299
1.53k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.53k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.53k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.53k
                                                       col_right->get_element(0), vec_res);
303
304
1.53k
            block.replace_by_position(result, std::move(col_res));
305
1.53k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.60k
        return Status::OK();
318
1.60k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.50k
                            const ColumnPtr& col_right_ptr) const {
275
1.50k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.50k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.50k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.50k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.50k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.50k
        if (!left_is_const && !right_is_const) {
284
317
            auto col_res = ColumnUInt8::create();
285
286
317
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
317
            vec_res.resize(col_left->get_data().size());
288
317
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
317
                              typename PrimitiveTypeTraits<PT>::CppType,
290
317
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
317
                                                     vec_res);
292
293
317
            block.replace_by_position(result, std::move(col_res));
294
1.18k
        } else if (!left_is_const && right_is_const) {
295
1.18k
            auto col_res = ColumnUInt8::create();
296
297
1.18k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.18k
            vec_res.resize(col_left->size());
299
1.18k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.18k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.18k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.18k
                                                       col_right->get_element(0), vec_res);
303
304
1.18k
            block.replace_by_position(result, std::move(col_res));
305
1.18k
        } 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.50k
        return Status::OK();
318
1.50k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
643
                            const ColumnPtr& col_right_ptr) const {
275
643
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
643
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
643
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
643
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
643
        DCHECK(!(left_is_const && right_is_const));
282
283
643
        if (!left_is_const && !right_is_const) {
284
231
            auto col_res = ColumnUInt8::create();
285
286
231
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
231
            vec_res.resize(col_left->get_data().size());
288
231
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
231
                              typename PrimitiveTypeTraits<PT>::CppType,
290
231
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
231
                                                     vec_res);
292
293
231
            block.replace_by_position(result, std::move(col_res));
294
412
        } 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
412
        } 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
643
        return Status::OK();
318
643
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
2
            auto col_res = ColumnUInt8::create();
285
286
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2
            vec_res.resize(col_left->get_data().size());
288
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2
                                                     vec_res);
292
293
2
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
5.35k
                            const ColumnPtr& col_right_ptr) const {
275
5.35k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
5.35k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
5.35k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
5.35k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
5.35k
        DCHECK(!(left_is_const && right_is_const));
282
283
5.35k
        if (!left_is_const && !right_is_const) {
284
609
            auto col_res = ColumnUInt8::create();
285
286
609
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
609
            vec_res.resize(col_left->get_data().size());
288
609
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
609
                              typename PrimitiveTypeTraits<PT>::CppType,
290
609
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
609
                                                     vec_res);
292
293
609
            block.replace_by_position(result, std::move(col_res));
294
4.74k
        } else if (!left_is_const && right_is_const) {
295
4.74k
            auto col_res = ColumnUInt8::create();
296
297
4.74k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4.74k
            vec_res.resize(col_left->size());
299
4.74k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4.74k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4.74k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4.74k
                                                       col_right->get_element(0), vec_res);
303
304
4.74k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
5.35k
        return Status::OK();
318
5.35k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.32k
                            const ColumnPtr& col_right_ptr) const {
275
1.32k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.32k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.32k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.32k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.32k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.32k
        if (!left_is_const && !right_is_const) {
284
113
            auto col_res = ColumnUInt8::create();
285
286
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
113
            vec_res.resize(col_left->get_data().size());
288
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
113
                              typename PrimitiveTypeTraits<PT>::CppType,
290
113
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
113
                                                     vec_res);
292
293
113
            block.replace_by_position(result, std::move(col_res));
294
1.21k
        } else if (!left_is_const && right_is_const) {
295
1.21k
            auto col_res = ColumnUInt8::create();
296
297
1.21k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.21k
            vec_res.resize(col_left->size());
299
1.21k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.21k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.21k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.21k
                                                       col_right->get_element(0), vec_res);
303
304
1.21k
            block.replace_by_position(result, std::move(col_res));
305
1.21k
        } 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.32k
        return Status::OK();
318
1.32k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30.5k
                            const ColumnPtr& col_right_ptr) const {
275
30.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30.5k
        DCHECK(!(left_is_const && right_is_const));
282
283
30.5k
        if (!left_is_const && !right_is_const) {
284
373
            auto col_res = ColumnUInt8::create();
285
286
373
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
373
            vec_res.resize(col_left->get_data().size());
288
373
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
373
                              typename PrimitiveTypeTraits<PT>::CppType,
290
373
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
373
                                                     vec_res);
292
293
373
            block.replace_by_position(result, std::move(col_res));
294
30.1k
        } else if (!left_is_const && right_is_const) {
295
30.1k
            auto col_res = ColumnUInt8::create();
296
297
30.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
30.1k
            vec_res.resize(col_left->size());
299
30.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
30.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
30.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
30.1k
                                                       col_right->get_element(0), vec_res);
303
304
30.1k
            block.replace_by_position(result, std::move(col_res));
305
30.1k
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
30.5k
        return Status::OK();
318
30.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
23.0k
                            const ColumnPtr& col_right_ptr) const {
275
23.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
23.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
23.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
23.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
23.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
23.0k
        if (!left_is_const && !right_is_const) {
284
381
            auto col_res = ColumnUInt8::create();
285
286
381
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
381
            vec_res.resize(col_left->get_data().size());
288
381
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
381
                              typename PrimitiveTypeTraits<PT>::CppType,
290
381
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
381
                                                     vec_res);
292
293
381
            block.replace_by_position(result, std::move(col_res));
294
22.6k
        } else if (!left_is_const && right_is_const) {
295
22.6k
            auto col_res = ColumnUInt8::create();
296
297
22.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
22.6k
            vec_res.resize(col_left->size());
299
22.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
22.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
22.6k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
22.6k
                                                       col_right->get_element(0), vec_res);
303
304
22.6k
            block.replace_by_position(result, std::move(col_res));
305
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
23.0k
        return Status::OK();
318
23.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
128
                            const ColumnPtr& col_right_ptr) const {
275
128
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
128
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
128
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
128
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
128
        DCHECK(!(left_is_const && right_is_const));
282
283
128
        if (!left_is_const && !right_is_const) {
284
71
            auto col_res = ColumnUInt8::create();
285
286
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
71
            vec_res.resize(col_left->get_data().size());
288
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
71
                              typename PrimitiveTypeTraits<PT>::CppType,
290
71
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
71
                                                     vec_res);
292
293
71
            block.replace_by_position(result, std::move(col_res));
294
71
        } else if (!left_is_const && right_is_const) {
295
57
            auto col_res = ColumnUInt8::create();
296
297
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
57
            vec_res.resize(col_left->size());
299
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
57
                              typename PrimitiveTypeTraits<PT>::CppType,
301
57
                              Op<PT>>::vector_constant(col_left->get_data(),
302
57
                                                       col_right->get_element(0), vec_res);
303
304
57
            block.replace_by_position(result, std::move(col_res));
305
57
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
128
        return Status::OK();
318
128
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_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
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
15
        } 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
20
        return Status::OK();
318
20
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
19
                            const ColumnPtr& col_right_ptr) const {
275
19
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
19
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
19
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
19
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
19
        DCHECK(!(left_is_const && right_is_const));
282
283
19
        if (!left_is_const && !right_is_const) {
284
13
            auto col_res = ColumnUInt8::create();
285
286
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
13
            vec_res.resize(col_left->get_data().size());
288
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
13
                              typename PrimitiveTypeTraits<PT>::CppType,
290
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
13
                                                     vec_res);
292
293
13
            block.replace_by_position(result, std::move(col_res));
294
13
        } 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
19
        return Status::OK();
318
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_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
88
            auto col_res = ColumnUInt8::create();
285
286
88
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
88
            vec_res.resize(col_left->get_data().size());
288
88
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
88
                              typename PrimitiveTypeTraits<PT>::CppType,
290
88
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
88
                                                     vec_res);
292
293
88
            block.replace_by_position(result, std::move(col_res));
294
88
        } else if (!left_is_const && right_is_const) {
295
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
92
        return Status::OK();
318
92
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
397
                            const ColumnPtr& col_right_ptr) const {
275
397
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
397
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
397
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
397
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
397
        DCHECK(!(left_is_const && right_is_const));
282
283
398
        if (!left_is_const && !right_is_const) {
284
85
            auto col_res = ColumnUInt8::create();
285
286
85
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
85
            vec_res.resize(col_left->get_data().size());
288
85
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
85
                              typename PrimitiveTypeTraits<PT>::CppType,
290
85
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
85
                                                     vec_res);
292
293
85
            block.replace_by_position(result, std::move(col_res));
294
313
        } else if (!left_is_const && right_is_const) {
295
313
            auto col_res = ColumnUInt8::create();
296
297
313
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
313
            vec_res.resize(col_left->size());
299
313
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
313
                              typename PrimitiveTypeTraits<PT>::CppType,
301
313
                              Op<PT>>::vector_constant(col_left->get_data(),
302
313
                                                       col_right->get_element(0), vec_res);
303
304
313
            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
397
        return Status::OK();
318
397
    }
_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
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
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
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
78
        return Status::OK();
318
78
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
98
                            const ColumnPtr& col_right_ptr) const {
275
98
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
98
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
98
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
98
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
98
        DCHECK(!(left_is_const && right_is_const));
282
283
98
        if (!left_is_const && !right_is_const) {
284
54
            auto col_res = ColumnUInt8::create();
285
286
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
54
            vec_res.resize(col_left->get_data().size());
288
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
54
                              typename PrimitiveTypeTraits<PT>::CppType,
290
54
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
54
                                                     vec_res);
292
293
54
            block.replace_by_position(result, std::move(col_res));
294
54
        } 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
98
        return Status::OK();
318
98
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
26
                            const ColumnPtr& col_right_ptr) const {
275
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
26
        DCHECK(!(left_is_const && right_is_const));
282
283
26
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
26
        } else if (!left_is_const && right_is_const) {
295
26
            auto col_res = ColumnUInt8::create();
296
297
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
26
            vec_res.resize(col_left->size());
299
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              typename PrimitiveTypeTraits<PT>::CppType,
301
26
                              Op<PT>>::vector_constant(col_left->get_data(),
302
26
                                                       col_right->get_element(0), vec_res);
303
304
26
            block.replace_by_position(result, std::move(col_res));
305
26
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
26
        return Status::OK();
318
26
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.82k
                            const ColumnPtr& col_right_ptr) const {
275
3.82k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.82k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.82k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.82k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.82k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.82k
        if (!left_is_const && !right_is_const) {
284
1.09k
            auto col_res = ColumnUInt8::create();
285
286
1.09k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.09k
            vec_res.resize(col_left->get_data().size());
288
1.09k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.09k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.09k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.09k
                                                     vec_res);
292
293
1.09k
            block.replace_by_position(result, std::move(col_res));
294
2.73k
        } else if (!left_is_const && right_is_const) {
295
2.73k
            auto col_res = ColumnUInt8::create();
296
297
2.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.73k
            vec_res.resize(col_left->size());
299
2.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.73k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.73k
                                                       col_right->get_element(0), vec_res);
303
304
2.73k
            block.replace_by_position(result, std::move(col_res));
305
2.73k
        } 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.82k
        return Status::OK();
318
3.82k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.33k
                            const ColumnPtr& col_right_ptr) const {
275
2.33k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.33k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.33k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.33k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.33k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.33k
        if (!left_is_const && !right_is_const) {
284
404
            auto col_res = ColumnUInt8::create();
285
286
404
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
404
            vec_res.resize(col_left->get_data().size());
288
404
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
404
                              typename PrimitiveTypeTraits<PT>::CppType,
290
404
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
404
                                                     vec_res);
292
293
404
            block.replace_by_position(result, std::move(col_res));
294
1.92k
        } else if (!left_is_const && right_is_const) {
295
1.92k
            auto col_res = ColumnUInt8::create();
296
297
1.92k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.92k
            vec_res.resize(col_left->size());
299
1.92k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.92k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.92k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.92k
                                                       col_right->get_element(0), vec_res);
303
304
1.92k
            block.replace_by_position(result, std::move(col_res));
305
1.92k
        } 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.33k
        return Status::OK();
318
2.33k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
48
                            const ColumnPtr& col_right_ptr) const {
275
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
48
        DCHECK(!(left_is_const && right_is_const));
282
283
48
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
28
        } else if (!left_is_const && right_is_const) {
295
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
48
        return Status::OK();
318
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
60
                            const ColumnPtr& col_right_ptr) const {
275
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
60
        DCHECK(!(left_is_const && right_is_const));
282
283
60
        if (!left_is_const && !right_is_const) {
284
19
            auto col_res = ColumnUInt8::create();
285
286
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
19
            vec_res.resize(col_left->get_data().size());
288
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
19
                              typename PrimitiveTypeTraits<PT>::CppType,
290
19
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
19
                                                     vec_res);
292
293
19
            block.replace_by_position(result, std::move(col_res));
294
41
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
60
        return Status::OK();
318
60
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.40k
                            const ColumnPtr& col_right_ptr) const {
275
1.40k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.40k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.40k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.40k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.40k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.40k
        if (!left_is_const && !right_is_const) {
284
1.25k
            auto col_res = ColumnUInt8::create();
285
286
1.25k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.25k
            vec_res.resize(col_left->get_data().size());
288
1.25k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.25k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.25k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.25k
                                                     vec_res);
292
293
1.25k
            block.replace_by_position(result, std::move(col_res));
294
1.25k
        } else if (!left_is_const && right_is_const) {
295
157
            auto col_res = ColumnUInt8::create();
296
297
157
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
157
            vec_res.resize(col_left->size());
299
157
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
157
                              typename PrimitiveTypeTraits<PT>::CppType,
301
157
                              Op<PT>>::vector_constant(col_left->get_data(),
302
157
                                                       col_right->get_element(0), vec_res);
303
304
157
            block.replace_by_position(result, std::move(col_res));
305
157
        } 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.40k
        return Status::OK();
318
1.40k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
94
                            const ColumnPtr& col_right_ptr) const {
275
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
94
        DCHECK(!(left_is_const && right_is_const));
282
283
94
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
94
        } else if (!left_is_const && right_is_const) {
295
94
            auto col_res = ColumnUInt8::create();
296
297
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
94
            vec_res.resize(col_left->size());
299
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
94
                              typename PrimitiveTypeTraits<PT>::CppType,
301
94
                              Op<PT>>::vector_constant(col_left->get_data(),
302
94
                                                       col_right->get_element(0), vec_res);
303
304
94
            block.replace_by_position(result, std::move(col_res));
305
94
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
94
        return Status::OK();
318
94
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
638
                            const ColumnPtr& col_right_ptr) const {
275
638
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
638
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
638
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
638
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
638
        DCHECK(!(left_is_const && right_is_const));
282
283
639
        if (!left_is_const && !right_is_const) {
284
256
            auto col_res = ColumnUInt8::create();
285
286
256
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
256
            vec_res.resize(col_left->get_data().size());
288
256
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
256
                              typename PrimitiveTypeTraits<PT>::CppType,
290
256
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
256
                                                     vec_res);
292
293
256
            block.replace_by_position(result, std::move(col_res));
294
383
        } else if (!left_is_const && right_is_const) {
295
383
            auto col_res = ColumnUInt8::create();
296
297
383
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
383
            vec_res.resize(col_left->size());
299
383
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
383
                              typename PrimitiveTypeTraits<PT>::CppType,
301
383
                              Op<PT>>::vector_constant(col_left->get_data(),
302
383
                                                       col_right->get_element(0), vec_res);
303
304
383
            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
638
        return Status::OK();
318
638
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_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.01k
        if (!left_is_const && !right_is_const) {
284
451
            auto col_res = ColumnUInt8::create();
285
286
451
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
451
            vec_res.resize(col_left->get_data().size());
288
451
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
451
                              typename PrimitiveTypeTraits<PT>::CppType,
290
451
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
451
                                                     vec_res);
292
293
451
            block.replace_by_position(result, std::move(col_res));
294
561
        } else if (!left_is_const && right_is_const) {
295
560
            auto col_res = ColumnUInt8::create();
296
297
560
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
560
            vec_res.resize(col_left->size());
299
560
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
560
                              typename PrimitiveTypeTraits<PT>::CppType,
301
560
                              Op<PT>>::vector_constant(col_left->get_data(),
302
560
                                                       col_right->get_element(0), vec_res);
303
304
560
            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.00k
        return Status::OK();
318
1.00k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.2k
                            const ColumnPtr& col_right_ptr) const {
275
20.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.2k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.2k
        if (!left_is_const && !right_is_const) {
284
1.99k
            auto col_res = ColumnUInt8::create();
285
286
1.99k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.99k
            vec_res.resize(col_left->get_data().size());
288
1.99k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.99k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.99k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.99k
                                                     vec_res);
292
293
1.99k
            block.replace_by_position(result, std::move(col_res));
294
18.2k
        } else if (!left_is_const && right_is_const) {
295
18.2k
            auto col_res = ColumnUInt8::create();
296
297
18.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
18.2k
            vec_res.resize(col_left->size());
299
18.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
18.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
18.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
18.2k
                                                       col_right->get_element(0), vec_res);
303
304
18.2k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
20.2k
        return Status::OK();
318
20.2k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
13.3k
                            const ColumnPtr& col_right_ptr) const {
275
13.3k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
13.3k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
13.3k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
13.3k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
13.3k
        DCHECK(!(left_is_const && right_is_const));
282
283
13.3k
        if (!left_is_const && !right_is_const) {
284
139
            auto col_res = ColumnUInt8::create();
285
286
139
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
139
            vec_res.resize(col_left->get_data().size());
288
139
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
139
                              typename PrimitiveTypeTraits<PT>::CppType,
290
139
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
139
                                                     vec_res);
292
293
139
            block.replace_by_position(result, std::move(col_res));
294
13.2k
        } else if (!left_is_const && right_is_const) {
295
13.2k
            auto col_res = ColumnUInt8::create();
296
297
13.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13.2k
            vec_res.resize(col_left->size());
299
13.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13.2k
                                                       col_right->get_element(0), vec_res);
303
304
13.2k
            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
13.3k
        return Status::OK();
318
13.3k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
219
                            const ColumnPtr& col_right_ptr) const {
275
219
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
219
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
219
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
219
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
219
        DCHECK(!(left_is_const && right_is_const));
282
283
219
        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
202
        } else if (!left_is_const && right_is_const) {
295
202
            auto col_res = ColumnUInt8::create();
296
297
202
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
202
            vec_res.resize(col_left->size());
299
202
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
202
                              typename PrimitiveTypeTraits<PT>::CppType,
301
202
                              Op<PT>>::vector_constant(col_left->get_data(),
302
202
                                                       col_right->get_element(0), vec_res);
303
304
202
            block.replace_by_position(result, std::move(col_res));
305
202
        } 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
219
        return Status::OK();
318
219
    }
_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
236
                            const ColumnPtr& col_right_ptr) const {
275
236
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
236
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
236
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
236
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
236
        DCHECK(!(left_is_const && right_is_const));
282
283
236
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
216
        } else if (!left_is_const && right_is_const) {
295
216
            auto col_res = ColumnUInt8::create();
296
297
216
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
216
            vec_res.resize(col_left->size());
299
216
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
216
                              typename PrimitiveTypeTraits<PT>::CppType,
301
216
                              Op<PT>>::vector_constant(col_left->get_data(),
302
216
                                                       col_right->get_element(0), vec_res);
303
304
216
            block.replace_by_position(result, std::move(col_res));
305
216
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
236
        return Status::OK();
318
236
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.47k
                            const ColumnPtr& col_right_ptr) const {
275
2.47k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.47k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.47k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.47k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.47k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.47k
        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
2.43k
        } else if (!left_is_const && right_is_const) {
295
2.43k
            auto col_res = ColumnUInt8::create();
296
297
2.43k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.43k
            vec_res.resize(col_left->size());
299
2.43k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.43k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.43k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.43k
                                                       col_right->get_element(0), vec_res);
303
304
2.43k
            block.replace_by_position(result, std::move(col_res));
305
2.43k
        } 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.47k
        return Status::OK();
318
2.47k
    }
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
144
                            const ColumnPtr& col_right_ptr) const {
275
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
144
        DCHECK(!(left_is_const && right_is_const));
282
283
144
        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
144
        } else if (!left_is_const && right_is_const) {
295
144
            auto col_res = ColumnUInt8::create();
296
297
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
144
            vec_res.resize(col_left->size());
299
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
144
                              typename PrimitiveTypeTraits<PT>::CppType,
301
144
                              Op<PT>>::vector_constant(col_left->get_data(),
302
144
                                                       col_right->get_element(0), vec_res);
303
304
144
            block.replace_by_position(result, std::move(col_res));
305
144
        } 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
144
        return Status::OK();
318
144
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.55k
                            const ColumnPtr& col_right_ptr) const {
275
1.55k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.55k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.55k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.55k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.55k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.55k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
1.54k
        } else if (!left_is_const && right_is_const) {
295
1.54k
            auto col_res = ColumnUInt8::create();
296
297
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.54k
            vec_res.resize(col_left->size());
299
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.54k
                                                       col_right->get_element(0), vec_res);
303
304
1.54k
            block.replace_by_position(result, std::move(col_res));
305
1.54k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.55k
        return Status::OK();
318
1.55k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
616
                            const ColumnPtr& col_right_ptr) const {
275
616
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
616
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
616
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
616
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
616
        DCHECK(!(left_is_const && right_is_const));
282
283
616
        if (!left_is_const && !right_is_const) {
284
6
            auto col_res = ColumnUInt8::create();
285
286
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
6
            vec_res.resize(col_left->get_data().size());
288
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
6
                              typename PrimitiveTypeTraits<PT>::CppType,
290
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
6
                                                     vec_res);
292
293
6
            block.replace_by_position(result, std::move(col_res));
294
610
        } else if (!left_is_const && right_is_const) {
295
609
            auto col_res = ColumnUInt8::create();
296
297
609
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
609
            vec_res.resize(col_left->size());
299
609
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
609
                              typename PrimitiveTypeTraits<PT>::CppType,
301
609
                              Op<PT>>::vector_constant(col_left->get_data(),
302
609
                                                       col_right->get_element(0), vec_res);
303
304
609
            block.replace_by_position(result, std::move(col_res));
305
609
        } 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
616
        return Status::OK();
318
616
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
57
                            const ColumnPtr& col_right_ptr) const {
275
57
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
57
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
57
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
57
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
57
        DCHECK(!(left_is_const && right_is_const));
282
283
58
        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
58
        } else if (!left_is_const && right_is_const) {
295
58
            auto col_res = ColumnUInt8::create();
296
297
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
58
            vec_res.resize(col_left->size());
299
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
58
                              typename PrimitiveTypeTraits<PT>::CppType,
301
58
                              Op<PT>>::vector_constant(col_left->get_data(),
302
58
                                                       col_right->get_element(0), vec_res);
303
304
58
            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
57
        return Status::OK();
318
57
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
58
                            const ColumnPtr& col_right_ptr) const {
275
58
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
58
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
58
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
58
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
58
        DCHECK(!(left_is_const && right_is_const));
282
283
58
        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
58
        } else if (!left_is_const && right_is_const) {
295
58
            auto col_res = ColumnUInt8::create();
296
297
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
58
            vec_res.resize(col_left->size());
299
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
58
                              typename PrimitiveTypeTraits<PT>::CppType,
301
58
                              Op<PT>>::vector_constant(col_left->get_data(),
302
58
                                                       col_right->get_element(0), vec_res);
303
304
58
            block.replace_by_position(result, std::move(col_res));
305
58
        } 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
58
        return Status::OK();
318
58
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
12.0k
                            const ColumnPtr& col_right_ptr) const {
275
12.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
12.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
12.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
12.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
12.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
12.0k
        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
12.0k
        } else if (!left_is_const && right_is_const) {
295
12.0k
            auto col_res = ColumnUInt8::create();
296
297
12.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
12.0k
            vec_res.resize(col_left->size());
299
12.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
12.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
12.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
12.0k
                                                       col_right->get_element(0), vec_res);
303
304
12.0k
            block.replace_by_position(result, std::move(col_res));
305
12.0k
        } 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.0k
        return Status::OK();
318
12.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
802
                            const ColumnPtr& col_right_ptr) const {
275
802
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
802
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
802
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
802
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
802
        DCHECK(!(left_is_const && right_is_const));
282
283
802
        if (!left_is_const && !right_is_const) {
284
8
            auto col_res = ColumnUInt8::create();
285
286
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
8
            vec_res.resize(col_left->get_data().size());
288
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
8
                              typename PrimitiveTypeTraits<PT>::CppType,
290
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
8
                                                     vec_res);
292
293
8
            block.replace_by_position(result, std::move(col_res));
294
794
        } else if (!left_is_const && right_is_const) {
295
792
            auto col_res = ColumnUInt8::create();
296
297
792
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
792
            vec_res.resize(col_left->size());
299
792
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
792
                              typename PrimitiveTypeTraits<PT>::CppType,
301
792
                              Op<PT>>::vector_constant(col_left->get_data(),
302
792
                                                       col_right->get_element(0), vec_res);
303
304
792
            block.replace_by_position(result, std::move(col_res));
305
792
        } 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
802
        return Status::OK();
318
802
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
38
                            const ColumnPtr& col_right_ptr) const {
275
38
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
38
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
38
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
38
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
38
        DCHECK(!(left_is_const && right_is_const));
282
283
38
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
38
        } else if (!left_is_const && right_is_const) {
295
38
            auto col_res = ColumnUInt8::create();
296
297
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
38
            vec_res.resize(col_left->size());
299
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
38
                              typename PrimitiveTypeTraits<PT>::CppType,
301
38
                              Op<PT>>::vector_constant(col_left->get_data(),
302
38
                                                       col_right->get_element(0), vec_res);
303
304
38
            block.replace_by_position(result, std::move(col_res));
305
38
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
38
        return Status::OK();
318
38
    }
_ZNK5doris18FunctionComparisonINS_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
128
                            const ColumnPtr& col_right_ptr) const {
275
128
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
128
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
128
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
128
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
128
        DCHECK(!(left_is_const && right_is_const));
282
283
128
        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
108
        } else if (!left_is_const && right_is_const) {
295
108
            auto col_res = ColumnUInt8::create();
296
297
108
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
108
            vec_res.resize(col_left->size());
299
108
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
108
                              typename PrimitiveTypeTraits<PT>::CppType,
301
108
                              Op<PT>>::vector_constant(col_left->get_data(),
302
108
                                                       col_right->get_element(0), vec_res);
303
304
108
            block.replace_by_position(result, std::move(col_res));
305
108
        } 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
128
        return Status::OK();
318
128
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
137
                            const ColumnPtr& col_right_ptr) const {
275
137
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
137
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
137
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
137
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
137
        DCHECK(!(left_is_const && right_is_const));
282
283
137
        if (!left_is_const && !right_is_const) {
284
30
            auto col_res = ColumnUInt8::create();
285
286
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
30
            vec_res.resize(col_left->get_data().size());
288
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
30
                              typename PrimitiveTypeTraits<PT>::CppType,
290
30
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
30
                                                     vec_res);
292
293
30
            block.replace_by_position(result, std::move(col_res));
294
107
        } else if (!left_is_const && right_is_const) {
295
107
            auto col_res = ColumnUInt8::create();
296
297
107
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
107
            vec_res.resize(col_left->size());
299
107
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
107
                              typename PrimitiveTypeTraits<PT>::CppType,
301
107
                              Op<PT>>::vector_constant(col_left->get_data(),
302
107
                                                       col_right->get_element(0), vec_res);
303
304
107
            block.replace_by_position(result, std::move(col_res));
305
107
        } 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
137
        return Status::OK();
318
137
    }
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
75
                            const ColumnPtr& col_right_ptr) const {
275
75
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
75
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
75
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
75
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
75
        DCHECK(!(left_is_const && right_is_const));
282
283
75
        if (!left_is_const && !right_is_const) {
284
75
            auto col_res = ColumnUInt8::create();
285
286
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
75
            vec_res.resize(col_left->get_data().size());
288
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
75
                              typename PrimitiveTypeTraits<PT>::CppType,
290
75
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
75
                                                     vec_res);
292
293
75
            block.replace_by_position(result, std::move(col_res));
294
75
        } 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
75
        return Status::OK();
318
75
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.40k
                            const ColumnPtr& col_right_ptr) const {
275
2.40k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.40k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.40k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.40k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.40k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.40k
        if (!left_is_const && !right_is_const) {
284
1.92k
            auto col_res = ColumnUInt8::create();
285
286
1.92k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.92k
            vec_res.resize(col_left->get_data().size());
288
1.92k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.92k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.92k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.92k
                                                     vec_res);
292
293
1.92k
            block.replace_by_position(result, std::move(col_res));
294
1.92k
        } else if (!left_is_const && right_is_const) {
295
480
            auto col_res = ColumnUInt8::create();
296
297
480
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
480
            vec_res.resize(col_left->size());
299
480
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
480
                              typename PrimitiveTypeTraits<PT>::CppType,
301
480
                              Op<PT>>::vector_constant(col_left->get_data(),
302
480
                                                       col_right->get_element(0), vec_res);
303
304
480
            block.replace_by_position(result, std::move(col_res));
305
480
        } 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.40k
        return Status::OK();
318
2.40k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
555
                            const ColumnPtr& col_right_ptr) const {
275
555
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
555
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
555
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
555
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
555
        DCHECK(!(left_is_const && right_is_const));
282
283
555
        if (!left_is_const && !right_is_const) {
284
218
            auto col_res = ColumnUInt8::create();
285
286
218
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
218
            vec_res.resize(col_left->get_data().size());
288
218
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
218
                              typename PrimitiveTypeTraits<PT>::CppType,
290
218
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
218
                                                     vec_res);
292
293
218
            block.replace_by_position(result, std::move(col_res));
294
337
        } else if (!left_is_const && right_is_const) {
295
337
            auto col_res = ColumnUInt8::create();
296
297
337
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
337
            vec_res.resize(col_left->size());
299
337
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
337
                              typename PrimitiveTypeTraits<PT>::CppType,
301
337
                              Op<PT>>::vector_constant(col_left->get_data(),
302
337
                                                       col_right->get_element(0), vec_res);
303
304
337
            block.replace_by_position(result, std::move(col_res));
305
337
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
555
        return Status::OK();
318
555
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
604
                            const ColumnPtr& col_right_ptr) const {
275
604
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
604
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
604
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
604
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
604
        DCHECK(!(left_is_const && right_is_const));
282
283
604
        if (!left_is_const && !right_is_const) {
284
540
            auto col_res = ColumnUInt8::create();
285
286
540
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
540
            vec_res.resize(col_left->get_data().size());
288
540
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
540
                              typename PrimitiveTypeTraits<PT>::CppType,
290
540
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
540
                                                     vec_res);
292
293
540
            block.replace_by_position(result, std::move(col_res));
294
540
        } 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
604
        return Status::OK();
318
604
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
385
                            const ColumnPtr& col_right_ptr) const {
275
385
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
385
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
385
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
385
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
385
        DCHECK(!(left_is_const && right_is_const));
282
283
385
        if (!left_is_const && !right_is_const) {
284
117
            auto col_res = ColumnUInt8::create();
285
286
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
117
            vec_res.resize(col_left->get_data().size());
288
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
117
                              typename PrimitiveTypeTraits<PT>::CppType,
290
117
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
117
                                                     vec_res);
292
293
117
            block.replace_by_position(result, std::move(col_res));
294
268
        } else if (!left_is_const && right_is_const) {
295
268
            auto col_res = ColumnUInt8::create();
296
297
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
268
            vec_res.resize(col_left->size());
299
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
268
                              typename PrimitiveTypeTraits<PT>::CppType,
301
268
                              Op<PT>>::vector_constant(col_left->get_data(),
302
268
                                                       col_right->get_element(0), vec_res);
303
304
268
            block.replace_by_position(result, std::move(col_res));
305
268
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
385
        return Status::OK();
318
385
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
5.85k
                            const ColumnPtr& col_right_ptr) const {
275
5.85k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
5.85k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
5.85k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
5.85k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
5.85k
        DCHECK(!(left_is_const && right_is_const));
282
283
5.85k
        if (!left_is_const && !right_is_const) {
284
148
            auto col_res = ColumnUInt8::create();
285
286
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
148
            vec_res.resize(col_left->get_data().size());
288
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
148
                              typename PrimitiveTypeTraits<PT>::CppType,
290
148
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
148
                                                     vec_res);
292
293
148
            block.replace_by_position(result, std::move(col_res));
294
5.70k
        } else if (!left_is_const && right_is_const) {
295
5.70k
            auto col_res = ColumnUInt8::create();
296
297
5.70k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.70k
            vec_res.resize(col_left->size());
299
5.70k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.70k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.70k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.70k
                                                       col_right->get_element(0), vec_res);
303
304
5.70k
            block.replace_by_position(result, std::move(col_res));
305
5.70k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
5.85k
        return Status::OK();
318
5.85k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.63k
                            const ColumnPtr& col_right_ptr) const {
275
1.63k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.63k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.63k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.63k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.63k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.63k
        if (!left_is_const && !right_is_const) {
284
228
            auto col_res = ColumnUInt8::create();
285
286
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
228
            vec_res.resize(col_left->get_data().size());
288
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
228
                              typename PrimitiveTypeTraits<PT>::CppType,
290
228
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
228
                                                     vec_res);
292
293
228
            block.replace_by_position(result, std::move(col_res));
294
1.40k
        } else if (!left_is_const && right_is_const) {
295
1.40k
            auto col_res = ColumnUInt8::create();
296
297
1.40k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.40k
            vec_res.resize(col_left->size());
299
1.40k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.40k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.40k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.40k
                                                       col_right->get_element(0), vec_res);
303
304
1.40k
            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.63k
        return Status::OK();
318
1.63k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
177
                            const ColumnPtr& col_right_ptr) const {
275
177
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
177
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
177
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
177
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
177
        DCHECK(!(left_is_const && right_is_const));
282
283
177
        if (!left_is_const && !right_is_const) {
284
141
            auto col_res = ColumnUInt8::create();
285
286
141
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
141
            vec_res.resize(col_left->get_data().size());
288
141
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
141
                              typename PrimitiveTypeTraits<PT>::CppType,
290
141
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
141
                                                     vec_res);
292
293
141
            block.replace_by_position(result, std::move(col_res));
294
141
        } else if (!left_is_const && right_is_const) {
295
36
            auto col_res = ColumnUInt8::create();
296
297
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
36
            vec_res.resize(col_left->size());
299
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
36
                              typename PrimitiveTypeTraits<PT>::CppType,
301
36
                              Op<PT>>::vector_constant(col_left->get_data(),
302
36
                                                       col_right->get_element(0), vec_res);
303
304
36
            block.replace_by_position(result, std::move(col_res));
305
36
        } 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
177
        return Status::OK();
318
177
    }
_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
145
                            const ColumnPtr& col_right_ptr) const {
275
145
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
145
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
145
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
145
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
145
        DCHECK(!(left_is_const && right_is_const));
282
283
145
        if (!left_is_const && !right_is_const) {
284
120
            auto col_res = ColumnUInt8::create();
285
286
120
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
120
            vec_res.resize(col_left->get_data().size());
288
120
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
120
                              typename PrimitiveTypeTraits<PT>::CppType,
290
120
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
120
                                                     vec_res);
292
293
120
            block.replace_by_position(result, std::move(col_res));
294
120
        } else if (!left_is_const && right_is_const) {
295
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
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
145
        return Status::OK();
318
145
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
352
                            const ColumnPtr& col_right_ptr) const {
275
352
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
352
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
352
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
352
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
352
        DCHECK(!(left_is_const && right_is_const));
282
283
352
        if (!left_is_const && !right_is_const) {
284
140
            auto col_res = ColumnUInt8::create();
285
286
140
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
140
            vec_res.resize(col_left->get_data().size());
288
140
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
140
                              typename PrimitiveTypeTraits<PT>::CppType,
290
140
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
140
                                                     vec_res);
292
293
140
            block.replace_by_position(result, std::move(col_res));
294
212
        } else if (!left_is_const && right_is_const) {
295
210
            auto col_res = ColumnUInt8::create();
296
297
210
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
210
            vec_res.resize(col_left->size());
299
210
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
210
                              typename PrimitiveTypeTraits<PT>::CppType,
301
210
                              Op<PT>>::vector_constant(col_left->get_data(),
302
210
                                                       col_right->get_element(0), vec_res);
303
304
210
            block.replace_by_position(result, std::move(col_res));
305
210
        } 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
352
        return Status::OK();
318
352
    }
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
340
                            const ColumnPtr& col_right_ptr) const {
275
340
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
340
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
340
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
340
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
340
        DCHECK(!(left_is_const && right_is_const));
282
283
340
        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
340
        } else if (!left_is_const && right_is_const) {
295
340
            auto col_res = ColumnUInt8::create();
296
297
340
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
340
            vec_res.resize(col_left->size());
299
340
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
340
                              typename PrimitiveTypeTraits<PT>::CppType,
301
340
                              Op<PT>>::vector_constant(col_left->get_data(),
302
340
                                                       col_right->get_element(0), vec_res);
303
304
340
            block.replace_by_position(result, std::move(col_res));
305
340
        } 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
340
        return Status::OK();
318
340
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.7k
                            const ColumnPtr& col_right_ptr) const {
275
10.7k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.7k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.7k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.7k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.7k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.7k
        if (!left_is_const && !right_is_const) {
284
430
            auto col_res = ColumnUInt8::create();
285
286
430
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
430
            vec_res.resize(col_left->get_data().size());
288
430
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
430
                              typename PrimitiveTypeTraits<PT>::CppType,
290
430
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
430
                                                     vec_res);
292
293
430
            block.replace_by_position(result, std::move(col_res));
294
10.3k
        } else if (!left_is_const && right_is_const) {
295
10.3k
            auto col_res = ColumnUInt8::create();
296
297
10.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10.3k
            vec_res.resize(col_left->size());
299
10.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10.3k
                                                       col_right->get_element(0), vec_res);
303
304
10.3k
            block.replace_by_position(result, std::move(col_res));
305
10.3k
        } 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.7k
        return Status::OK();
318
10.7k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
454
                            const ColumnPtr& col_right_ptr) const {
275
454
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
454
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
454
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
454
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
454
        DCHECK(!(left_is_const && right_is_const));
282
283
454
        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
454
        } else if (!left_is_const && right_is_const) {
295
454
            auto col_res = ColumnUInt8::create();
296
297
454
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
454
            vec_res.resize(col_left->size());
299
454
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
454
                              typename PrimitiveTypeTraits<PT>::CppType,
301
454
                              Op<PT>>::vector_constant(col_left->get_data(),
302
454
                                                       col_right->get_element(0), vec_res);
303
304
454
            block.replace_by_position(result, std::move(col_res));
305
454
        } 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
454
        return Status::OK();
318
454
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
280
                            const ColumnPtr& col_right_ptr) const {
275
280
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
280
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
280
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
280
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
280
        DCHECK(!(left_is_const && right_is_const));
282
283
281
        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
280
        } else if (!left_is_const && right_is_const) {
295
280
            auto col_res = ColumnUInt8::create();
296
297
280
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
280
            vec_res.resize(col_left->size());
299
280
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
280
                              typename PrimitiveTypeTraits<PT>::CppType,
301
280
                              Op<PT>>::vector_constant(col_left->get_data(),
302
280
                                                       col_right->get_element(0), vec_res);
303
304
280
            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
280
        return Status::OK();
318
280
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
239
                            const ColumnPtr& col_right_ptr) const {
275
239
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
239
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
239
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
239
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
239
        DCHECK(!(left_is_const && right_is_const));
282
283
239
        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
239
        } else if (!left_is_const && right_is_const) {
295
239
            auto col_res = ColumnUInt8::create();
296
297
239
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
239
            vec_res.resize(col_left->size());
299
239
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
239
                              typename PrimitiveTypeTraits<PT>::CppType,
301
239
                              Op<PT>>::vector_constant(col_left->get_data(),
302
239
                                                       col_right->get_element(0), vec_res);
303
304
239
            block.replace_by_position(result, std::move(col_res));
305
239
        } 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
239
        return Status::OK();
318
239
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
18.0k
                            const ColumnPtr& col_right_ptr) const {
275
18.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
18.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
18.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
18.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
18.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
18.0k
        if (!left_is_const && !right_is_const) {
284
57
            auto col_res = ColumnUInt8::create();
285
286
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
57
            vec_res.resize(col_left->get_data().size());
288
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
57
                              typename PrimitiveTypeTraits<PT>::CppType,
290
57
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
57
                                                     vec_res);
292
293
57
            block.replace_by_position(result, std::move(col_res));
294
17.9k
        } else if (!left_is_const && right_is_const) {
295
17.9k
            auto col_res = ColumnUInt8::create();
296
297
17.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
17.9k
            vec_res.resize(col_left->size());
299
17.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
17.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
17.9k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
17.9k
                                                       col_right->get_element(0), vec_res);
303
304
17.9k
            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
18.0k
        return Status::OK();
318
18.0k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
851
                            const ColumnPtr& col_right_ptr) const {
275
851
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
851
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
851
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
851
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
851
        DCHECK(!(left_is_const && right_is_const));
282
283
851
        if (!left_is_const && !right_is_const) {
284
70
            auto col_res = ColumnUInt8::create();
285
286
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
70
            vec_res.resize(col_left->get_data().size());
288
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
70
                              typename PrimitiveTypeTraits<PT>::CppType,
290
70
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
70
                                                     vec_res);
292
293
70
            block.replace_by_position(result, std::move(col_res));
294
781
        } else if (!left_is_const && right_is_const) {
295
781
            auto col_res = ColumnUInt8::create();
296
297
781
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
781
            vec_res.resize(col_left->size());
299
781
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
781
                              typename PrimitiveTypeTraits<PT>::CppType,
301
781
                              Op<PT>>::vector_constant(col_left->get_data(),
302
781
                                                       col_right->get_element(0), vec_res);
303
304
781
            block.replace_by_position(result, std::move(col_res));
305
781
        } 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
851
        return Status::OK();
318
851
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
34
                            const ColumnPtr& col_right_ptr) const {
275
34
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
34
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
34
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
34
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
34
        DCHECK(!(left_is_const && right_is_const));
282
283
34
        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
34
        } else if (!left_is_const && right_is_const) {
295
34
            auto col_res = ColumnUInt8::create();
296
297
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
34
            vec_res.resize(col_left->size());
299
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
34
                              typename PrimitiveTypeTraits<PT>::CppType,
301
34
                              Op<PT>>::vector_constant(col_left->get_data(),
302
34
                                                       col_right->get_element(0), vec_res);
303
304
34
            block.replace_by_position(result, std::move(col_res));
305
34
        } 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
34
        return Status::OK();
318
34
    }
_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
124
                            const ColumnPtr& col_right_ptr) const {
275
124
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
124
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
124
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
124
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
124
        DCHECK(!(left_is_const && right_is_const));
282
283
124
        if (!left_is_const && !right_is_const) {
284
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
104
        } else if (!left_is_const && right_is_const) {
295
104
            auto col_res = ColumnUInt8::create();
296
297
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
104
            vec_res.resize(col_left->size());
299
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
104
                              typename PrimitiveTypeTraits<PT>::CppType,
301
104
                              Op<PT>>::vector_constant(col_left->get_data(),
302
104
                                                       col_right->get_element(0), vec_res);
303
304
104
            block.replace_by_position(result, std::move(col_res));
305
104
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
124
        return Status::OK();
318
124
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
137
                            const ColumnPtr& col_right_ptr) const {
275
137
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
137
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
137
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
137
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
137
        DCHECK(!(left_is_const && right_is_const));
282
283
137
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
117
        } else if (!left_is_const && right_is_const) {
295
117
            auto col_res = ColumnUInt8::create();
296
297
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
117
            vec_res.resize(col_left->size());
299
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
117
                              typename PrimitiveTypeTraits<PT>::CppType,
301
117
                              Op<PT>>::vector_constant(col_left->get_data(),
302
117
                                                       col_right->get_element(0), vec_res);
303
304
117
            block.replace_by_position(result, std::move(col_res));
305
117
        } 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
137
        return Status::OK();
318
137
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
319
320
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
321
146k
                           const ColumnWithTypeAndName& col_right) const {
322
146k
        auto call = [&](const auto& type) -> bool {
323
146k
            using DispatchType = std::decay_t<decltype(type)>;
324
146k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
146k
                    block, result, col_left, col_right);
326
146k
            return true;
327
146k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
247
        auto call = [&](const auto& type) -> bool {
323
247
            using DispatchType = std::decay_t<decltype(type)>;
324
247
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
247
                    block, result, col_left, col_right);
326
247
            return true;
327
247
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
249
        auto call = [&](const auto& type) -> bool {
323
249
            using DispatchType = std::decay_t<decltype(type)>;
324
249
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
249
                    block, result, col_left, col_right);
326
249
            return true;
327
249
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
1.12k
        auto call = [&](const auto& type) -> bool {
323
1.12k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.12k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.12k
                    block, result, col_left, col_right);
326
1.12k
            return true;
327
1.12k
        };
_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
324
        auto call = [&](const auto& type) -> bool {
323
324
            using DispatchType = std::decay_t<decltype(type)>;
324
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
324
                    block, result, col_left, col_right);
326
324
            return true;
327
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
46
        auto call = [&](const auto& type) -> bool {
323
46
            using DispatchType = std::decay_t<decltype(type)>;
324
46
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
46
                    block, result, col_left, col_right);
326
46
            return true;
327
46
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
1.59k
        auto call = [&](const auto& type) -> bool {
323
1.59k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.59k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.59k
                    block, result, col_left, col_right);
326
1.59k
            return true;
327
1.59k
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
1.55k
        auto call = [&](const auto& type) -> bool {
323
1.55k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.55k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.55k
                    block, result, col_left, col_right);
326
1.55k
            return true;
327
1.55k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
2
        auto call = [&](const auto& type) -> bool {
323
2
            using DispatchType = std::decay_t<decltype(type)>;
324
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2
                    block, result, col_left, col_right);
326
2
            return true;
327
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
9
        auto call = [&](const auto& type) -> bool {
323
9
            using DispatchType = std::decay_t<decltype(type)>;
324
9
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
9
                    block, result, col_left, col_right);
326
9
            return true;
327
9
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
255
        auto call = [&](const auto& type) -> bool {
323
255
            using DispatchType = std::decay_t<decltype(type)>;
324
255
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
255
                    block, result, col_left, col_right);
326
255
            return true;
327
255
        };
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
82
        auto call = [&](const auto& type) -> bool {
323
82
            using DispatchType = std::decay_t<decltype(type)>;
324
82
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
82
                    block, result, col_left, col_right);
326
82
            return true;
327
82
        };
_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
218
        auto call = [&](const auto& type) -> bool {
323
218
            using DispatchType = std::decay_t<decltype(type)>;
324
218
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
218
                    block, result, col_left, col_right);
326
218
            return true;
327
218
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
238
        auto call = [&](const auto& type) -> bool {
323
238
            using DispatchType = std::decay_t<decltype(type)>;
324
238
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
238
                    block, result, col_left, col_right);
326
238
            return true;
327
238
        };
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
444
        auto call = [&](const auto& type) -> bool {
323
444
            using DispatchType = std::decay_t<decltype(type)>;
324
444
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
444
                    block, result, col_left, col_right);
326
444
            return true;
327
444
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
4
        auto call = [&](const auto& type) -> bool {
323
4
            using DispatchType = std::decay_t<decltype(type)>;
324
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
4
                    block, result, col_left, col_right);
326
4
            return true;
327
4
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
139k
        auto call = [&](const auto& type) -> bool {
323
139k
            using DispatchType = std::decay_t<decltype(type)>;
324
139k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
139k
                    block, result, col_left, col_right);
326
139k
            return true;
327
139k
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
766
        auto call = [&](const auto& type) -> bool {
323
766
            using DispatchType = std::decay_t<decltype(type)>;
324
766
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
766
                    block, result, col_left, col_right);
326
766
            return true;
327
766
        };
_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
146k
        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
146k
        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
146k
        return Status::OK();
340
146k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.65k
                           const ColumnWithTypeAndName& col_right) const {
322
1.65k
        auto call = [&](const auto& type) -> bool {
323
1.65k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.65k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.65k
                    block, result, col_left, col_right);
326
1.65k
            return true;
327
1.65k
        };
328
329
1.65k
        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.65k
        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.65k
        return Status::OK();
340
1.65k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
415
                           const ColumnWithTypeAndName& col_right) const {
322
415
        auto call = [&](const auto& type) -> bool {
323
415
            using DispatchType = std::decay_t<decltype(type)>;
324
415
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
415
                    block, result, col_left, col_right);
326
415
            return true;
327
415
        };
328
329
415
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
415
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
415
        return Status::OK();
340
415
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
3.19k
                           const ColumnWithTypeAndName& col_right) const {
322
3.19k
        auto call = [&](const auto& type) -> bool {
323
3.19k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.19k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.19k
                    block, result, col_left, col_right);
326
3.19k
            return true;
327
3.19k
        };
328
329
3.19k
        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.19k
        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.19k
        return Status::OK();
340
3.19k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
367
                           const ColumnWithTypeAndName& col_right) const {
322
367
        auto call = [&](const auto& type) -> bool {
323
367
            using DispatchType = std::decay_t<decltype(type)>;
324
367
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
367
                    block, result, col_left, col_right);
326
367
            return true;
327
367
        };
328
329
367
        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
367
        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
367
        return Status::OK();
340
367
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
901
                           const ColumnWithTypeAndName& col_right) const {
322
901
        auto call = [&](const auto& type) -> bool {
323
901
            using DispatchType = std::decay_t<decltype(type)>;
324
901
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
901
                    block, result, col_left, col_right);
326
901
            return true;
327
901
        };
328
329
901
        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
901
        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
901
        return Status::OK();
340
901
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
140k
                           const ColumnWithTypeAndName& col_right) const {
322
140k
        auto call = [&](const auto& type) -> bool {
323
140k
            using DispatchType = std::decay_t<decltype(type)>;
324
140k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
140k
                    block, result, col_left, col_right);
326
140k
            return true;
327
140k
        };
328
329
140k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
140k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
140k
        return Status::OK();
340
140k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
25.9k
                          const IColumn* c1) const {
344
25.9k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
25.9k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
25.9k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
25.9k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
25.9k
        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
25.9k
        DCHECK(!(c0_const && c1_const));
353
25.9k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
25.9k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
25.9k
        ColumnString::Offset c0_const_size = 0;
356
25.9k
        ColumnString::Offset c1_const_size = 0;
357
358
25.9k
        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
25.9k
        if (c1_const) {
372
25.1k
            const ColumnString* c1_const_string =
373
25.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
25.1k
            if (c1_const_string) {
376
25.1k
                c1_const_chars = &c1_const_string->get_chars();
377
25.1k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
25.1k
        }
383
384
25.9k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
25.9k
        auto c_res = ColumnUInt8::create();
387
25.9k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
25.9k
        vec_res.resize(c0->size());
389
390
25.9k
        if (c0_string && c1_string) {
391
795
            StringImpl::string_vector_string_vector(
392
795
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
795
                    c1_string->get_offsets(), vec_res);
394
25.1k
        } else if (c0_string && c1_const) {
395
25.1k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
25.1k
                                               *c1_const_chars, c1_const_size, vec_res);
397
25.1k
        } 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
25.9k
        block.replace_by_position(result, std::move(c_res));
406
25.9k
        return Status::OK();
407
25.9k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
21.1k
                          const IColumn* c1) const {
344
21.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
21.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
21.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
21.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
21.1k
        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
21.1k
        DCHECK(!(c0_const && c1_const));
353
21.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
21.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
21.1k
        ColumnString::Offset c0_const_size = 0;
356
21.1k
        ColumnString::Offset c1_const_size = 0;
357
358
21.1k
        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
21.1k
        if (c1_const) {
372
20.7k
            const ColumnString* c1_const_string =
373
20.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
20.7k
            if (c1_const_string) {
376
20.7k
                c1_const_chars = &c1_const_string->get_chars();
377
20.7k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
20.7k
        }
383
384
21.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
21.1k
        auto c_res = ColumnUInt8::create();
387
21.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
21.1k
        vec_res.resize(c0->size());
389
390
21.1k
        if (c0_string && c1_string) {
391
391
            StringImpl::string_vector_string_vector(
392
391
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
391
                    c1_string->get_offsets(), vec_res);
394
20.7k
        } else if (c0_string && c1_const) {
395
20.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
20.7k
                                               *c1_const_chars, c1_const_size, vec_res);
397
20.7k
        } 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
21.1k
        block.replace_by_position(result, std::move(c_res));
406
21.1k
        return Status::OK();
407
21.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
1.47k
                          const IColumn* c1) const {
344
1.47k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
1.47k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
1.47k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
1.47k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
1.47k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
1.47k
        DCHECK(!(c0_const && c1_const));
353
1.47k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
1.47k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
1.47k
        ColumnString::Offset c0_const_size = 0;
356
1.47k
        ColumnString::Offset c1_const_size = 0;
357
358
1.47k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
1.47k
        if (c1_const) {
372
1.47k
            const ColumnString* c1_const_string =
373
1.47k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
1.47k
            if (c1_const_string) {
376
1.47k
                c1_const_chars = &c1_const_string->get_chars();
377
1.47k
                c1_const_size = c1_const_string->get_offsets()[0];
378
1.47k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
1.47k
        }
383
384
1.47k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
1.47k
        auto c_res = ColumnUInt8::create();
387
1.47k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
1.47k
        vec_res.resize(c0->size());
389
390
1.47k
        if (c0_string && c1_string) {
391
1
            StringImpl::string_vector_string_vector(
392
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
1
                    c1_string->get_offsets(), vec_res);
394
1.47k
        } else if (c0_string && c1_const) {
395
1.47k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
1.47k
                                               *c1_const_chars, c1_const_size, vec_res);
397
1.47k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
1.47k
        block.replace_by_position(result, std::move(c_res));
406
1.47k
        return Status::OK();
407
1.47k
    }
_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
649
                          const IColumn* c1) const {
344
649
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
649
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
649
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
649
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
649
        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
649
        DCHECK(!(c0_const && c1_const));
353
649
        const ColumnString::Chars* c0_const_chars = nullptr;
354
649
        const ColumnString::Chars* c1_const_chars = nullptr;
355
649
        ColumnString::Offset c0_const_size = 0;
356
649
        ColumnString::Offset c1_const_size = 0;
357
358
649
        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
649
        if (c1_const) {
372
611
            const ColumnString* c1_const_string =
373
611
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
611
            if (c1_const_string) {
376
611
                c1_const_chars = &c1_const_string->get_chars();
377
611
                c1_const_size = c1_const_string->get_offsets()[0];
378
611
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
611
        }
383
384
649
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
649
        auto c_res = ColumnUInt8::create();
387
649
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
649
        vec_res.resize(c0->size());
389
390
649
        if (c0_string && c1_string) {
391
38
            StringImpl::string_vector_string_vector(
392
38
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
38
                    c1_string->get_offsets(), vec_res);
394
611
        } else if (c0_string && c1_const) {
395
611
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
611
                                               *c1_const_chars, c1_const_size, vec_res);
397
611
        } 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
649
        block.replace_by_position(result, std::move(c_res));
406
649
        return Status::OK();
407
649
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
616
                          const IColumn* c1) const {
344
616
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
616
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
616
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
616
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
616
        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
616
        DCHECK(!(c0_const && c1_const));
353
616
        const ColumnString::Chars* c0_const_chars = nullptr;
354
616
        const ColumnString::Chars* c1_const_chars = nullptr;
355
616
        ColumnString::Offset c0_const_size = 0;
356
616
        ColumnString::Offset c1_const_size = 0;
357
358
616
        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
616
        if (c1_const) {
372
253
            const ColumnString* c1_const_string =
373
253
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
253
            if (c1_const_string) {
376
253
                c1_const_chars = &c1_const_string->get_chars();
377
253
                c1_const_size = c1_const_string->get_offsets()[0];
378
253
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
253
        }
383
384
616
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
616
        auto c_res = ColumnUInt8::create();
387
616
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
616
        vec_res.resize(c0->size());
389
390
616
        if (c0_string && c1_string) {
391
363
            StringImpl::string_vector_string_vector(
392
363
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
363
                    c1_string->get_offsets(), vec_res);
394
363
        } else if (c0_string && c1_const) {
395
253
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
253
                                               *c1_const_chars, c1_const_size, vec_res);
397
253
        } else if (c0_const && c1_string) {
398
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
616
        block.replace_by_position(result, std::move(c_res));
406
616
        return Status::OK();
407
616
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
1.87k
                          const IColumn* c1) const {
344
1.87k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
1.87k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
1.87k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
1.87k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
1.87k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
1.87k
        DCHECK(!(c0_const && c1_const));
353
1.87k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
1.87k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
1.87k
        ColumnString::Offset c0_const_size = 0;
356
1.87k
        ColumnString::Offset c1_const_size = 0;
357
358
1.87k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
1.87k
        if (c1_const) {
372
1.87k
            const ColumnString* c1_const_string =
373
1.87k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
1.87k
            if (c1_const_string) {
376
1.87k
                c1_const_chars = &c1_const_string->get_chars();
377
1.87k
                c1_const_size = c1_const_string->get_offsets()[0];
378
1.87k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
1.87k
        }
383
384
1.87k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
1.87k
        auto c_res = ColumnUInt8::create();
387
1.87k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
1.87k
        vec_res.resize(c0->size());
389
390
1.87k
        if (c0_string && c1_string) {
391
0
            StringImpl::string_vector_string_vector(
392
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
0
                    c1_string->get_offsets(), vec_res);
394
1.87k
        } else if (c0_string && c1_const) {
395
1.87k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
1.87k
                                               *c1_const_chars, c1_const_size, vec_res);
397
1.87k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
1.87k
        block.replace_by_position(result, std::move(c_res));
406
1.87k
        return Status::OK();
407
1.87k
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
140
                                         const IColumn* c1) const {
411
140
        bool c0_const = is_column_const(*c0);
412
140
        bool c1_const = is_column_const(*c1);
413
414
140
        DCHECK(!(c0_const && c1_const));
415
416
140
        auto c_res = ColumnUInt8::create();
417
140
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
140
        vec_res.resize(c0->size());
419
420
140
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
140
        } else if (c1_const) {
423
131
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
131
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
140
        block.replace_by_position(result, std::move(c_res));
429
140
    }
_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
53
                                         const IColumn* c1) const {
411
53
        bool c0_const = is_column_const(*c0);
412
53
        bool c1_const = is_column_const(*c1);
413
414
53
        DCHECK(!(c0_const && c1_const));
415
416
53
        auto c_res = ColumnUInt8::create();
417
53
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
53
        vec_res.resize(c0->size());
419
420
53
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
53
        } else if (c1_const) {
423
53
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
53
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
53
        block.replace_by_position(result, std::move(c_res));
429
53
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
140
                           const ColumnWithTypeAndName& c1) const {
433
140
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
140
        return Status::OK();
435
140
    }
_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
53
                           const ColumnWithTypeAndName& c1) const {
433
53
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
53
        return Status::OK();
435
53
    }
436
437
public:
438
221
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
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
473k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
421k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.33k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.27k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
18.7k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.10k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
21.9k
    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
473k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
473k
        return std::make_shared<DataTypeUInt8>();
445
473k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
421k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
421k
        return std::make_shared<DataTypeUInt8>();
445
421k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.33k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.33k
        return std::make_shared<DataTypeUInt8>();
445
1.33k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.27k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.27k
        return std::make_shared<DataTypeUInt8>();
445
6.27k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
18.7k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
18.7k
        return std::make_shared<DataTypeUInt8>();
445
18.7k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.10k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.10k
        return std::make_shared<DataTypeUInt8>();
445
3.10k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
21.9k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
21.9k
        return std::make_shared<DataTypeUInt8>();
445
21.9k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.77k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.77k
        DCHECK(arguments.size() == 1);
454
1.77k
        DCHECK(data_type_with_names.size() == 1);
455
1.77k
        DCHECK(iterators.size() == 1);
456
1.77k
        auto* iter = iterators[0];
457
1.77k
        auto data_type_with_name = data_type_with_names[0];
458
1.77k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.77k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
437
            return Status::OK();
463
437
        }
464
1.33k
        segment_v2::InvertedIndexQueryType query_type;
465
1.33k
        std::string_view name_view(name);
466
1.33k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
873
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
873
        } else if (name_view == NameLess::name) {
469
114
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
348
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
250
        } else if (name_view == NameGreater::name) {
473
114
            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.33k
        if (segment_v2::is_range_query(query_type) &&
481
1.33k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.16k
        Field param_value;
486
1.16k
        arguments[0].column->get(0, param_value);
487
1.16k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.16k
        segment_v2::InvertedIndexParam param;
491
1.16k
        param.column_name = data_type_with_name.first;
492
1.16k
        param.column_type = data_type_with_name.second;
493
1.16k
        param.query_value = param_value;
494
1.16k
        param.query_type = query_type;
495
1.16k
        param.num_rows = num_rows;
496
1.16k
        param.roaring = std::make_shared<roaring::Roaring>();
497
1.16k
        param.analyzer_ctx = analyzer_ctx;
498
1.16k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
1.00k
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
1.00k
        if (iter->has_null()) {
501
1.00k
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
1.00k
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
1.00k
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
1.00k
        }
505
1.00k
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
1.00k
        bitmap_result = result;
507
1.00k
        bitmap_result.mask_out_null();
508
509
1.00k
        if (name_view == NameNotEquals::name) {
510
63
            roaring::Roaring full_result;
511
63
            full_result.addRange(0, num_rows);
512
63
            bitmap_result.op_not(&full_result);
513
63
        }
514
515
1.00k
        return Status::OK();
516
1.00k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
880
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
880
        DCHECK(arguments.size() == 1);
454
880
        DCHECK(data_type_with_names.size() == 1);
455
880
        DCHECK(iterators.size() == 1);
456
880
        auto* iter = iterators[0];
457
880
        auto data_type_with_name = data_type_with_names[0];
458
880
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
880
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
79
            return Status::OK();
463
79
        }
464
801
        segment_v2::InvertedIndexQueryType query_type;
465
801
        std::string_view name_view(name);
466
803
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
803
            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
803
        if (segment_v2::is_range_query(query_type) &&
481
803
            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
803
        Field param_value;
486
803
        arguments[0].column->get(0, param_value);
487
803
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
801
        segment_v2::InvertedIndexParam param;
491
801
        param.column_name = data_type_with_name.first;
492
801
        param.column_type = data_type_with_name.second;
493
801
        param.query_value = param_value;
494
801
        param.query_type = query_type;
495
801
        param.num_rows = num_rows;
496
801
        param.roaring = std::make_shared<roaring::Roaring>();
497
801
        param.analyzer_ctx = analyzer_ctx;
498
801
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
752
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
754
        if (iter->has_null()) {
501
754
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
754
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
754
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
754
        }
505
752
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
752
        bitmap_result = result;
507
752
        bitmap_result.mask_out_null();
508
509
752
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
752
        return Status::OK();
516
752
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
78
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
78
        DCHECK(arguments.size() == 1);
454
78
        DCHECK(data_type_with_names.size() == 1);
455
78
        DCHECK(iterators.size() == 1);
456
78
        auto* iter = iterators[0];
457
78
        auto data_type_with_name = data_type_with_names[0];
458
78
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
78
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
70
        segment_v2::InvertedIndexQueryType query_type;
465
70
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
70
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
0
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        segment_v2::InvertedIndexParam param;
491
70
        param.column_name = data_type_with_name.first;
492
70
        param.column_type = data_type_with_name.second;
493
70
        param.query_value = param_value;
494
70
        param.query_type = query_type;
495
70
        param.num_rows = num_rows;
496
70
        param.roaring = std::make_shared<roaring::Roaring>();
497
70
        param.analyzer_ctx = analyzer_ctx;
498
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
63
        if (iter->has_null()) {
501
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
63
        }
505
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
63
        bitmap_result = result;
507
63
        bitmap_result.mask_out_null();
508
509
63
        if (name_view == NameNotEquals::name) {
510
63
            roaring::Roaring full_result;
511
63
            full_result.addRange(0, num_rows);
512
63
            bitmap_result.op_not(&full_result);
513
63
        }
514
515
63
        return Status::OK();
516
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
176
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
176
        DCHECK(arguments.size() == 1);
454
176
        DCHECK(data_type_with_names.size() == 1);
455
176
        DCHECK(iterators.size() == 1);
456
176
        auto* iter = iterators[0];
457
176
        auto data_type_with_name = data_type_with_names[0];
458
176
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
176
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
114
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
114
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        segment_v2::InvertedIndexParam param;
491
86
        param.column_name = data_type_with_name.first;
492
86
        param.column_type = data_type_with_name.second;
493
86
        param.query_value = param_value;
494
86
        param.query_type = query_type;
495
86
        param.num_rows = num_rows;
496
86
        param.roaring = std::make_shared<roaring::Roaring>();
497
86
        param.analyzer_ctx = analyzer_ctx;
498
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
67
        if (iter->has_null()) {
501
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
67
        }
505
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
67
        bitmap_result = result;
507
67
        bitmap_result.mask_out_null();
508
509
67
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
67
        return Status::OK();
516
67
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
252
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
252
        DCHECK(arguments.size() == 1);
454
252
        DCHECK(data_type_with_names.size() == 1);
455
252
        DCHECK(iterators.size() == 1);
456
252
        auto* iter = iterators[0];
457
252
        auto data_type_with_name = data_type_with_names[0];
458
252
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
252
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
138
        segment_v2::InvertedIndexQueryType query_type;
465
138
        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
138
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
138
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
138
        } 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
138
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
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
        segment_v2::InvertedIndexParam param;
491
79
        param.column_name = data_type_with_name.first;
492
79
        param.column_type = data_type_with_name.second;
493
79
        param.query_value = param_value;
494
79
        param.query_type = query_type;
495
79
        param.num_rows = num_rows;
496
79
        param.roaring = std::make_shared<roaring::Roaring>();
497
79
        param.analyzer_ctx = analyzer_ctx;
498
79
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
37
        if (iter->has_null()) {
501
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
37
        }
505
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
37
        bitmap_result = result;
507
37
        bitmap_result.mask_out_null();
508
509
37
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
37
        return Status::OK();
516
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
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
175
        DCHECK(arguments.size() == 1);
454
175
        DCHECK(data_type_with_names.size() == 1);
455
175
        DCHECK(iterators.size() == 1);
456
175
        auto* iter = iterators[0];
457
175
        auto data_type_with_name = data_type_with_names[0];
458
175
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
114
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
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
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
26
            return Status::OK();
484
26
        }
485
88
        Field param_value;
486
88
        arguments[0].column->get(0, param_value);
487
88
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
88
        segment_v2::InvertedIndexParam param;
491
88
        param.column_name = data_type_with_name.first;
492
88
        param.column_type = data_type_with_name.second;
493
88
        param.query_value = param_value;
494
88
        param.query_type = query_type;
495
88
        param.num_rows = num_rows;
496
88
        param.roaring = std::make_shared<roaring::Roaring>();
497
88
        param.analyzer_ctx = analyzer_ctx;
498
88
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
68
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
68
        if (iter->has_null()) {
501
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
67
        }
505
68
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
68
        bitmap_result = result;
507
68
        bitmap_result.mask_out_null();
508
509
68
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
68
        return Status::OK();
516
68
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
211
        DCHECK(arguments.size() == 1);
454
211
        DCHECK(data_type_with_names.size() == 1);
455
211
        DCHECK(iterators.size() == 1);
456
211
        auto* iter = iterators[0];
457
211
        auto data_type_with_name = data_type_with_names[0];
458
211
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
98
        segment_v2::InvertedIndexQueryType query_type;
465
98
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
98
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
98
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        segment_v2::InvertedIndexParam param;
491
40
        param.column_name = data_type_with_name.first;
492
40
        param.column_type = data_type_with_name.second;
493
40
        param.query_value = param_value;
494
40
        param.query_type = query_type;
495
40
        param.num_rows = num_rows;
496
40
        param.roaring = std::make_shared<roaring::Roaring>();
497
40
        param.analyzer_ctx = analyzer_ctx;
498
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
19
        if (iter->has_null()) {
501
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
19
        }
505
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
19
        bitmap_result = result;
507
19
        bitmap_result.mask_out_null();
508
509
19
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
19
        return Status::OK();
516
19
    }
517
518
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
519
342k
                        uint32_t result, size_t input_rows_count) const override {
520
342k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
342k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
342k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
342k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
342k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
342k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
342k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
342k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
342k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
342k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
512k
        auto can_compare = [](PrimitiveType t) -> bool {
558
512k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
512k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
152k
        auto can_compare = [](PrimitiveType t) -> bool {
558
152k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
152k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
14.8k
        auto can_compare = [](PrimitiveType t) -> bool {
558
14.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
14.8k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
82.7k
        auto can_compare = [](PrimitiveType t) -> bool {
558
82.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
82.7k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
32.2k
        auto can_compare = [](PrimitiveType t) -> bool {
558
32.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
32.2k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
25.9k
        auto can_compare = [](PrimitiveType t) -> bool {
558
25.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
25.9k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
204k
        auto can_compare = [](PrimitiveType t) -> bool {
558
204k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
204k
        };
560
561
342k
        if (can_compare(left_type->get_primitive_type()) &&
562
342k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
170k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
170k
        }
570
571
342k
        auto compare_type = left_type->get_primitive_type();
572
342k
        switch (compare_type) {
573
2.16k
        case TYPE_BOOLEAN:
574
2.16k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
17.7k
        case TYPE_DATEV2:
576
17.7k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
2.36k
        case TYPE_DATETIMEV2:
578
2.36k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
7
        case TYPE_TIMESTAMPTZ:
580
7
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
7.03k
        case TYPE_TINYINT:
582
7.03k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
3.04k
        case TYPE_SMALLINT:
584
3.04k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
90.5k
        case TYPE_INT:
586
90.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
42.0k
        case TYPE_BIGINT:
588
42.0k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
596
        case TYPE_LARGEINT:
590
596
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
59
        case TYPE_IPV4:
592
59
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
37
        case TYPE_IPV6:
594
37
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
773
        case TYPE_FLOAT:
596
773
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
3.56k
        case TYPE_DOUBLE:
598
3.56k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
4
        case TYPE_TIMEV2:
600
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
522
        case TYPE_DECIMAL32:
603
142k
        case TYPE_DECIMAL64:
604
146k
        case TYPE_DECIMAL128I:
605
146k
        case TYPE_DECIMAL256:
606
146k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
146k
                                   col_with_type_and_name_right);
608
1.07k
        case TYPE_CHAR:
609
9.97k
        case TYPE_VARCHAR:
610
25.9k
        case TYPE_STRING:
611
25.9k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
140
        default:
613
140
            return execute_generic(block, result, col_with_type_and_name_left,
614
140
                                   col_with_type_and_name_right);
615
342k
        }
616
0
        return Status::OK();
617
342k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
87.4k
                        uint32_t result, size_t input_rows_count) const override {
520
87.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
87.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
87.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
87.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
87.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
87.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
87.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
87.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
87.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
87.4k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
87.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
87.4k
        };
560
561
87.4k
        if (can_compare(left_type->get_primitive_type()) &&
562
87.4k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
64.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
64.6k
        }
570
571
87.4k
        auto compare_type = left_type->get_primitive_type();
572
87.4k
        switch (compare_type) {
573
1.60k
        case TYPE_BOOLEAN:
574
1.60k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.50k
        case TYPE_DATEV2:
576
1.50k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
643
        case TYPE_DATETIMEV2:
578
643
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
2
        case TYPE_TIMESTAMPTZ:
580
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
5.35k
        case TYPE_TINYINT:
582
5.35k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
1.32k
        case TYPE_SMALLINT:
584
1.32k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
30.5k
        case TYPE_INT:
586
30.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
23.0k
        case TYPE_BIGINT:
588
23.0k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
128
        case TYPE_LARGEINT:
590
128
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
20
        case TYPE_IPV4:
592
20
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
19
        case TYPE_IPV6:
594
19
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
92
        case TYPE_FLOAT:
596
92
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
398
        case TYPE_DOUBLE:
598
398
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
4
        case TYPE_TIMEV2:
600
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
245
        case TYPE_DECIMAL32:
603
494
        case TYPE_DECIMAL64:
604
1.62k
        case TYPE_DECIMAL128I:
605
1.65k
        case TYPE_DECIMAL256:
606
1.65k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
1.65k
                                   col_with_type_and_name_right);
608
566
        case TYPE_CHAR:
609
7.75k
        case TYPE_VARCHAR:
610
21.1k
        case TYPE_STRING:
611
21.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
17
        default:
613
17
            return execute_generic(block, result, col_with_type_and_name_left,
614
17
                                   col_with_type_and_name_right);
615
87.4k
        }
616
0
        return Status::OK();
617
87.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
8.36k
                        uint32_t result, size_t input_rows_count) const override {
520
8.36k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
8.36k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
8.36k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
8.36k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
8.36k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
8.36k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
8.36k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
8.36k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
8.36k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
8.36k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
8.36k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
8.36k
        };
560
561
8.36k
        if (can_compare(left_type->get_primitive_type()) &&
562
8.36k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
6.47k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
6.47k
        }
570
571
8.36k
        auto compare_type = left_type->get_primitive_type();
572
8.36k
        switch (compare_type) {
573
0
        case TYPE_BOOLEAN:
574
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
78
        case TYPE_DATEV2:
576
78
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
2
        case TYPE_DATETIMEV2:
578
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
0
        case TYPE_TIMESTAMPTZ:
580
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
98
        case TYPE_TINYINT:
582
98
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
26
        case TYPE_SMALLINT:
584
26
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
3.82k
        case TYPE_INT:
586
3.82k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
2.33k
        case TYPE_BIGINT:
588
2.33k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
0
        case TYPE_LARGEINT:
590
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
0
        case TYPE_IPV4:
592
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_IPV6:
594
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
48
        case TYPE_FLOAT:
596
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
60
        case TYPE_DOUBLE:
598
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
0
        case TYPE_DECIMAL32:
603
61
        case TYPE_DECIMAL64:
604
385
        case TYPE_DECIMAL128I:
605
415
        case TYPE_DECIMAL256:
606
415
            return execute_decimal(block, result, col_with_type_and_name_left,
607
415
                                   col_with_type_and_name_right);
608
17
        case TYPE_CHAR:
609
317
        case TYPE_VARCHAR:
610
1.47k
        case TYPE_STRING:
611
1.47k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
8
        default:
613
8
            return execute_generic(block, result, col_with_type_and_name_left,
614
8
                                   col_with_type_and_name_right);
615
8.36k
        }
616
0
        return Status::OK();
617
8.36k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
43.0k
                        uint32_t result, size_t input_rows_count) const override {
520
43.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
43.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
43.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
43.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
43.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
43.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
43.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
43.0k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
43.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
43.0k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
43.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
43.0k
        };
560
561
43.0k
        if (can_compare(left_type->get_primitive_type()) &&
562
43.0k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
39.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
39.6k
        }
570
571
43.0k
        auto compare_type = left_type->get_primitive_type();
572
43.0k
        switch (compare_type) {
573
0
        case TYPE_BOOLEAN:
574
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.40k
        case TYPE_DATEV2:
576
1.40k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
94
        case TYPE_DATETIMEV2:
578
94
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
1
        case TYPE_TIMESTAMPTZ:
580
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
639
        case TYPE_TINYINT:
582
639
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
1.01k
        case TYPE_SMALLINT:
584
1.01k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
20.2k
        case TYPE_INT:
586
20.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
13.3k
        case TYPE_BIGINT:
588
13.3k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
219
        case TYPE_LARGEINT:
590
219
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
2
        case TYPE_IPV4:
592
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
1
        case TYPE_IPV6:
594
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
236
        case TYPE_FLOAT:
596
236
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
2.47k
        case TYPE_DOUBLE:
598
2.47k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
46
        case TYPE_DECIMAL32:
603
1.64k
        case TYPE_DECIMAL64:
604
3.19k
        case TYPE_DECIMAL128I:
605
3.19k
        case TYPE_DECIMAL256:
606
3.19k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
3.19k
                                   col_with_type_and_name_right);
608
21
        case TYPE_CHAR:
609
83
        case TYPE_VARCHAR:
610
193
        case TYPE_STRING:
611
193
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
9
        default:
613
9
            return execute_generic(block, result, col_with_type_and_name_left,
614
9
                                   col_with_type_and_name_right);
615
43.0k
        }
616
0
        return Status::OK();
617
43.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
16.6k
                        uint32_t result, size_t input_rows_count) const override {
520
16.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
16.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
16.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
16.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
16.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
16.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
16.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
16.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
16.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
16.6k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
16.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
16.6k
        };
560
561
16.6k
        if (can_compare(left_type->get_primitive_type()) &&
562
16.6k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
15.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
15.6k
        }
570
571
16.6k
        auto compare_type = left_type->get_primitive_type();
572
16.6k
        switch (compare_type) {
573
144
        case TYPE_BOOLEAN:
574
144
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.55k
        case TYPE_DATEV2:
576
1.55k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
616
        case TYPE_DATETIMEV2:
578
616
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
1
        case TYPE_TIMESTAMPTZ:
580
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
58
        case TYPE_TINYINT:
582
58
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
58
        case TYPE_SMALLINT:
584
58
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
12.0k
        case TYPE_INT:
586
12.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
800
        case TYPE_BIGINT:
588
800
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
38
        case TYPE_LARGEINT:
590
38
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
11
        case TYPE_IPV4:
592
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
1
        case TYPE_IPV6:
594
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
128
        case TYPE_FLOAT:
596
128
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
137
        case TYPE_DOUBLE:
598
137
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
9
        case TYPE_DECIMAL32:
603
264
        case TYPE_DECIMAL64:
604
346
        case TYPE_DECIMAL128I:
605
367
        case TYPE_DECIMAL256:
606
367
            return execute_decimal(block, result, col_with_type_and_name_left,
607
367
                                   col_with_type_and_name_right);
608
35
        case TYPE_CHAR:
609
271
        case TYPE_VARCHAR:
610
649
        case TYPE_STRING:
611
649
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
42
        default:
613
42
            return execute_generic(block, result, col_with_type_and_name_left,
614
42
                                   col_with_type_and_name_right);
615
16.6k
        }
616
0
        return Status::OK();
617
16.6k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
13.7k
                        uint32_t result, size_t input_rows_count) const override {
520
13.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
13.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
13.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
13.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
13.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
13.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
13.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
13.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
13.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
13.7k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
13.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
13.7k
        };
560
561
13.7k
        if (can_compare(left_type->get_primitive_type()) &&
562
13.7k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
12.2k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
12.2k
        }
570
571
13.7k
        auto compare_type = left_type->get_primitive_type();
572
13.7k
        switch (compare_type) {
573
75
        case TYPE_BOOLEAN:
574
75
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
2.40k
        case TYPE_DATEV2:
576
2.40k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
555
        case TYPE_DATETIMEV2:
578
555
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
2
        case TYPE_TIMESTAMPTZ:
580
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
604
        case TYPE_TINYINT:
582
604
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
385
        case TYPE_SMALLINT:
584
385
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
5.85k
        case TYPE_INT:
586
5.85k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
1.63k
        case TYPE_BIGINT:
588
1.63k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
177
        case TYPE_LARGEINT:
590
177
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
16
        case TYPE_IPV4:
592
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
16
        case TYPE_IPV6:
594
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
145
        case TYPE_FLOAT:
596
145
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
351
        case TYPE_DOUBLE:
598
351
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
218
        case TYPE_DECIMAL32:
603
456
        case TYPE_DECIMAL64:
604
900
        case TYPE_DECIMAL128I:
605
901
        case TYPE_DECIMAL256:
606
901
            return execute_decimal(block, result, col_with_type_and_name_left,
607
901
                                   col_with_type_and_name_right);
608
170
        case TYPE_CHAR:
609
339
        case TYPE_VARCHAR:
610
616
        case TYPE_STRING:
611
616
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
11
        default:
613
11
            return execute_generic(block, result, col_with_type_and_name_left,
614
11
                                   col_with_type_and_name_right);
615
13.7k
        }
616
0
        return Status::OK();
617
13.7k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
173k
                        uint32_t result, size_t input_rows_count) const override {
520
173k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
173k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
173k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
173k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
173k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
173k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
173k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
173k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
173k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
173k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
173k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
173k
        };
560
561
173k
        if (can_compare(left_type->get_primitive_type()) &&
562
173k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
31.3k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
31.3k
        }
570
571
173k
        auto compare_type = left_type->get_primitive_type();
572
173k
        switch (compare_type) {
573
340
        case TYPE_BOOLEAN:
574
340
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
10.7k
        case TYPE_DATEV2:
576
10.7k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
454
        case TYPE_DATETIMEV2:
578
454
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
1
        case TYPE_TIMESTAMPTZ:
580
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
280
        case TYPE_TINYINT:
582
280
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
239
        case TYPE_SMALLINT:
584
239
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
18.0k
        case TYPE_INT:
586
18.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
851
        case TYPE_BIGINT:
588
851
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
34
        case TYPE_LARGEINT:
590
34
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
10
        case TYPE_IPV4:
592
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_IPV6:
594
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
124
        case TYPE_FLOAT:
596
124
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
137
        case TYPE_DOUBLE:
598
137
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
4
        case TYPE_DECIMAL32:
603
139k
        case TYPE_DECIMAL64:
604
139k
        case TYPE_DECIMAL128I:
605
140k
        case TYPE_DECIMAL256:
606
140k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
140k
                                   col_with_type_and_name_right);
608
265
        case TYPE_CHAR:
609
1.21k
        case TYPE_VARCHAR:
610
1.87k
        case TYPE_STRING:
611
1.87k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
53
        default:
613
53
            return execute_generic(block, result, col_with_type_and_name_left,
614
53
                                   col_with_type_and_name_right);
615
173k
        }
616
0
        return Status::OK();
617
173k
    }
618
};
619
620
} // namespace doris