Coverage Report

Created: 2026-06-05 05:47

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/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
7.55k
                                        PaddedPODArray<UInt8>& c) {
66
7.55k
        size_t size = a.size();
67
7.55k
        const A* __restrict a_pos = a.data();
68
7.55k
        const B* __restrict b_pos = b.data();
69
7.55k
        UInt8* __restrict c_pos = c.data();
70
7.55k
        const A* __restrict a_end = a_pos + size;
71
72
6.04M
        while (a_pos < a_end) {
73
6.03M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.03M
            ++a_pos;
75
6.03M
            ++b_pos;
76
6.03M
            ++c_pos;
77
6.03M
        }
78
7.55k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
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
140
        while (a_pos < a_end) {
73
70
            *c_pos = Op::apply(*a_pos, *b_pos);
74
70
            ++a_pos;
75
70
            ++b_pos;
76
70
            ++c_pos;
77
70
        }
78
70
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
213
                                        PaddedPODArray<UInt8>& c) {
66
213
        size_t size = a.size();
67
213
        const A* __restrict a_pos = a.data();
68
213
        const B* __restrict b_pos = b.data();
69
213
        UInt8* __restrict c_pos = c.data();
70
213
        const A* __restrict a_end = a_pos + size;
71
72
432
        while (a_pos < a_end) {
73
219
            *c_pos = Op::apply(*a_pos, *b_pos);
74
219
            ++a_pos;
75
219
            ++b_pos;
76
219
            ++c_pos;
77
219
        }
78
213
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
237
                                        PaddedPODArray<UInt8>& c) {
66
237
        size_t size = a.size();
67
237
        const A* __restrict a_pos = a.data();
68
237
        const B* __restrict b_pos = b.data();
69
237
        UInt8* __restrict c_pos = c.data();
70
237
        const A* __restrict a_end = a_pos + size;
71
72
492
        while (a_pos < a_end) {
73
255
            *c_pos = Op::apply(*a_pos, *b_pos);
74
255
            ++a_pos;
75
255
            ++b_pos;
76
255
            ++c_pos;
77
255
        }
78
237
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
13
        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
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
127
                                        PaddedPODArray<UInt8>& c) {
66
127
        size_t size = a.size();
67
127
        const A* __restrict a_pos = a.data();
68
127
        const B* __restrict b_pos = b.data();
69
127
        UInt8* __restrict c_pos = c.data();
70
127
        const A* __restrict a_end = a_pos + size;
71
72
396
        while (a_pos < a_end) {
73
269
            *c_pos = Op::apply(*a_pos, *b_pos);
74
269
            ++a_pos;
75
269
            ++b_pos;
76
269
            ++c_pos;
77
269
        }
78
127
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
62
                                        PaddedPODArray<UInt8>& c) {
66
62
        size_t size = a.size();
67
62
        const A* __restrict a_pos = a.data();
68
62
        const B* __restrict b_pos = b.data();
69
62
        UInt8* __restrict c_pos = c.data();
70
62
        const A* __restrict a_end = a_pos + size;
71
72
124
        while (a_pos < a_end) {
73
62
            *c_pos = Op::apply(*a_pos, *b_pos);
74
62
            ++a_pos;
75
62
            ++b_pos;
76
62
            ++c_pos;
77
62
        }
78
62
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
272
                                        PaddedPODArray<UInt8>& c) {
66
272
        size_t size = a.size();
67
272
        const A* __restrict a_pos = a.data();
68
272
        const B* __restrict b_pos = b.data();
69
272
        UInt8* __restrict c_pos = c.data();
70
272
        const A* __restrict a_end = a_pos + size;
71
72
1.69k
        while (a_pos < a_end) {
73
1.41k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.41k
            ++a_pos;
75
1.41k
            ++b_pos;
76
1.41k
            ++c_pos;
77
1.41k
        }
78
272
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
124
                                        PaddedPODArray<UInt8>& c) {
66
124
        size_t size = a.size();
67
124
        const A* __restrict a_pos = a.data();
68
124
        const B* __restrict b_pos = b.data();
69
124
        UInt8* __restrict c_pos = c.data();
70
124
        const A* __restrict a_end = a_pos + size;
71
72
1.31k
        while (a_pos < a_end) {
73
1.18k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.18k
            ++a_pos;
75
1.18k
            ++b_pos;
76
1.18k
            ++c_pos;
77
1.18k
        }
78
124
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
72
                                        PaddedPODArray<UInt8>& c) {
66
72
        size_t size = a.size();
67
72
        const A* __restrict a_pos = a.data();
68
72
        const B* __restrict b_pos = b.data();
69
72
        UInt8* __restrict c_pos = c.data();
70
72
        const A* __restrict a_end = a_pos + size;
71
72
144
        while (a_pos < a_end) {
73
72
            *c_pos = Op::apply(*a_pos, *b_pos);
74
72
            ++a_pos;
75
72
            ++b_pos;
76
72
            ++c_pos;
77
72
        }
78
72
    }
_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
84
                                        PaddedPODArray<UInt8>& c) {
66
84
        size_t size = a.size();
67
84
        const A* __restrict a_pos = a.data();
68
84
        const B* __restrict b_pos = b.data();
69
84
        UInt8* __restrict c_pos = c.data();
70
84
        const A* __restrict a_end = a_pos + size;
71
72
187
        while (a_pos < a_end) {
73
103
            *c_pos = Op::apply(*a_pos, *b_pos);
74
103
            ++a_pos;
75
103
            ++b_pos;
76
103
            ++c_pos;
77
103
        }
78
84
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
97
                                        PaddedPODArray<UInt8>& c) {
66
97
        size_t size = a.size();
67
97
        const A* __restrict a_pos = a.data();
68
97
        const B* __restrict b_pos = b.data();
69
97
        UInt8* __restrict c_pos = c.data();
70
97
        const A* __restrict a_end = a_pos + size;
71
72
215
        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
97
    }
_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
56
                                        PaddedPODArray<UInt8>& c) {
66
56
        size_t size = a.size();
67
56
        const A* __restrict a_pos = a.data();
68
56
        const B* __restrict b_pos = b.data();
69
56
        UInt8* __restrict c_pos = c.data();
70
56
        const A* __restrict a_end = a_pos + size;
71
72
252
        while (a_pos < a_end) {
73
196
            *c_pos = Op::apply(*a_pos, *b_pos);
74
196
            ++a_pos;
75
196
            ++b_pos;
76
196
            ++c_pos;
77
196
        }
78
56
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
604
                                        PaddedPODArray<UInt8>& c) {
66
604
        size_t size = a.size();
67
604
        const A* __restrict a_pos = a.data();
68
604
        const B* __restrict b_pos = b.data();
69
604
        UInt8* __restrict c_pos = c.data();
70
604
        const A* __restrict a_end = a_pos + size;
71
72
360k
        while (a_pos < a_end) {
73
360k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
360k
            ++a_pos;
75
360k
            ++b_pos;
76
360k
            ++c_pos;
77
360k
        }
78
604
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
374
                                        PaddedPODArray<UInt8>& c) {
66
374
        size_t size = a.size();
67
374
        const A* __restrict a_pos = a.data();
68
374
        const B* __restrict b_pos = b.data();
69
374
        UInt8* __restrict c_pos = c.data();
70
374
        const A* __restrict a_end = a_pos + size;
71
72
7.50k
        while (a_pos < a_end) {
73
7.13k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
7.13k
            ++a_pos;
75
7.13k
            ++b_pos;
76
7.13k
            ++c_pos;
77
7.13k
        }
78
374
    }
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.10k
                                        PaddedPODArray<UInt8>& c) {
66
1.10k
        size_t size = a.size();
67
1.10k
        const A* __restrict a_pos = a.data();
68
1.10k
        const B* __restrict b_pos = b.data();
69
1.10k
        UInt8* __restrict c_pos = c.data();
70
1.10k
        const A* __restrict a_end = a_pos + size;
71
72
3.84M
        while (a_pos < a_end) {
73
3.84M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.84M
            ++a_pos;
75
3.84M
            ++b_pos;
76
3.84M
            ++c_pos;
77
3.84M
        }
78
1.10k
    }
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
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
11
        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
2
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
38
                                        PaddedPODArray<UInt8>& c) {
66
38
        size_t size = a.size();
67
38
        const A* __restrict a_pos = a.data();
68
38
        const B* __restrict b_pos = b.data();
69
38
        UInt8* __restrict c_pos = c.data();
70
38
        const A* __restrict a_end = a_pos + size;
71
72
322
        while (a_pos < a_end) {
73
284
            *c_pos = Op::apply(*a_pos, *b_pos);
74
284
            ++a_pos;
75
284
            ++b_pos;
76
284
            ++c_pos;
77
284
        }
78
38
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
112
                                        PaddedPODArray<UInt8>& c) {
66
112
        size_t size = a.size();
67
112
        const A* __restrict a_pos = a.data();
68
112
        const B* __restrict b_pos = b.data();
69
112
        UInt8* __restrict c_pos = c.data();
70
112
        const A* __restrict a_end = a_pos + size;
71
72
376
        while (a_pos < a_end) {
73
264
            *c_pos = Op::apply(*a_pos, *b_pos);
74
264
            ++a_pos;
75
264
            ++b_pos;
76
264
            ++c_pos;
77
264
        }
78
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
44
                                        PaddedPODArray<UInt8>& c) {
66
44
        size_t size = a.size();
67
44
        const A* __restrict a_pos = a.data();
68
44
        const B* __restrict b_pos = b.data();
69
44
        UInt8* __restrict c_pos = c.data();
70
44
        const A* __restrict a_end = a_pos + size;
71
72
251
        while (a_pos < a_end) {
73
207
            *c_pos = Op::apply(*a_pos, *b_pos);
74
207
            ++a_pos;
75
207
            ++b_pos;
76
207
            ++c_pos;
77
207
        }
78
44
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
65
                                        PaddedPODArray<UInt8>& c) {
66
65
        size_t size = a.size();
67
65
        const A* __restrict a_pos = a.data();
68
65
        const B* __restrict b_pos = b.data();
69
65
        UInt8* __restrict c_pos = c.data();
70
65
        const A* __restrict a_end = a_pos + size;
71
72
572
        while (a_pos < a_end) {
73
507
            *c_pos = Op::apply(*a_pos, *b_pos);
74
507
            ++a_pos;
75
507
            ++b_pos;
76
507
            ++c_pos;
77
507
        }
78
65
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_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
9
        while (a_pos < a_end) {
73
6
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6
            ++a_pos;
75
6
            ++b_pos;
76
6
            ++c_pos;
77
6
        }
78
3
    }
_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
31
                                        PaddedPODArray<UInt8>& c) {
66
31
        size_t size = a.size();
67
31
        const A* __restrict a_pos = a.data();
68
31
        const B* __restrict b_pos = b.data();
69
31
        UInt8* __restrict c_pos = c.data();
70
31
        const A* __restrict a_end = a_pos + size;
71
72
104
        while (a_pos < a_end) {
73
73
            *c_pos = Op::apply(*a_pos, *b_pos);
74
73
            ++a_pos;
75
73
            ++b_pos;
76
73
            ++c_pos;
77
73
        }
78
31
    }
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
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
    }
_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
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
11
        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
2
    }
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
9
                                        PaddedPODArray<UInt8>& c) {
66
9
        size_t size = a.size();
67
9
        const A* __restrict a_pos = a.data();
68
9
        const B* __restrict b_pos = b.data();
69
9
        UInt8* __restrict c_pos = c.data();
70
9
        const A* __restrict a_end = a_pos + size;
71
72
65
        while (a_pos < a_end) {
73
56
            *c_pos = Op::apply(*a_pos, *b_pos);
74
56
            ++a_pos;
75
56
            ++b_pos;
76
56
            ++c_pos;
77
56
        }
78
9
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
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
23
                                        PaddedPODArray<UInt8>& c) {
66
23
        size_t size = a.size();
67
23
        const A* __restrict a_pos = a.data();
68
23
        const B* __restrict b_pos = b.data();
69
23
        UInt8* __restrict c_pos = c.data();
70
23
        const A* __restrict a_end = a_pos + size;
71
72
67
        while (a_pos < a_end) {
73
44
            *c_pos = Op::apply(*a_pos, *b_pos);
74
44
            ++a_pos;
75
44
            ++b_pos;
76
44
            ++c_pos;
77
44
        }
78
23
    }
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.78k
                                        PaddedPODArray<UInt8>& c) {
66
1.78k
        size_t size = a.size();
67
1.78k
        const A* __restrict a_pos = a.data();
68
1.78k
        const B* __restrict b_pos = b.data();
69
1.78k
        UInt8* __restrict c_pos = c.data();
70
1.78k
        const A* __restrict a_end = a_pos + size;
71
72
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.78k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
234
                                        PaddedPODArray<UInt8>& c) {
66
234
        size_t size = a.size();
67
234
        const A* __restrict a_pos = a.data();
68
234
        const B* __restrict b_pos = b.data();
69
234
        UInt8* __restrict c_pos = c.data();
70
234
        const A* __restrict a_end = a_pos + size;
71
72
468
        while (a_pos < a_end) {
73
234
            *c_pos = Op::apply(*a_pos, *b_pos);
74
234
            ++a_pos;
75
234
            ++b_pos;
76
234
            ++c_pos;
77
234
        }
78
234
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_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
11
        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
2
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
116
                                        PaddedPODArray<UInt8>& c) {
66
116
        size_t size = a.size();
67
116
        const A* __restrict a_pos = a.data();
68
116
        const B* __restrict b_pos = b.data();
69
116
        UInt8* __restrict c_pos = c.data();
70
116
        const A* __restrict a_end = a_pos + size;
71
72
232
        while (a_pos < a_end) {
73
116
            *c_pos = Op::apply(*a_pos, *b_pos);
74
116
            ++a_pos;
75
116
            ++b_pos;
76
116
            ++c_pos;
77
116
        }
78
116
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
106
                                        PaddedPODArray<UInt8>& c) {
66
106
        size_t size = a.size();
67
106
        const A* __restrict a_pos = a.data();
68
106
        const B* __restrict b_pos = b.data();
69
106
        UInt8* __restrict c_pos = c.data();
70
106
        const A* __restrict a_end = a_pos + size;
71
72
214
        while (a_pos < a_end) {
73
108
            *c_pos = Op::apply(*a_pos, *b_pos);
74
108
            ++a_pos;
75
108
            ++b_pos;
76
108
            ++c_pos;
77
108
        }
78
106
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
151
                                        PaddedPODArray<UInt8>& c) {
66
151
        size_t size = a.size();
67
151
        const A* __restrict a_pos = a.data();
68
151
        const B* __restrict b_pos = b.data();
69
151
        UInt8* __restrict c_pos = c.data();
70
151
        const A* __restrict a_end = a_pos + size;
71
72
809
        while (a_pos < a_end) {
73
658
            *c_pos = Op::apply(*a_pos, *b_pos);
74
658
            ++a_pos;
75
658
            ++b_pos;
76
658
            ++c_pos;
77
658
        }
78
151
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
199
                                        PaddedPODArray<UInt8>& c) {
66
199
        size_t size = a.size();
67
199
        const A* __restrict a_pos = a.data();
68
199
        const B* __restrict b_pos = b.data();
69
199
        UInt8* __restrict c_pos = c.data();
70
199
        const A* __restrict a_end = a_pos + size;
71
72
5.21k
        while (a_pos < a_end) {
73
5.01k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.01k
            ++a_pos;
75
5.01k
            ++b_pos;
76
5.01k
            ++c_pos;
77
5.01k
        }
78
199
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
131
                                        PaddedPODArray<UInt8>& c) {
66
131
        size_t size = a.size();
67
131
        const A* __restrict a_pos = a.data();
68
131
        const B* __restrict b_pos = b.data();
69
131
        UInt8* __restrict c_pos = c.data();
70
131
        const A* __restrict a_end = a_pos + size;
71
72
262
        while (a_pos < a_end) {
73
131
            *c_pos = Op::apply(*a_pos, *b_pos);
74
131
            ++a_pos;
75
131
            ++b_pos;
76
131
            ++c_pos;
77
131
        }
78
131
    }
_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
119
                                        PaddedPODArray<UInt8>& c) {
66
119
        size_t size = a.size();
67
119
        const A* __restrict a_pos = a.data();
68
119
        const B* __restrict b_pos = b.data();
69
119
        UInt8* __restrict c_pos = c.data();
70
119
        const A* __restrict a_end = a_pos + size;
71
72
257
        while (a_pos < a_end) {
73
138
            *c_pos = Op::apply(*a_pos, *b_pos);
74
138
            ++a_pos;
75
138
            ++b_pos;
76
138
            ++c_pos;
77
138
        }
78
119
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
131
                                        PaddedPODArray<UInt8>& c) {
66
131
        size_t size = a.size();
67
131
        const A* __restrict a_pos = a.data();
68
131
        const B* __restrict b_pos = b.data();
69
131
        UInt8* __restrict c_pos = c.data();
70
131
        const A* __restrict a_end = a_pos + size;
71
72
290
        while (a_pos < a_end) {
73
159
            *c_pos = Op::apply(*a_pos, *b_pos);
74
159
            ++a_pos;
75
159
            ++b_pos;
76
159
            ++c_pos;
77
159
        }
78
131
    }
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
413
                                        PaddedPODArray<UInt8>& c) {
66
413
        size_t size = a.size();
67
413
        const A* __restrict a_pos = a.data();
68
413
        const B* __restrict b_pos = b.data();
69
413
        UInt8* __restrict c_pos = c.data();
70
413
        const A* __restrict a_end = a_pos + size;
71
72
6.81k
        while (a_pos < a_end) {
73
6.39k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.39k
            ++a_pos;
75
6.39k
            ++b_pos;
76
6.39k
            ++c_pos;
77
6.39k
        }
78
413
    }
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
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
11
        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
2
    }
_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
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
33
        while (a_pos < a_end) {
73
23
            *c_pos = Op::apply(*a_pos, *b_pos);
74
23
            ++a_pos;
75
23
            ++b_pos;
76
23
            ++c_pos;
77
23
        }
78
10
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_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
64
        while (a_pos < a_end) {
73
34
            *c_pos = Op::apply(*a_pos, *b_pos);
74
34
            ++a_pos;
75
34
            ++b_pos;
76
34
            ++c_pos;
77
34
        }
78
30
    }
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
148k
                                          PaddedPODArray<UInt8>& c) {
82
148k
        size_t size = a.size();
83
148k
        const A* __restrict a_pos = a.data();
84
148k
        UInt8* __restrict c_pos = c.data();
85
148k
        const A* __restrict a_end = a_pos + size;
86
87
32.4M
        while (a_pos < a_end) {
88
32.3M
            *c_pos = Op::apply(*a_pos, b);
89
32.3M
            ++a_pos;
90
32.3M
            ++c_pos;
91
32.3M
        }
92
148k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
24
                                          PaddedPODArray<UInt8>& c) {
82
24
        size_t size = a.size();
83
24
        const A* __restrict a_pos = a.data();
84
24
        UInt8* __restrict c_pos = c.data();
85
24
        const A* __restrict a_end = a_pos + size;
86
87
166
        while (a_pos < a_end) {
88
142
            *c_pos = Op::apply(*a_pos, b);
89
142
            ++a_pos;
90
142
            ++c_pos;
91
142
        }
92
24
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
481
                                          PaddedPODArray<UInt8>& c) {
82
481
        size_t size = a.size();
83
481
        const A* __restrict a_pos = a.data();
84
481
        UInt8* __restrict c_pos = c.data();
85
481
        const A* __restrict a_end = a_pos + size;
86
87
204k
        while (a_pos < a_end) {
88
203k
            *c_pos = Op::apply(*a_pos, b);
89
203k
            ++a_pos;
90
203k
            ++c_pos;
91
203k
        }
92
481
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
196
                                          PaddedPODArray<UInt8>& c) {
82
196
        size_t size = a.size();
83
196
        const A* __restrict a_pos = a.data();
84
196
        UInt8* __restrict c_pos = c.data();
85
196
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
196
    }
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.86k
                                          PaddedPODArray<UInt8>& c) {
82
4.86k
        size_t size = a.size();
83
4.86k
        const A* __restrict a_pos = a.data();
84
4.86k
        UInt8* __restrict c_pos = c.data();
85
4.86k
        const A* __restrict a_end = a_pos + size;
86
87
9.07M
        while (a_pos < a_end) {
88
9.06M
            *c_pos = Op::apply(*a_pos, b);
89
9.06M
            ++a_pos;
90
9.06M
            ++c_pos;
91
9.06M
        }
92
4.86k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
303
                                          PaddedPODArray<UInt8>& c) {
82
303
        size_t size = a.size();
83
303
        const A* __restrict a_pos = a.data();
84
303
        UInt8* __restrict c_pos = c.data();
85
303
        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
303
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
55.9k
                                          PaddedPODArray<UInt8>& c) {
82
55.9k
        size_t size = a.size();
83
55.9k
        const A* __restrict a_pos = a.data();
84
55.9k
        UInt8* __restrict c_pos = c.data();
85
55.9k
        const A* __restrict a_end = a_pos + size;
86
87
372k
        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
55.9k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.12k
                                          PaddedPODArray<UInt8>& c) {
82
1.12k
        size_t size = a.size();
83
1.12k
        const A* __restrict a_pos = a.data();
84
1.12k
        UInt8* __restrict c_pos = c.data();
85
1.12k
        const A* __restrict a_end = a_pos + size;
86
87
714k
        while (a_pos < a_end) {
88
713k
            *c_pos = Op::apply(*a_pos, b);
89
713k
            ++a_pos;
90
713k
            ++c_pos;
91
713k
        }
92
1.12k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
43
                                          PaddedPODArray<UInt8>& c) {
82
43
        size_t size = a.size();
83
43
        const A* __restrict a_pos = a.data();
84
43
        UInt8* __restrict c_pos = c.data();
85
43
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
43
    }
_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
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
258
                                          PaddedPODArray<UInt8>& c) {
82
258
        size_t size = a.size();
83
258
        const A* __restrict a_pos = a.data();
84
258
        UInt8* __restrict c_pos = c.data();
85
258
        const A* __restrict a_end = a_pos + size;
86
87
700k
        while (a_pos < a_end) {
88
700k
            *c_pos = Op::apply(*a_pos, b);
89
700k
            ++a_pos;
90
700k
            ++c_pos;
91
700k
        }
92
258
    }
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
31
                                          PaddedPODArray<UInt8>& c) {
82
31
        size_t size = a.size();
83
31
        const A* __restrict a_pos = a.data();
84
31
        UInt8* __restrict c_pos = c.data();
85
31
        const A* __restrict a_end = a_pos + size;
86
87
82
        while (a_pos < a_end) {
88
51
            *c_pos = Op::apply(*a_pos, b);
89
51
            ++a_pos;
90
51
            ++c_pos;
91
51
        }
92
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
28
                                          PaddedPODArray<UInt8>& c) {
82
28
        size_t size = a.size();
83
28
        const A* __restrict a_pos = a.data();
84
28
        UInt8* __restrict c_pos = c.data();
85
28
        const A* __restrict a_end = a_pos + size;
86
87
78
        while (a_pos < a_end) {
88
50
            *c_pos = Op::apply(*a_pos, b);
89
50
            ++a_pos;
90
50
            ++c_pos;
91
50
        }
92
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
154
                                          PaddedPODArray<UInt8>& c) {
82
154
        size_t size = a.size();
83
154
        const A* __restrict a_pos = a.data();
84
154
        UInt8* __restrict c_pos = c.data();
85
154
        const A* __restrict a_end = a_pos + size;
86
87
1.78k
        while (a_pos < a_end) {
88
1.62k
            *c_pos = Op::apply(*a_pos, b);
89
1.62k
            ++a_pos;
90
1.62k
            ++c_pos;
91
1.62k
        }
92
154
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
455
                                          PaddedPODArray<UInt8>& c) {
82
455
        size_t size = a.size();
83
455
        const A* __restrict a_pos = a.data();
84
455
        UInt8* __restrict c_pos = c.data();
85
455
        const A* __restrict a_end = a_pos + size;
86
87
3.59k
        while (a_pos < a_end) {
88
3.13k
            *c_pos = Op::apply(*a_pos, b);
89
3.13k
            ++a_pos;
90
3.13k
            ++c_pos;
91
3.13k
        }
92
455
    }
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
41
                                          PaddedPODArray<UInt8>& c) {
82
41
        size_t size = a.size();
83
41
        const A* __restrict a_pos = a.data();
84
41
        UInt8* __restrict c_pos = c.data();
85
41
        const A* __restrict a_end = a_pos + size;
86
87
149
        while (a_pos < a_end) {
88
108
            *c_pos = Op::apply(*a_pos, b);
89
108
            ++a_pos;
90
108
            ++c_pos;
91
108
        }
92
41
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
432
                                          PaddedPODArray<UInt8>& c) {
82
432
        size_t size = a.size();
83
432
        const A* __restrict a_pos = a.data();
84
432
        UInt8* __restrict c_pos = c.data();
85
432
        const A* __restrict a_end = a_pos + size;
86
87
1.67M
        while (a_pos < a_end) {
88
1.67M
            *c_pos = Op::apply(*a_pos, b);
89
1.67M
            ++a_pos;
90
1.67M
            ++c_pos;
91
1.67M
        }
92
432
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
6
        while (a_pos < a_end) {
88
4
            *c_pos = Op::apply(*a_pos, b);
89
4
            ++a_pos;
90
4
            ++c_pos;
91
4
        }
92
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
59
                                          PaddedPODArray<UInt8>& c) {
82
59
        size_t size = a.size();
83
59
        const A* __restrict a_pos = a.data();
84
59
        UInt8* __restrict c_pos = c.data();
85
59
        const A* __restrict a_end = a_pos + size;
86
87
269
        while (a_pos < a_end) {
88
210
            *c_pos = Op::apply(*a_pos, b);
89
210
            ++a_pos;
90
210
            ++c_pos;
91
210
        }
92
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
8
        while (a_pos < a_end) {
88
7
            *c_pos = Op::apply(*a_pos, b);
89
7
            ++a_pos;
90
7
            ++c_pos;
91
7
        }
92
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.28k
                                          PaddedPODArray<UInt8>& c) {
82
1.28k
        size_t size = a.size();
83
1.28k
        const A* __restrict a_pos = a.data();
84
1.28k
        UInt8* __restrict c_pos = c.data();
85
1.28k
        const A* __restrict a_end = a_pos + size;
86
87
7.03k
        while (a_pos < a_end) {
88
5.75k
            *c_pos = Op::apply(*a_pos, b);
89
5.75k
            ++a_pos;
90
5.75k
            ++c_pos;
91
5.75k
        }
92
1.28k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.96k
                                          PaddedPODArray<UInt8>& c) {
82
1.96k
        size_t size = a.size();
83
1.96k
        const A* __restrict a_pos = a.data();
84
1.96k
        UInt8* __restrict c_pos = c.data();
85
1.96k
        const A* __restrict a_end = a_pos + size;
86
87
5.47k
        while (a_pos < a_end) {
88
3.50k
            *c_pos = Op::apply(*a_pos, b);
89
3.50k
            ++a_pos;
90
3.50k
            ++c_pos;
91
3.50k
        }
92
1.96k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.44k
                                          PaddedPODArray<UInt8>& c) {
82
1.44k
        size_t size = a.size();
83
1.44k
        const A* __restrict a_pos = a.data();
84
1.44k
        UInt8* __restrict c_pos = c.data();
85
1.44k
        const A* __restrict a_end = a_pos + size;
86
87
6.24k
        while (a_pos < a_end) {
88
4.79k
            *c_pos = Op::apply(*a_pos, b);
89
4.79k
            ++a_pos;
90
4.79k
            ++c_pos;
91
4.79k
        }
92
1.44k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
242
                                          PaddedPODArray<UInt8>& c) {
82
242
        size_t size = a.size();
83
242
        const A* __restrict a_pos = a.data();
84
242
        UInt8* __restrict c_pos = c.data();
85
242
        const A* __restrict a_end = a_pos + size;
86
87
1.20k
        while (a_pos < a_end) {
88
959
            *c_pos = Op::apply(*a_pos, b);
89
959
            ++a_pos;
90
959
            ++c_pos;
91
959
        }
92
242
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4.63k
                                          PaddedPODArray<UInt8>& c) {
82
4.63k
        size_t size = a.size();
83
4.63k
        const A* __restrict a_pos = a.data();
84
4.63k
        UInt8* __restrict c_pos = c.data();
85
4.63k
        const A* __restrict a_end = a_pos + size;
86
87
958k
        while (a_pos < a_end) {
88
953k
            *c_pos = Op::apply(*a_pos, b);
89
953k
            ++a_pos;
90
953k
            ++c_pos;
91
953k
        }
92
4.63k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
62.3k
                                          PaddedPODArray<UInt8>& c) {
82
62.3k
        size_t size = a.size();
83
62.3k
        const A* __restrict a_pos = a.data();
84
62.3k
        UInt8* __restrict c_pos = c.data();
85
62.3k
        const A* __restrict a_end = a_pos + size;
86
87
5.31M
        while (a_pos < a_end) {
88
5.25M
            *c_pos = Op::apply(*a_pos, b);
89
5.25M
            ++a_pos;
90
5.25M
            ++c_pos;
91
5.25M
        }
92
62.3k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.30k
                                          PaddedPODArray<UInt8>& c) {
82
1.30k
        size_t size = a.size();
83
1.30k
        const A* __restrict a_pos = a.data();
84
1.30k
        UInt8* __restrict c_pos = c.data();
85
1.30k
        const A* __restrict a_end = a_pos + size;
86
87
96.0k
        while (a_pos < a_end) {
88
94.7k
            *c_pos = Op::apply(*a_pos, b);
89
94.7k
            ++a_pos;
90
94.7k
            ++c_pos;
91
94.7k
        }
92
1.30k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
633
                                          PaddedPODArray<UInt8>& c) {
82
633
        size_t size = a.size();
83
633
        const A* __restrict a_pos = a.data();
84
633
        UInt8* __restrict c_pos = c.data();
85
633
        const A* __restrict a_end = a_pos + size;
86
87
2.31k
        while (a_pos < a_end) {
88
1.68k
            *c_pos = Op::apply(*a_pos, b);
89
1.68k
            ++a_pos;
90
1.68k
            ++c_pos;
91
1.68k
        }
92
633
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
217
                                          PaddedPODArray<UInt8>& c) {
82
217
        size_t size = a.size();
83
217
        const A* __restrict a_pos = a.data();
84
217
        UInt8* __restrict c_pos = c.data();
85
217
        const A* __restrict a_end = a_pos + size;
86
87
1.82k
        while (a_pos < a_end) {
88
1.60k
            *c_pos = Op::apply(*a_pos, b);
89
1.60k
            ++a_pos;
90
1.60k
            ++c_pos;
91
1.60k
        }
92
217
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
103
                                          PaddedPODArray<UInt8>& c) {
82
103
        size_t size = a.size();
83
103
        const A* __restrict a_pos = a.data();
84
103
        UInt8* __restrict c_pos = c.data();
85
103
        const A* __restrict a_end = a_pos + size;
86
87
86.2k
        while (a_pos < a_end) {
88
86.1k
            *c_pos = Op::apply(*a_pos, b);
89
86.1k
            ++a_pos;
90
86.1k
            ++c_pos;
91
86.1k
        }
92
103
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
3
                                          PaddedPODArray<UInt8>& c) {
82
3
        size_t size = a.size();
83
3
        const A* __restrict a_pos = a.data();
84
3
        UInt8* __restrict c_pos = c.data();
85
3
        const A* __restrict a_end = a_pos + size;
86
87
31
        while (a_pos < a_end) {
88
28
            *c_pos = Op::apply(*a_pos, b);
89
28
            ++a_pos;
90
28
            ++c_pos;
91
28
        }
92
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_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
22
        while (a_pos < a_end) {
88
20
            *c_pos = Op::apply(*a_pos, b);
89
20
            ++a_pos;
90
20
            ++c_pos;
91
20
        }
92
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
200
                                          PaddedPODArray<UInt8>& c) {
82
200
        size_t size = a.size();
83
200
        const A* __restrict a_pos = a.data();
84
200
        UInt8* __restrict c_pos = c.data();
85
200
        const A* __restrict a_end = a_pos + size;
86
87
2.61k
        while (a_pos < a_end) {
88
2.41k
            *c_pos = Op::apply(*a_pos, b);
89
2.41k
            ++a_pos;
90
2.41k
            ++c_pos;
91
2.41k
        }
92
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
503
                                          PaddedPODArray<UInt8>& c) {
82
503
        size_t size = a.size();
83
503
        const A* __restrict a_pos = a.data();
84
503
        UInt8* __restrict c_pos = c.data();
85
503
        const A* __restrict a_end = a_pos + size;
86
87
7.44k
        while (a_pos < a_end) {
88
6.94k
            *c_pos = Op::apply(*a_pos, b);
89
6.94k
            ++a_pos;
90
6.94k
            ++c_pos;
91
6.94k
        }
92
503
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
249
                                          PaddedPODArray<UInt8>& c) {
82
249
        size_t size = a.size();
83
249
        const A* __restrict a_pos = a.data();
84
249
        UInt8* __restrict c_pos = c.data();
85
249
        const A* __restrict a_end = a_pos + size;
86
87
607k
        while (a_pos < a_end) {
88
607k
            *c_pos = Op::apply(*a_pos, b);
89
607k
            ++a_pos;
90
607k
            ++c_pos;
91
607k
        }
92
249
    }
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
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
130k
        while (a_pos < a_end) {
88
130k
            *c_pos = Op::apply(*a_pos, b);
89
130k
            ++a_pos;
90
130k
            ++c_pos;
91
130k
        }
92
26
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
26
                                          PaddedPODArray<UInt8>& c) {
82
26
        size_t size = a.size();
83
26
        const A* __restrict a_pos = a.data();
84
26
        UInt8* __restrict c_pos = c.data();
85
26
        const A* __restrict a_end = a_pos + size;
86
87
130k
        while (a_pos < a_end) {
88
130k
            *c_pos = Op::apply(*a_pos, b);
89
130k
            ++a_pos;
90
130k
            ++c_pos;
91
130k
        }
92
26
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
569
                                          PaddedPODArray<UInt8>& c) {
82
569
        size_t size = a.size();
83
569
        const A* __restrict a_pos = a.data();
84
569
        UInt8* __restrict c_pos = c.data();
85
569
        const A* __restrict a_end = a_pos + size;
86
87
1.82M
        while (a_pos < a_end) {
88
1.82M
            *c_pos = Op::apply(*a_pos, b);
89
1.82M
            ++a_pos;
90
1.82M
            ++c_pos;
91
1.82M
        }
92
569
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
155
                                          PaddedPODArray<UInt8>& c) {
82
155
        size_t size = a.size();
83
155
        const A* __restrict a_pos = a.data();
84
155
        UInt8* __restrict c_pos = c.data();
85
155
        const A* __restrict a_end = a_pos + size;
86
87
723k
        while (a_pos < a_end) {
88
723k
            *c_pos = Op::apply(*a_pos, b);
89
723k
            ++a_pos;
90
723k
            ++c_pos;
91
723k
        }
92
155
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
136
                                          PaddedPODArray<UInt8>& c) {
82
136
        size_t size = a.size();
83
136
        const A* __restrict a_pos = a.data();
84
136
        UInt8* __restrict c_pos = c.data();
85
136
        const A* __restrict a_end = a_pos + size;
86
87
511
        while (a_pos < a_end) {
88
375
            *c_pos = Op::apply(*a_pos, b);
89
375
            ++a_pos;
90
375
            ++c_pos;
91
375
        }
92
136
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
44
                                          PaddedPODArray<UInt8>& c) {
82
44
        size_t size = a.size();
83
44
        const A* __restrict a_pos = a.data();
84
44
        UInt8* __restrict c_pos = c.data();
85
44
        const A* __restrict a_end = a_pos + size;
86
87
104
        while (a_pos < a_end) {
88
60
            *c_pos = Op::apply(*a_pos, b);
89
60
            ++a_pos;
90
60
            ++c_pos;
91
60
        }
92
44
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
56
                                          PaddedPODArray<UInt8>& c) {
82
56
        size_t size = a.size();
83
56
        const A* __restrict a_pos = a.data();
84
56
        UInt8* __restrict c_pos = c.data();
85
56
        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
56
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
47
                                          PaddedPODArray<UInt8>& c) {
82
47
        size_t size = a.size();
83
47
        const A* __restrict a_pos = a.data();
84
47
        UInt8* __restrict c_pos = c.data();
85
47
        const A* __restrict a_end = a_pos + size;
86
87
120k
        while (a_pos < a_end) {
88
120k
            *c_pos = Op::apply(*a_pos, b);
89
120k
            ++a_pos;
90
120k
            ++c_pos;
91
120k
        }
92
47
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
46
                                          PaddedPODArray<UInt8>& c) {
82
46
        size_t size = a.size();
83
46
        const A* __restrict a_pos = a.data();
84
46
        UInt8* __restrict c_pos = c.data();
85
46
        const A* __restrict a_end = a_pos + size;
86
87
150k
        while (a_pos < a_end) {
88
150k
            *c_pos = Op::apply(*a_pos, b);
89
150k
            ++a_pos;
90
150k
            ++c_pos;
91
150k
        }
92
46
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_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
103k
        while (a_pos < a_end) {
88
103k
            *c_pos = Op::apply(*a_pos, b);
89
103k
            ++a_pos;
90
103k
            ++c_pos;
91
103k
        }
92
38
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
802
                                          PaddedPODArray<UInt8>& c) {
82
802
        size_t size = a.size();
83
802
        const A* __restrict a_pos = a.data();
84
802
        UInt8* __restrict c_pos = c.data();
85
802
        const A* __restrict a_end = a_pos + size;
86
87
1.71M
        while (a_pos < a_end) {
88
1.71M
            *c_pos = Op::apply(*a_pos, b);
89
1.71M
            ++a_pos;
90
1.71M
            ++c_pos;
91
1.71M
        }
92
802
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
5.67k
                                          PaddedPODArray<UInt8>& c) {
82
5.67k
        size_t size = a.size();
83
5.67k
        const A* __restrict a_pos = a.data();
84
5.67k
        UInt8* __restrict c_pos = c.data();
85
5.67k
        const A* __restrict a_end = a_pos + size;
86
87
5.71M
        while (a_pos < a_end) {
88
5.71M
            *c_pos = Op::apply(*a_pos, b);
89
5.71M
            ++a_pos;
90
5.71M
            ++c_pos;
91
5.71M
        }
92
5.67k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
200
                                          PaddedPODArray<UInt8>& c) {
82
200
        size_t size = a.size();
83
200
        const A* __restrict a_pos = a.data();
84
200
        UInt8* __restrict c_pos = c.data();
85
200
        const A* __restrict a_end = a_pos + size;
86
87
637
        while (a_pos < a_end) {
88
437
            *c_pos = Op::apply(*a_pos, b);
89
437
            ++a_pos;
90
437
            ++c_pos;
91
437
        }
92
200
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
217
                                          PaddedPODArray<UInt8>& c) {
82
217
        size_t size = a.size();
83
217
        const A* __restrict a_pos = a.data();
84
217
        UInt8* __restrict c_pos = c.data();
85
217
        const A* __restrict a_end = a_pos + size;
86
87
2.18k
        while (a_pos < a_end) {
88
1.96k
            *c_pos = Op::apply(*a_pos, b);
89
1.96k
            ++a_pos;
90
1.96k
            ++c_pos;
91
1.96k
        }
92
217
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
35
                                          PaddedPODArray<UInt8>& c) {
82
35
        size_t size = a.size();
83
35
        const A* __restrict a_pos = a.data();
84
35
        UInt8* __restrict c_pos = c.data();
85
35
        const A* __restrict a_end = a_pos + size;
86
87
160k
        while (a_pos < a_end) {
88
160k
            *c_pos = Op::apply(*a_pos, b);
89
160k
            ++a_pos;
90
160k
            ++c_pos;
91
160k
        }
92
35
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
130k
        while (a_pos < a_end) {
88
130k
            *c_pos = Op::apply(*a_pos, b);
89
130k
            ++a_pos;
90
130k
            ++c_pos;
91
130k
        }
92
32
    }
_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
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
10
        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
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
263
                                          PaddedPODArray<UInt8>& c) {
82
263
        size_t size = a.size();
83
263
        const A* __restrict a_pos = a.data();
84
263
        UInt8* __restrict c_pos = c.data();
85
263
        const A* __restrict a_end = a_pos + size;
86
87
681k
        while (a_pos < a_end) {
88
681k
            *c_pos = Op::apply(*a_pos, b);
89
681k
            ++a_pos;
90
681k
            ++c_pos;
91
681k
        }
92
263
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
162
                                          PaddedPODArray<UInt8>& c) {
82
162
        size_t size = a.size();
83
162
        const A* __restrict a_pos = a.data();
84
162
        UInt8* __restrict c_pos = c.data();
85
162
        const A* __restrict a_end = a_pos + size;
86
87
600k
        while (a_pos < a_end) {
88
600k
            *c_pos = Op::apply(*a_pos, b);
89
600k
            ++a_pos;
90
600k
            ++c_pos;
91
600k
        }
92
162
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
91.5k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
91.5k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
91.5k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
276
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
276
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
276
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
36
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
36
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
36
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
27.4k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
27.4k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
27.4k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
334
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
334
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
334
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
16
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_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
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
418
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
418
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
418
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
234
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
234
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
234
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
228
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
61.6k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
61.6k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
61.6k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
121
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
121
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
121
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
49
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
49
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
49
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
94
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
240
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
240
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
240
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
25
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
25
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
25
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
67
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
67
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
67
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
16
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
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: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
290
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
290
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
290
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
48
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
1
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
1
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
1
    }
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
128
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
128
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
439k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
439k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
439k
        }
113
128
    }
_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
36
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
36
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
179k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
179k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
179k
        }
113
36
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
55
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
55
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
259k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
259k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
259k
        }
113
55
    }
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
472
                                                      PaddedPODArray<UInt8>& c) {
127
472
        size_t size = a_offsets.size();
128
472
        ColumnString::Offset prev_a_offset = 0;
129
472
        ColumnString::Offset prev_b_offset = 0;
130
472
        const auto* a_pos = a_data.data();
131
472
        const auto* b_pos = b_data.data();
132
133
1.14k
        for (size_t i = 0; i < size; ++i) {
134
675
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
675
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
675
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
675
                             0);
138
139
675
            prev_a_offset = a_offsets[i];
140
675
            prev_b_offset = b_offsets[i];
141
675
        }
142
472
    }
_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
36
                                                      PaddedPODArray<UInt8>& c) {
127
36
        size_t size = a_offsets.size();
128
36
        ColumnString::Offset prev_a_offset = 0;
129
36
        ColumnString::Offset prev_b_offset = 0;
130
36
        const auto* a_pos = a_data.data();
131
36
        const auto* b_pos = b_data.data();
132
133
230
        for (size_t i = 0; i < size; ++i) {
134
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
194
                             0);
138
139
194
            prev_a_offset = a_offsets[i];
140
194
            prev_b_offset = b_offsets[i];
141
194
        }
142
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
434
                                                      PaddedPODArray<UInt8>& c) {
127
434
        size_t size = a_offsets.size();
128
434
        ColumnString::Offset prev_a_offset = 0;
129
434
        ColumnString::Offset prev_b_offset = 0;
130
434
        const auto* a_pos = a_data.data();
131
434
        const auto* b_pos = b_data.data();
132
133
868
        for (size_t i = 0; i < size; ++i) {
134
434
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
434
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
434
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
434
                             0);
138
139
434
            prev_a_offset = a_offsets[i];
140
434
            prev_b_offset = b_offsets[i];
141
434
        }
142
434
    }
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
824
                                                 PaddedPODArray<UInt8>& c) {
149
824
        size_t size = a_offsets.size();
150
824
        ColumnString::Offset prev_a_offset = 0;
151
824
        const auto* a_pos = a_data.data();
152
824
        const auto* b_pos = b_data.data();
153
154
1.60M
        for (size_t i = 0; i < size; ++i) {
155
1.59M
            c[i] = Op::apply(
156
1.59M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.59M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.59M
                    0);
159
160
1.59M
            prev_a_offset = a_offsets[i];
161
1.59M
        }
162
824
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
199
                                                 PaddedPODArray<UInt8>& c) {
149
199
        size_t size = a_offsets.size();
150
199
        ColumnString::Offset prev_a_offset = 0;
151
199
        const auto* a_pos = a_data.data();
152
199
        const auto* b_pos = b_data.data();
153
154
601k
        for (size_t i = 0; i < size; ++i) {
155
601k
            c[i] = Op::apply(
156
601k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
601k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
601k
                    0);
159
160
601k
            prev_a_offset = a_offsets[i];
161
601k
        }
162
199
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
109
                                                 PaddedPODArray<UInt8>& c) {
149
109
        size_t size = a_offsets.size();
150
109
        ColumnString::Offset prev_a_offset = 0;
151
109
        const auto* a_pos = a_data.data();
152
109
        const auto* b_pos = b_data.data();
153
154
72.2k
        for (size_t i = 0; i < size; ++i) {
155
72.1k
            c[i] = Op::apply(
156
72.1k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.1k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.1k
                    0);
159
160
72.1k
            prev_a_offset = a_offsets[i];
161
72.1k
        }
162
109
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
285
                                                 PaddedPODArray<UInt8>& c) {
149
285
        size_t size = a_offsets.size();
150
285
        ColumnString::Offset prev_a_offset = 0;
151
285
        const auto* a_pos = a_data.data();
152
285
        const auto* b_pos = b_data.data();
153
154
393k
        for (size_t i = 0; i < size; ++i) {
155
392k
            c[i] = Op::apply(
156
392k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
392k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
392k
                    0);
159
160
392k
            prev_a_offset = a_offsets[i];
161
392k
        }
162
285
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
231
                                                 PaddedPODArray<UInt8>& c) {
149
231
        size_t size = a_offsets.size();
150
231
        ColumnString::Offset prev_a_offset = 0;
151
231
        const auto* a_pos = a_data.data();
152
231
        const auto* b_pos = b_data.data();
153
154
533k
        for (size_t i = 0; i < size; ++i) {
155
532k
            c[i] = Op::apply(
156
532k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
532k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
532k
                    0);
159
160
532k
            prev_a_offset = a_offsets[i];
161
532k
        }
162
231
    }
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
4
                                       PaddedPODArray<UInt8>& c) {
169
4
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
4
                                                                               a_data, a_size, c);
171
4
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
168
4
                                       PaddedPODArray<UInt8>& c) {
169
4
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
4
                                                                               a_data, a_size, c);
171
4
    }
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
501
                                                      PaddedPODArray<UInt8>& c) {
181
501
        size_t size = a_offsets.size();
182
501
        ColumnString::Offset prev_a_offset = 0;
183
501
        ColumnString::Offset prev_b_offset = 0;
184
501
        const auto* a_pos = a_data.data();
185
501
        const auto* b_pos = b_data.data();
186
187
1.48k
        for (size_t i = 0; i < size; ++i) {
188
986
            auto a_size = a_offsets[i] - prev_a_offset;
189
986
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
986
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
986
                                                               b_pos + prev_b_offset, b_size);
193
194
986
            prev_a_offset = a_offsets[i];
195
986
            prev_b_offset = b_offsets[i];
196
986
        }
197
501
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
500
                                                      PaddedPODArray<UInt8>& c) {
181
500
        size_t size = a_offsets.size();
182
500
        ColumnString::Offset prev_a_offset = 0;
183
500
        ColumnString::Offset prev_b_offset = 0;
184
500
        const auto* a_pos = a_data.data();
185
500
        const auto* b_pos = b_data.data();
186
187
1.48k
        for (size_t i = 0; i < size; ++i) {
188
982
            auto a_size = a_offsets[i] - prev_a_offset;
189
982
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
982
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
982
                                                               b_pos + prev_b_offset, b_size);
193
194
982
            prev_a_offset = a_offsets[i];
195
982
            prev_b_offset = b_offsets[i];
196
982
        }
197
500
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
1
                                                      PaddedPODArray<UInt8>& c) {
181
1
        size_t size = a_offsets.size();
182
1
        ColumnString::Offset prev_a_offset = 0;
183
1
        ColumnString::Offset prev_b_offset = 0;
184
1
        const auto* a_pos = a_data.data();
185
1
        const auto* b_pos = b_data.data();
186
187
5
        for (size_t i = 0; i < size; ++i) {
188
4
            auto a_size = a_offsets[i] - prev_a_offset;
189
4
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
4
                                                               b_pos + prev_b_offset, b_size);
193
194
4
            prev_a_offset = a_offsets[i];
195
4
            prev_b_offset = b_offsets[i];
196
4
        }
197
1
    }
198
199
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
200
                                                 const ColumnString::Offsets& a_offsets,
201
                                                 const ColumnString::Chars& b_data,
202
                                                 ColumnString::Offset b_size,
203
10.2k
                                                 PaddedPODArray<UInt8>& c) {
204
10.2k
        size_t size = a_offsets.size();
205
10.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
10.2k
        } else {
215
10.2k
            ColumnString::Offset prev_a_offset = 0;
216
10.2k
            const auto* a_pos = a_data.data();
217
10.2k
            const auto* b_pos = b_data.data();
218
1.85M
            for (size_t i = 0; i < size; ++i) {
219
1.84M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.84M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.84M
                                                                   b_pos, b_size);
222
1.84M
                prev_a_offset = a_offsets[i];
223
1.84M
            }
224
10.2k
        }
225
10.2k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
10.1k
                                                 PaddedPODArray<UInt8>& c) {
204
10.1k
        size_t size = a_offsets.size();
205
10.1k
        if (b_size == 0) {
206
0
            auto* __restrict data = c.data();
207
0
            auto* __restrict offsets = a_offsets.data();
208
209
0
            ColumnString::Offset prev_a_offset = 0;
210
0
            for (size_t i = 0; i < size; ++i) {
211
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
0
                prev_a_offset = offsets[i];
213
0
            }
214
10.1k
        } else {
215
10.1k
            ColumnString::Offset prev_a_offset = 0;
216
10.1k
            const auto* a_pos = a_data.data();
217
10.1k
            const auto* b_pos = b_data.data();
218
1.81M
            for (size_t i = 0; i < size; ++i) {
219
1.80M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.80M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.80M
                                                                   b_pos, b_size);
222
1.80M
                prev_a_offset = a_offsets[i];
223
1.80M
            }
224
10.1k
        }
225
10.1k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
93
                                                 PaddedPODArray<UInt8>& c) {
204
93
        size_t size = a_offsets.size();
205
93
        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
92
        } else {
215
92
            ColumnString::Offset prev_a_offset = 0;
216
92
            const auto* a_pos = a_data.data();
217
92
            const auto* b_pos = b_data.data();
218
41.2k
            for (size_t i = 0; i < size; ++i) {
219
41.1k
                auto a_size = a_offsets[i] - prev_a_offset;
220
41.1k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
41.1k
                                                                   b_pos, b_size);
222
41.1k
                prev_a_offset = a_offsets[i];
223
41.1k
            }
224
92
        }
225
93
    }
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
262k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
238k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.17k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
4.77k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
6.47k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
2.68k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
8.33k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
262k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
239k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.17k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
4.77k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
6.46k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
2.68k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
8.31k
    FunctionComparison() = default;
268
269
650k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
640k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
681
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
3.36k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
2.58k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
1.69k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
1.09k
    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
155k
                            const ColumnPtr& col_right_ptr) const {
275
155k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
155k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
155k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
155k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
155k
        DCHECK(!(left_is_const && right_is_const));
282
283
155k
        if (!left_is_const && !right_is_const) {
284
7.55k
            auto col_res = ColumnUInt8::create();
285
286
7.55k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7.55k
            vec_res.resize(col_left->get_data().size());
288
7.55k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7.55k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7.55k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7.55k
                                                     vec_res);
292
293
7.55k
            block.replace_by_position(result, std::move(col_res));
294
148k
        } else if (!left_is_const && right_is_const) {
295
56.7k
            auto col_res = ColumnUInt8::create();
296
297
56.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
56.7k
            vec_res.resize(col_left->size());
299
56.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
56.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
56.7k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
56.7k
                                                       col_right->get_element(0), vec_res);
303
304
56.7k
            block.replace_by_position(result, std::move(col_res));
305
91.5k
        } else if (left_is_const && !right_is_const) {
306
91.5k
            auto col_res = ColumnUInt8::create();
307
308
91.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
91.5k
            vec_res.resize(col_right->size());
310
91.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
91.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
91.5k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
91.5k
                                                       col_right->get_data(), vec_res);
314
315
91.5k
            block.replace_by_position(result, std::move(col_res));
316
91.5k
        }
317
155k
        return Status::OK();
318
155k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_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
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
70
        } else if (!left_is_const && right_is_const) {
295
24
            auto col_res = ColumnUInt8::create();
296
297
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
24
            vec_res.resize(col_left->size());
299
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
24
                              typename PrimitiveTypeTraits<PT>::CppType,
301
24
                              Op<PT>>::vector_constant(col_left->get_data(),
302
24
                                                       col_right->get_element(0), vec_res);
303
304
24
            block.replace_by_position(result, std::move(col_res));
305
24
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
94
        return Status::OK();
318
94
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
694
                            const ColumnPtr& col_right_ptr) const {
275
694
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
694
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
694
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
694
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
694
        DCHECK(!(left_is_const && right_is_const));
282
283
694
        if (!left_is_const && !right_is_const) {
284
213
            auto col_res = ColumnUInt8::create();
285
286
213
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
213
            vec_res.resize(col_left->get_data().size());
288
213
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
213
                              typename PrimitiveTypeTraits<PT>::CppType,
290
213
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
213
                                                     vec_res);
292
293
213
            block.replace_by_position(result, std::move(col_res));
294
481
        } else if (!left_is_const && right_is_const) {
295
481
            auto col_res = ColumnUInt8::create();
296
297
481
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
481
            vec_res.resize(col_left->size());
299
481
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
481
                              typename PrimitiveTypeTraits<PT>::CppType,
301
481
                              Op<PT>>::vector_constant(col_left->get_data(),
302
481
                                                       col_right->get_element(0), vec_res);
303
304
481
            block.replace_by_position(result, std::move(col_res));
305
481
        } 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
694
        return Status::OK();
318
694
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
433
                            const ColumnPtr& col_right_ptr) const {
275
433
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
433
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
433
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
433
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
433
        DCHECK(!(left_is_const && right_is_const));
282
283
433
        if (!left_is_const && !right_is_const) {
284
237
            auto col_res = ColumnUInt8::create();
285
286
237
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
237
            vec_res.resize(col_left->get_data().size());
288
237
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
237
                              typename PrimitiveTypeTraits<PT>::CppType,
290
237
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
237
                                                     vec_res);
292
293
237
            block.replace_by_position(result, std::move(col_res));
294
237
        } else if (!left_is_const && right_is_const) {
295
196
            auto col_res = ColumnUInt8::create();
296
297
196
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
196
            vec_res.resize(col_left->size());
299
196
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
196
                              typename PrimitiveTypeTraits<PT>::CppType,
301
196
                              Op<PT>>::vector_constant(col_left->get_data(),
302
196
                                                       col_right->get_element(0), vec_res);
303
304
196
            block.replace_by_position(result, std::move(col_res));
305
196
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
433
        return Status::OK();
318
433
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4.99k
                            const ColumnPtr& col_right_ptr) const {
275
4.99k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4.99k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4.99k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4.99k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4.99k
        DCHECK(!(left_is_const && right_is_const));
282
283
4.99k
        if (!left_is_const && !right_is_const) {
284
127
            auto col_res = ColumnUInt8::create();
285
286
127
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
127
            vec_res.resize(col_left->get_data().size());
288
127
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
127
                              typename PrimitiveTypeTraits<PT>::CppType,
290
127
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
127
                                                     vec_res);
292
293
127
            block.replace_by_position(result, std::move(col_res));
294
4.86k
        } else if (!left_is_const && right_is_const) {
295
4.58k
            auto col_res = ColumnUInt8::create();
296
297
4.58k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4.58k
            vec_res.resize(col_left->size());
299
4.58k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4.58k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4.58k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4.58k
                                                       col_right->get_element(0), vec_res);
303
304
4.58k
            block.replace_by_position(result, std::move(col_res));
305
4.58k
        } else if (left_is_const && !right_is_const) {
306
276
            auto col_res = ColumnUInt8::create();
307
308
276
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
276
            vec_res.resize(col_right->size());
310
276
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
276
                              typename PrimitiveTypeTraits<PT>::CppType,
312
276
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
276
                                                       col_right->get_data(), vec_res);
314
315
276
            block.replace_by_position(result, std::move(col_res));
316
276
        }
317
4.99k
        return Status::OK();
318
4.99k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
365
                            const ColumnPtr& col_right_ptr) const {
275
365
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
365
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
365
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
365
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
365
        DCHECK(!(left_is_const && right_is_const));
282
283
365
        if (!left_is_const && !right_is_const) {
284
62
            auto col_res = ColumnUInt8::create();
285
286
62
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
62
            vec_res.resize(col_left->get_data().size());
288
62
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
62
                              typename PrimitiveTypeTraits<PT>::CppType,
290
62
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
62
                                                     vec_res);
292
293
62
            block.replace_by_position(result, std::move(col_res));
294
303
        } else if (!left_is_const && right_is_const) {
295
267
            auto col_res = ColumnUInt8::create();
296
297
267
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
267
            vec_res.resize(col_left->size());
299
267
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
267
                              typename PrimitiveTypeTraits<PT>::CppType,
301
267
                              Op<PT>>::vector_constant(col_left->get_data(),
302
267
                                                       col_right->get_element(0), vec_res);
303
304
267
            block.replace_by_position(result, std::move(col_res));
305
267
        } else if (left_is_const && !right_is_const) {
306
36
            auto col_res = ColumnUInt8::create();
307
308
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
36
            vec_res.resize(col_right->size());
310
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
36
                              typename PrimitiveTypeTraits<PT>::CppType,
312
36
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
36
                                                       col_right->get_data(), vec_res);
314
315
36
            block.replace_by_position(result, std::move(col_res));
316
36
        }
317
365
        return Status::OK();
318
365
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
56.2k
                            const ColumnPtr& col_right_ptr) const {
275
56.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
56.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
56.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
56.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
56.2k
        DCHECK(!(left_is_const && right_is_const));
282
283
56.2k
        if (!left_is_const && !right_is_const) {
284
272
            auto col_res = ColumnUInt8::create();
285
286
272
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
272
            vec_res.resize(col_left->get_data().size());
288
272
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
272
                              typename PrimitiveTypeTraits<PT>::CppType,
290
272
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
272
                                                     vec_res);
292
293
272
            block.replace_by_position(result, std::move(col_res));
294
55.9k
        } else if (!left_is_const && right_is_const) {
295
28.5k
            auto col_res = ColumnUInt8::create();
296
297
28.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28.5k
            vec_res.resize(col_left->size());
299
28.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28.5k
                                                       col_right->get_element(0), vec_res);
303
304
28.5k
            block.replace_by_position(result, std::move(col_res));
305
28.5k
        } else if (left_is_const && !right_is_const) {
306
27.4k
            auto col_res = ColumnUInt8::create();
307
308
27.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
27.4k
            vec_res.resize(col_right->size());
310
27.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
27.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
27.4k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
27.4k
                                                       col_right->get_data(), vec_res);
314
315
27.4k
            block.replace_by_position(result, std::move(col_res));
316
27.4k
        }
317
56.2k
        return Status::OK();
318
56.2k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.25k
                            const ColumnPtr& col_right_ptr) const {
275
1.25k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.25k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.25k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.25k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.25k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.25k
        if (!left_is_const && !right_is_const) {
284
124
            auto col_res = ColumnUInt8::create();
285
286
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
124
            vec_res.resize(col_left->get_data().size());
288
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
124
                              typename PrimitiveTypeTraits<PT>::CppType,
290
124
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
124
                                                     vec_res);
292
293
124
            block.replace_by_position(result, std::move(col_res));
294
1.12k
        } else if (!left_is_const && right_is_const) {
295
794
            auto col_res = ColumnUInt8::create();
296
297
794
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
794
            vec_res.resize(col_left->size());
299
794
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
794
                              typename PrimitiveTypeTraits<PT>::CppType,
301
794
                              Op<PT>>::vector_constant(col_left->get_data(),
302
794
                                                       col_right->get_element(0), vec_res);
303
304
794
            block.replace_by_position(result, std::move(col_res));
305
794
        } else if (left_is_const && !right_is_const) {
306
334
            auto col_res = ColumnUInt8::create();
307
308
334
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
334
            vec_res.resize(col_right->size());
310
334
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
334
                              typename PrimitiveTypeTraits<PT>::CppType,
312
334
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
334
                                                       col_right->get_data(), vec_res);
314
315
334
            block.replace_by_position(result, std::move(col_res));
316
334
        }
317
1.25k
        return Status::OK();
318
1.25k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
115
                            const ColumnPtr& col_right_ptr) const {
275
115
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
115
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
115
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
115
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
115
        DCHECK(!(left_is_const && right_is_const));
282
283
115
        if (!left_is_const && !right_is_const) {
284
72
            auto col_res = ColumnUInt8::create();
285
286
72
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
72
            vec_res.resize(col_left->get_data().size());
288
72
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
72
                              typename PrimitiveTypeTraits<PT>::CppType,
290
72
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
72
                                                     vec_res);
292
293
72
            block.replace_by_position(result, std::move(col_res));
294
72
        } else if (!left_is_const && right_is_const) {
295
27
            auto col_res = ColumnUInt8::create();
296
297
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
27
            vec_res.resize(col_left->size());
299
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
27
                              typename PrimitiveTypeTraits<PT>::CppType,
301
27
                              Op<PT>>::vector_constant(col_left->get_data(),
302
27
                                                       col_right->get_element(0), vec_res);
303
304
27
            block.replace_by_position(result, std::move(col_res));
305
27
        } else if (left_is_const && !right_is_const) {
306
16
            auto col_res = ColumnUInt8::create();
307
308
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
16
            vec_res.resize(col_right->size());
310
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
16
                              typename PrimitiveTypeTraits<PT>::CppType,
312
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
16
                                                       col_right->get_data(), vec_res);
314
315
16
            block.replace_by_position(result, std::move(col_res));
316
16
        }
317
115
        return Status::OK();
318
115
    }
_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
84
                            const ColumnPtr& col_right_ptr) const {
275
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
84
        DCHECK(!(left_is_const && right_is_const));
282
283
84
        if (!left_is_const && !right_is_const) {
284
84
            auto col_res = ColumnUInt8::create();
285
286
84
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
84
            vec_res.resize(col_left->get_data().size());
288
84
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
84
                              typename PrimitiveTypeTraits<PT>::CppType,
290
84
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
84
                                                     vec_res);
292
293
84
            block.replace_by_position(result, std::move(col_res));
294
84
        } 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
84
        return Status::OK();
318
84
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
355
                            const ColumnPtr& col_right_ptr) const {
275
355
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
355
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
355
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
355
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
355
        DCHECK(!(left_is_const && right_is_const));
282
283
355
        if (!left_is_const && !right_is_const) {
284
97
            auto col_res = ColumnUInt8::create();
285
286
97
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
97
            vec_res.resize(col_left->get_data().size());
288
97
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
97
                              typename PrimitiveTypeTraits<PT>::CppType,
290
97
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
97
                                                     vec_res);
292
293
97
            block.replace_by_position(result, std::move(col_res));
294
258
        } else if (!left_is_const && right_is_const) {
295
258
            auto col_res = ColumnUInt8::create();
296
297
258
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
258
            vec_res.resize(col_left->size());
299
258
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
258
                              typename PrimitiveTypeTraits<PT>::CppType,
301
258
                              Op<PT>>::vector_constant(col_left->get_data(),
302
258
                                                       col_right->get_element(0), vec_res);
303
304
258
            block.replace_by_position(result, std::move(col_res));
305
258
        } 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
355
        return Status::OK();
318
355
    }
_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
70
                            const ColumnPtr& col_right_ptr) const {
275
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
70
        DCHECK(!(left_is_const && right_is_const));
282
283
70
        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
31
            auto col_res = ColumnUInt8::create();
296
297
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
31
            vec_res.resize(col_left->size());
299
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
31
                              typename PrimitiveTypeTraits<PT>::CppType,
301
31
                              Op<PT>>::vector_constant(col_left->get_data(),
302
31
                                                       col_right->get_element(0), vec_res);
303
304
31
            block.replace_by_position(result, std::move(col_res));
305
31
        } 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
70
        return Status::OK();
318
70
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
84
                            const ColumnPtr& col_right_ptr) const {
275
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
84
        DCHECK(!(left_is_const && right_is_const));
282
283
84
        if (!left_is_const && !right_is_const) {
284
56
            auto col_res = ColumnUInt8::create();
285
286
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
56
            vec_res.resize(col_left->get_data().size());
288
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
56
                              typename PrimitiveTypeTraits<PT>::CppType,
290
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
56
                                                     vec_res);
292
293
56
            block.replace_by_position(result, std::move(col_res));
294
56
        } 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
84
        return Status::OK();
318
84
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
758
                            const ColumnPtr& col_right_ptr) const {
275
758
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
758
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
758
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
758
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
758
        DCHECK(!(left_is_const && right_is_const));
282
283
758
        if (!left_is_const && !right_is_const) {
284
604
            auto col_res = ColumnUInt8::create();
285
286
604
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
604
            vec_res.resize(col_left->get_data().size());
288
604
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
604
                              typename PrimitiveTypeTraits<PT>::CppType,
290
604
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
604
                                                     vec_res);
292
293
604
            block.replace_by_position(result, std::move(col_res));
294
604
        } else if (!left_is_const && right_is_const) {
295
149
            auto col_res = ColumnUInt8::create();
296
297
149
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
149
            vec_res.resize(col_left->size());
299
149
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
149
                              typename PrimitiveTypeTraits<PT>::CppType,
301
149
                              Op<PT>>::vector_constant(col_left->get_data(),
302
149
                                                       col_right->get_element(0), vec_res);
303
304
149
            block.replace_by_position(result, std::move(col_res));
305
149
        } 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
758
        return Status::OK();
318
758
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
829
                            const ColumnPtr& col_right_ptr) const {
275
829
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
829
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
829
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
829
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
829
        DCHECK(!(left_is_const && right_is_const));
282
283
829
        if (!left_is_const && !right_is_const) {
284
374
            auto col_res = ColumnUInt8::create();
285
286
374
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
374
            vec_res.resize(col_left->get_data().size());
288
374
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
374
                              typename PrimitiveTypeTraits<PT>::CppType,
290
374
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
374
                                                     vec_res);
292
293
374
            block.replace_by_position(result, std::move(col_res));
294
455
        } else if (!left_is_const && right_is_const) {
295
37
            auto col_res = ColumnUInt8::create();
296
297
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
37
            vec_res.resize(col_left->size());
299
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
37
                              typename PrimitiveTypeTraits<PT>::CppType,
301
37
                              Op<PT>>::vector_constant(col_left->get_data(),
302
37
                                                       col_right->get_element(0), vec_res);
303
304
37
            block.replace_by_position(result, std::move(col_res));
305
418
        } else if (left_is_const && !right_is_const) {
306
418
            auto col_res = ColumnUInt8::create();
307
308
418
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
418
            vec_res.resize(col_right->size());
310
418
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
418
                              typename PrimitiveTypeTraits<PT>::CppType,
312
418
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
418
                                                       col_right->get_data(), vec_res);
314
315
418
            block.replace_by_position(result, std::move(col_res));
316
418
        }
317
829
        return Status::OK();
318
829
    }
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
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
40
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
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.14k
                            const ColumnPtr& col_right_ptr) const {
275
1.14k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.14k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.14k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.14k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.14k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.14k
        if (!left_is_const && !right_is_const) {
284
1.10k
            auto col_res = ColumnUInt8::create();
285
286
1.10k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.10k
            vec_res.resize(col_left->get_data().size());
288
1.10k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.10k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.10k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.10k
                                                     vec_res);
292
293
1.10k
            block.replace_by_position(result, std::move(col_res));
294
1.10k
        } else if (!left_is_const && right_is_const) {
295
41
            auto col_res = ColumnUInt8::create();
296
297
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
41
            vec_res.resize(col_left->size());
299
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
41
                              typename PrimitiveTypeTraits<PT>::CppType,
301
41
                              Op<PT>>::vector_constant(col_left->get_data(),
302
41
                                                       col_right->get_element(0), vec_res);
303
304
41
            block.replace_by_position(result, std::move(col_res));
305
41
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.14k
        return Status::OK();
318
1.14k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
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_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.31k
                            const ColumnPtr& col_right_ptr) const {
275
1.31k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.31k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.31k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.31k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.31k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.31k
        if (!left_is_const && !right_is_const) {
284
38
            auto col_res = ColumnUInt8::create();
285
286
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
38
            vec_res.resize(col_left->get_data().size());
288
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
38
                              typename PrimitiveTypeTraits<PT>::CppType,
290
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
38
                                                     vec_res);
292
293
38
            block.replace_by_position(result, std::move(col_res));
294
1.27k
        } else if (!left_is_const && right_is_const) {
295
1.04k
            auto col_res = ColumnUInt8::create();
296
297
1.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.04k
            vec_res.resize(col_left->size());
299
1.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.04k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.04k
                                                       col_right->get_element(0), vec_res);
303
304
1.04k
            block.replace_by_position(result, std::move(col_res));
305
1.04k
        } else if (left_is_const && !right_is_const) {
306
234
            auto col_res = ColumnUInt8::create();
307
308
234
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
234
            vec_res.resize(col_right->size());
310
234
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
234
                              typename PrimitiveTypeTraits<PT>::CppType,
312
234
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
234
                                                       col_right->get_data(), vec_res);
314
315
234
            block.replace_by_position(result, std::move(col_res));
316
234
        }
317
1.31k
        return Status::OK();
318
1.31k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.78k
                            const ColumnPtr& col_right_ptr) const {
275
1.78k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.78k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.78k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.78k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.78k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.78k
        if (!left_is_const && !right_is_const) {
284
112
            auto col_res = ColumnUInt8::create();
285
286
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
112
            vec_res.resize(col_left->get_data().size());
288
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
112
                              typename PrimitiveTypeTraits<PT>::CppType,
290
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
112
                                                     vec_res);
292
293
112
            block.replace_by_position(result, std::move(col_res));
294
1.67k
        } else if (!left_is_const && right_is_const) {
295
1.44k
            auto col_res = ColumnUInt8::create();
296
297
1.44k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.44k
            vec_res.resize(col_left->size());
299
1.44k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.44k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.44k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.44k
                                                       col_right->get_element(0), vec_res);
303
304
1.44k
            block.replace_by_position(result, std::move(col_res));
305
1.44k
        } else if (left_is_const && !right_is_const) {
306
228
            auto col_res = ColumnUInt8::create();
307
308
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
228
            vec_res.resize(col_right->size());
310
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
228
                              typename PrimitiveTypeTraits<PT>::CppType,
312
228
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
228
                                                       col_right->get_data(), vec_res);
314
315
228
            block.replace_by_position(result, std::move(col_res));
316
228
        }
317
1.78k
        return Status::OK();
318
1.78k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
66.3k
                            const ColumnPtr& col_right_ptr) const {
275
66.3k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
66.3k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
66.3k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
66.3k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
66.3k
        DCHECK(!(left_is_const && right_is_const));
282
283
66.3k
        if (!left_is_const && !right_is_const) {
284
44
            auto col_res = ColumnUInt8::create();
285
286
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
44
            vec_res.resize(col_left->get_data().size());
288
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
44
                              typename PrimitiveTypeTraits<PT>::CppType,
290
44
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
44
                                                     vec_res);
292
293
44
            block.replace_by_position(result, std::move(col_res));
294
66.2k
        } else if (!left_is_const && right_is_const) {
295
4.60k
            auto col_res = ColumnUInt8::create();
296
297
4.60k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4.60k
            vec_res.resize(col_left->size());
299
4.60k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4.60k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4.60k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4.60k
                                                       col_right->get_element(0), vec_res);
303
304
4.60k
            block.replace_by_position(result, std::move(col_res));
305
61.6k
        } else if (left_is_const && !right_is_const) {
306
61.6k
            auto col_res = ColumnUInt8::create();
307
308
61.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
61.6k
            vec_res.resize(col_right->size());
310
61.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
61.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
61.6k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
61.6k
                                                       col_right->get_data(), vec_res);
314
315
61.6k
            block.replace_by_position(result, std::move(col_res));
316
61.6k
        }
317
66.3k
        return Status::OK();
318
66.3k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.42k
                            const ColumnPtr& col_right_ptr) const {
275
1.42k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.42k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.42k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.42k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.42k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.42k
        if (!left_is_const && !right_is_const) {
284
65
            auto col_res = ColumnUInt8::create();
285
286
65
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
65
            vec_res.resize(col_left->get_data().size());
288
65
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
65
                              typename PrimitiveTypeTraits<PT>::CppType,
290
65
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
65
                                                     vec_res);
292
293
65
            block.replace_by_position(result, std::move(col_res));
294
1.36k
        } else if (!left_is_const && right_is_const) {
295
1.24k
            auto col_res = ColumnUInt8::create();
296
297
1.24k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.24k
            vec_res.resize(col_left->size());
299
1.24k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.24k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.24k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.24k
                                                       col_right->get_element(0), vec_res);
303
304
1.24k
            block.replace_by_position(result, std::move(col_res));
305
1.24k
        } else if (left_is_const && !right_is_const) {
306
121
            auto col_res = ColumnUInt8::create();
307
308
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
121
            vec_res.resize(col_right->size());
310
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
121
                              typename PrimitiveTypeTraits<PT>::CppType,
312
121
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
121
                                                       col_right->get_data(), vec_res);
314
315
121
            block.replace_by_position(result, std::move(col_res));
316
121
        }
317
1.42k
        return Status::OK();
318
1.42k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
253
                            const ColumnPtr& col_right_ptr) const {
275
253
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
253
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
253
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
253
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
253
        DCHECK(!(left_is_const && right_is_const));
282
283
253
        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
250
        } else if (!left_is_const && right_is_const) {
295
201
            auto col_res = ColumnUInt8::create();
296
297
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
201
            vec_res.resize(col_left->size());
299
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
201
                              typename PrimitiveTypeTraits<PT>::CppType,
301
201
                              Op<PT>>::vector_constant(col_left->get_data(),
302
201
                                                       col_right->get_element(0), vec_res);
303
304
201
            block.replace_by_position(result, std::move(col_res));
305
201
        } else if (left_is_const && !right_is_const) {
306
49
            auto col_res = ColumnUInt8::create();
307
308
49
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
49
            vec_res.resize(col_right->size());
310
49
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
49
                              typename PrimitiveTypeTraits<PT>::CppType,
312
49
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
49
                                                       col_right->get_data(), vec_res);
314
315
49
            block.replace_by_position(result, std::move(col_res));
316
49
        }
317
253
        return Status::OK();
318
253
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_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
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
3
        } else if (!left_is_const && right_is_const) {
295
3
            auto col_res = ColumnUInt8::create();
296
297
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
3
            vec_res.resize(col_left->size());
299
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
3
                              typename PrimitiveTypeTraits<PT>::CppType,
301
3
                              Op<PT>>::vector_constant(col_left->get_data(),
302
3
                                                       col_right->get_element(0), vec_res);
303
304
3
            block.replace_by_position(result, std::move(col_res));
305
3
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_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
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
220
        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
200
        } else if (!left_is_const && right_is_const) {
295
200
            auto col_res = ColumnUInt8::create();
296
297
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
200
            vec_res.resize(col_left->size());
299
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
200
                              typename PrimitiveTypeTraits<PT>::CppType,
301
200
                              Op<PT>>::vector_constant(col_left->get_data(),
302
200
                                                       col_right->get_element(0), vec_res);
303
304
200
            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
219
        return Status::OK();
318
219
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
534
                            const ColumnPtr& col_right_ptr) const {
275
534
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
534
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
534
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
534
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
534
        DCHECK(!(left_is_const && right_is_const));
282
283
534
        if (!left_is_const && !right_is_const) {
284
31
            auto col_res = ColumnUInt8::create();
285
286
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
31
            vec_res.resize(col_left->get_data().size());
288
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
31
                              typename PrimitiveTypeTraits<PT>::CppType,
290
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
31
                                                     vec_res);
292
293
31
            block.replace_by_position(result, std::move(col_res));
294
503
        } else if (!left_is_const && right_is_const) {
295
503
            auto col_res = ColumnUInt8::create();
296
297
503
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
503
            vec_res.resize(col_left->size());
299
503
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
503
                              typename PrimitiveTypeTraits<PT>::CppType,
301
503
                              Op<PT>>::vector_constant(col_left->get_data(),
302
503
                                                       col_right->get_element(0), vec_res);
303
304
503
            block.replace_by_position(result, std::move(col_res));
305
503
        } 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
534
        return Status::OK();
318
534
    }
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
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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
571
                            const ColumnPtr& col_right_ptr) const {
275
571
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
571
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
571
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
571
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
571
        DCHECK(!(left_is_const && right_is_const));
282
283
571
        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
570
        } else if (!left_is_const && right_is_const) {
295
564
            auto col_res = ColumnUInt8::create();
296
297
564
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
564
            vec_res.resize(col_left->size());
299
564
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
564
                              typename PrimitiveTypeTraits<PT>::CppType,
301
564
                              Op<PT>>::vector_constant(col_left->get_data(),
302
564
                                                       col_right->get_element(0), vec_res);
303
304
564
            block.replace_by_position(result, std::move(col_res));
305
564
        } else if (left_is_const && !right_is_const) {
306
6
            auto col_res = ColumnUInt8::create();
307
308
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
6
            vec_res.resize(col_right->size());
310
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
6
                              typename PrimitiveTypeTraits<PT>::CppType,
312
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
6
                                                       col_right->get_data(), vec_res);
314
315
6
            block.replace_by_position(result, std::move(col_res));
316
6
        }
317
571
        return Status::OK();
318
571
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
142
                            const ColumnPtr& col_right_ptr) const {
275
142
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
142
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
142
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
142
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
142
        DCHECK(!(left_is_const && right_is_const));
282
283
142
        if (!left_is_const && !right_is_const) {
284
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
136
        } else if (!left_is_const && right_is_const) {
295
136
            auto col_res = ColumnUInt8::create();
296
297
136
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
136
            vec_res.resize(col_left->size());
299
136
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
136
                              typename PrimitiveTypeTraits<PT>::CppType,
301
136
                              Op<PT>>::vector_constant(col_left->get_data(),
302
136
                                                       col_right->get_element(0), vec_res);
303
304
136
            block.replace_by_position(result, std::move(col_res));
305
136
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
142
        return Status::OK();
318
142
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
56
                            const ColumnPtr& col_right_ptr) const {
275
56
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
56
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
56
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
56
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
56
        DCHECK(!(left_is_const && right_is_const));
282
283
56
        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
56
        } else if (!left_is_const && right_is_const) {
295
56
            auto col_res = ColumnUInt8::create();
296
297
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
56
            vec_res.resize(col_left->size());
299
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
56
                              typename PrimitiveTypeTraits<PT>::CppType,
301
56
                              Op<PT>>::vector_constant(col_left->get_data(),
302
56
                                                       col_right->get_element(0), vec_res);
303
304
56
            block.replace_by_position(result, std::move(col_res));
305
56
        } 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
56
        return Status::OK();
318
56
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
46
                            const ColumnPtr& col_right_ptr) const {
275
46
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
46
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
46
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
46
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
46
        DCHECK(!(left_is_const && right_is_const));
282
283
46
        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
46
        } else if (!left_is_const && right_is_const) {
295
46
            auto col_res = ColumnUInt8::create();
296
297
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
46
            vec_res.resize(col_left->size());
299
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
46
                              typename PrimitiveTypeTraits<PT>::CppType,
301
46
                              Op<PT>>::vector_constant(col_left->get_data(),
302
46
                                                       col_right->get_element(0), vec_res);
303
304
46
            block.replace_by_position(result, std::move(col_res));
305
46
        } 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
46
        return Status::OK();
318
46
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
515
                            const ColumnPtr& col_right_ptr) const {
275
515
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
515
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
515
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
515
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
515
        DCHECK(!(left_is_const && right_is_const));
282
283
515
        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
512
        } else if (!left_is_const && right_is_const) {
295
512
            auto col_res = ColumnUInt8::create();
296
297
512
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
512
            vec_res.resize(col_left->size());
299
512
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
512
                              typename PrimitiveTypeTraits<PT>::CppType,
301
512
                              Op<PT>>::vector_constant(col_left->get_data(),
302
512
                                                       col_right->get_element(0), vec_res);
303
304
512
            block.replace_by_position(result, std::move(col_res));
305
512
        } 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
515
        return Status::OK();
318
515
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
161
                            const ColumnPtr& col_right_ptr) const {
275
161
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
161
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
161
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
161
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
161
        DCHECK(!(left_is_const && right_is_const));
282
283
161
        if (!left_is_const && !right_is_const) {
284
9
            auto col_res = ColumnUInt8::create();
285
286
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
9
            vec_res.resize(col_left->get_data().size());
288
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
9
                              typename PrimitiveTypeTraits<PT>::CppType,
290
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
9
                                                     vec_res);
292
293
9
            block.replace_by_position(result, std::move(col_res));
294
152
        } else if (!left_is_const && right_is_const) {
295
152
            auto col_res = ColumnUInt8::create();
296
297
152
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
152
            vec_res.resize(col_left->size());
299
152
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
152
                              typename PrimitiveTypeTraits<PT>::CppType,
301
152
                              Op<PT>>::vector_constant(col_left->get_data(),
302
152
                                                       col_right->get_element(0), vec_res);
303
304
152
            block.replace_by_position(result, std::move(col_res));
305
152
        } 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
161
        return Status::OK();
318
161
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
35
                            const ColumnPtr& col_right_ptr) const {
275
35
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
35
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
35
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
35
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
35
        DCHECK(!(left_is_const && right_is_const));
282
283
35
        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
35
        } else if (!left_is_const && right_is_const) {
295
35
            auto col_res = ColumnUInt8::create();
296
297
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
35
            vec_res.resize(col_left->size());
299
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
35
                              typename PrimitiveTypeTraits<PT>::CppType,
301
35
                              Op<PT>>::vector_constant(col_left->get_data(),
302
35
                                                       col_right->get_element(0), vec_res);
303
304
35
            block.replace_by_position(result, std::move(col_res));
305
35
        } 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
35
        return Status::OK();
318
35
    }
_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
24
                            const ColumnPtr& col_right_ptr) const {
275
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
24
        DCHECK(!(left_is_const && right_is_const));
282
283
24
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
20
        } else if (!left_is_const && right_is_const) {
295
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
24
        return Status::OK();
318
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
285
                            const ColumnPtr& col_right_ptr) const {
275
285
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
285
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
285
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
285
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
285
        DCHECK(!(left_is_const && right_is_const));
282
283
285
        if (!left_is_const && !right_is_const) {
284
23
            auto col_res = ColumnUInt8::create();
285
286
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
23
            vec_res.resize(col_left->get_data().size());
288
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
23
                              typename PrimitiveTypeTraits<PT>::CppType,
290
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
23
                                                     vec_res);
292
293
23
            block.replace_by_position(result, std::move(col_res));
294
262
        } else if (!left_is_const && right_is_const) {
295
262
            auto col_res = ColumnUInt8::create();
296
297
262
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
262
            vec_res.resize(col_left->size());
299
262
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
262
                              typename PrimitiveTypeTraits<PT>::CppType,
301
262
                              Op<PT>>::vector_constant(col_left->get_data(),
302
262
                                                       col_right->get_element(0), vec_res);
303
304
262
            block.replace_by_position(result, std::move(col_res));
305
262
        } 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
285
        return Status::OK();
318
285
    }
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.21k
                            const ColumnPtr& col_right_ptr) const {
275
2.21k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.21k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.21k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.21k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.21k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.21k
        if (!left_is_const && !right_is_const) {
284
1.78k
            auto col_res = ColumnUInt8::create();
285
286
1.78k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.78k
            vec_res.resize(col_left->get_data().size());
288
1.78k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.78k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.78k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.78k
                                                     vec_res);
292
293
1.78k
            block.replace_by_position(result, std::move(col_res));
294
1.78k
        } else if (!left_is_const && right_is_const) {
295
432
            auto col_res = ColumnUInt8::create();
296
297
432
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
432
            vec_res.resize(col_left->size());
299
432
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
432
                              typename PrimitiveTypeTraits<PT>::CppType,
301
432
                              Op<PT>>::vector_constant(col_left->get_data(),
302
432
                                                       col_right->get_element(0), vec_res);
303
304
432
            block.replace_by_position(result, std::move(col_res));
305
432
        } 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.21k
        return Status::OK();
318
2.21k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
293
                            const ColumnPtr& col_right_ptr) const {
275
293
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
293
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
293
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
293
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
293
        DCHECK(!(left_is_const && right_is_const));
282
283
293
        if (!left_is_const && !right_is_const) {
284
234
            auto col_res = ColumnUInt8::create();
285
286
234
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
234
            vec_res.resize(col_left->get_data().size());
288
234
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
234
                              typename PrimitiveTypeTraits<PT>::CppType,
290
234
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
234
                                                     vec_res);
292
293
234
            block.replace_by_position(result, std::move(col_res));
294
234
        } else if (!left_is_const && right_is_const) {
295
59
            auto col_res = ColumnUInt8::create();
296
297
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
59
            vec_res.resize(col_left->size());
299
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
59
                              typename PrimitiveTypeTraits<PT>::CppType,
301
59
                              Op<PT>>::vector_constant(col_left->get_data(),
302
59
                                                       col_right->get_element(0), vec_res);
303
304
59
            block.replace_by_position(result, std::move(col_res));
305
59
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
293
        return Status::OK();
318
293
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
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
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
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.08k
                            const ColumnPtr& col_right_ptr) const {
275
2.08k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.08k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.08k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.08k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.08k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.08k
        if (!left_is_const && !right_is_const) {
284
116
            auto col_res = ColumnUInt8::create();
285
286
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
116
            vec_res.resize(col_left->get_data().size());
288
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
116
                              typename PrimitiveTypeTraits<PT>::CppType,
290
116
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
116
                                                     vec_res);
292
293
116
            block.replace_by_position(result, std::move(col_res));
294
1.97k
        } else if (!left_is_const && right_is_const) {
295
1.73k
            auto col_res = ColumnUInt8::create();
296
297
1.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.73k
            vec_res.resize(col_left->size());
299
1.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.73k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.73k
                                                       col_right->get_element(0), vec_res);
303
304
1.73k
            block.replace_by_position(result, std::move(col_res));
305
1.73k
        } else if (left_is_const && !right_is_const) {
306
240
            auto col_res = ColumnUInt8::create();
307
308
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
240
            vec_res.resize(col_right->size());
310
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
240
                              typename PrimitiveTypeTraits<PT>::CppType,
312
240
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
240
                                                       col_right->get_data(), vec_res);
314
315
240
            block.replace_by_position(result, std::move(col_res));
316
240
        }
317
2.08k
        return Status::OK();
318
2.08k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
120
                            const ColumnPtr& col_right_ptr) const {
275
120
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
120
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
120
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
120
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
120
        DCHECK(!(left_is_const && right_is_const));
282
283
120
        if (!left_is_const && !right_is_const) {
284
106
            auto col_res = ColumnUInt8::create();
285
286
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
106
            vec_res.resize(col_left->get_data().size());
288
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
106
                              typename PrimitiveTypeTraits<PT>::CppType,
290
106
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
106
                                                     vec_res);
292
293
106
            block.replace_by_position(result, std::move(col_res));
294
106
        } else if (!left_is_const && right_is_const) {
295
14
            auto col_res = ColumnUInt8::create();
296
297
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
14
            vec_res.resize(col_left->size());
299
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
14
                              typename PrimitiveTypeTraits<PT>::CppType,
301
14
                              Op<PT>>::vector_constant(col_left->get_data(),
302
14
                                                       col_right->get_element(0), vec_res);
303
304
14
            block.replace_by_position(result, std::move(col_res));
305
14
        } 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
120
        return Status::OK();
318
120
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
835
                            const ColumnPtr& col_right_ptr) const {
275
835
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
835
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
835
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
835
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
835
        DCHECK(!(left_is_const && right_is_const));
282
283
835
        if (!left_is_const && !right_is_const) {
284
151
            auto col_res = ColumnUInt8::create();
285
286
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
151
            vec_res.resize(col_left->get_data().size());
288
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
151
                              typename PrimitiveTypeTraits<PT>::CppType,
290
151
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
151
                                                     vec_res);
292
293
151
            block.replace_by_position(result, std::move(col_res));
294
684
        } else if (!left_is_const && right_is_const) {
295
659
            auto col_res = ColumnUInt8::create();
296
297
659
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
659
            vec_res.resize(col_left->size());
299
659
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
659
                              typename PrimitiveTypeTraits<PT>::CppType,
301
659
                              Op<PT>>::vector_constant(col_left->get_data(),
302
659
                                                       col_right->get_element(0), vec_res);
303
304
659
            block.replace_by_position(result, std::move(col_res));
305
659
        } else if (left_is_const && !right_is_const) {
306
25
            auto col_res = ColumnUInt8::create();
307
308
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
25
            vec_res.resize(col_right->size());
310
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
25
                              typename PrimitiveTypeTraits<PT>::CppType,
312
25
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
25
                                                       col_right->get_data(), vec_res);
314
315
25
            block.replace_by_position(result, std::move(col_res));
316
25
        }
317
835
        return Status::OK();
318
835
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
778
                            const ColumnPtr& col_right_ptr) const {
275
778
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
778
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
778
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
778
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
778
        DCHECK(!(left_is_const && right_is_const));
282
283
778
        if (!left_is_const && !right_is_const) {
284
199
            auto col_res = ColumnUInt8::create();
285
286
199
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
199
            vec_res.resize(col_left->get_data().size());
288
199
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
199
                              typename PrimitiveTypeTraits<PT>::CppType,
290
199
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
199
                                                     vec_res);
292
293
199
            block.replace_by_position(result, std::move(col_res));
294
579
        } else if (!left_is_const && right_is_const) {
295
512
            auto col_res = ColumnUInt8::create();
296
297
512
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
512
            vec_res.resize(col_left->size());
299
512
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
512
                              typename PrimitiveTypeTraits<PT>::CppType,
301
512
                              Op<PT>>::vector_constant(col_left->get_data(),
302
512
                                                       col_right->get_element(0), vec_res);
303
304
512
            block.replace_by_position(result, std::move(col_res));
305
512
        } else if (left_is_const && !right_is_const) {
306
67
            auto col_res = ColumnUInt8::create();
307
308
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
67
            vec_res.resize(col_right->size());
310
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
67
                              typename PrimitiveTypeTraits<PT>::CppType,
312
67
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
67
                                                       col_right->get_data(), vec_res);
314
315
67
            block.replace_by_position(result, std::move(col_res));
316
67
        }
317
778
        return Status::OK();
318
778
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
201
                            const ColumnPtr& col_right_ptr) const {
275
201
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
201
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
201
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
201
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
201
        DCHECK(!(left_is_const && right_is_const));
282
283
201
        if (!left_is_const && !right_is_const) {
284
131
            auto col_res = ColumnUInt8::create();
285
286
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
131
            vec_res.resize(col_left->get_data().size());
288
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
131
                              typename PrimitiveTypeTraits<PT>::CppType,
290
131
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
131
                                                     vec_res);
292
293
131
            block.replace_by_position(result, std::move(col_res));
294
131
        } else if (!left_is_const && right_is_const) {
295
54
            auto col_res = ColumnUInt8::create();
296
297
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
54
            vec_res.resize(col_left->size());
299
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
54
                              typename PrimitiveTypeTraits<PT>::CppType,
301
54
                              Op<PT>>::vector_constant(col_left->get_data(),
302
54
                                                       col_right->get_element(0), vec_res);
303
304
54
            block.replace_by_position(result, std::move(col_res));
305
54
        } else if (left_is_const && !right_is_const) {
306
16
            auto col_res = ColumnUInt8::create();
307
308
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
16
            vec_res.resize(col_right->size());
310
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
16
                              typename PrimitiveTypeTraits<PT>::CppType,
312
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
16
                                                       col_right->get_data(), vec_res);
314
315
16
            block.replace_by_position(result, std::move(col_res));
316
16
        }
317
201
        return Status::OK();
318
201
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
18
                            const ColumnPtr& col_right_ptr) const {
275
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
18
        DCHECK(!(left_is_const && right_is_const));
282
283
18
        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
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
18
        return Status::OK();
318
18
    }
_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
119
                            const ColumnPtr& col_right_ptr) const {
275
119
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
119
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
119
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
119
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
119
        DCHECK(!(left_is_const && right_is_const));
282
283
119
        if (!left_is_const && !right_is_const) {
284
119
            auto col_res = ColumnUInt8::create();
285
286
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
119
            vec_res.resize(col_left->get_data().size());
288
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
119
                              typename PrimitiveTypeTraits<PT>::CppType,
290
119
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
119
                                                     vec_res);
292
293
119
            block.replace_by_position(result, std::move(col_res));
294
119
        } 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
119
        return Status::OK();
318
119
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
380
                            const ColumnPtr& col_right_ptr) const {
275
380
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
380
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
380
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
380
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
380
        DCHECK(!(left_is_const && right_is_const));
282
283
380
        if (!left_is_const && !right_is_const) {
284
131
            auto col_res = ColumnUInt8::create();
285
286
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
131
            vec_res.resize(col_left->get_data().size());
288
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
131
                              typename PrimitiveTypeTraits<PT>::CppType,
290
131
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
131
                                                     vec_res);
292
293
131
            block.replace_by_position(result, std::move(col_res));
294
249
        } else if (!left_is_const && right_is_const) {
295
249
            auto col_res = ColumnUInt8::create();
296
297
249
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
249
            vec_res.resize(col_left->size());
299
249
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
249
                              typename PrimitiveTypeTraits<PT>::CppType,
301
249
                              Op<PT>>::vector_constant(col_left->get_data(),
302
249
                                                       col_right->get_element(0), vec_res);
303
304
249
            block.replace_by_position(result, std::move(col_res));
305
249
        } 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
380
        return Status::OK();
318
380
    }
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
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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
566
                            const ColumnPtr& col_right_ptr) const {
275
566
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
566
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
566
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
566
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
566
        DCHECK(!(left_is_const && right_is_const));
282
283
566
        if (!left_is_const && !right_is_const) {
284
413
            auto col_res = ColumnUInt8::create();
285
286
413
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
413
            vec_res.resize(col_left->get_data().size());
288
413
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
413
                              typename PrimitiveTypeTraits<PT>::CppType,
290
413
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
413
                                                     vec_res);
292
293
413
            block.replace_by_position(result, std::move(col_res));
294
413
        } else if (!left_is_const && right_is_const) {
295
149
            auto col_res = ColumnUInt8::create();
296
297
149
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
149
            vec_res.resize(col_left->size());
299
149
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
149
                              typename PrimitiveTypeTraits<PT>::CppType,
301
149
                              Op<PT>>::vector_constant(col_left->get_data(),
302
149
                                                       col_right->get_element(0), vec_res);
303
304
149
            block.replace_by_position(result, std::move(col_res));
305
149
        } 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
566
        return Status::OK();
318
566
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
44
                            const ColumnPtr& col_right_ptr) const {
275
44
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
44
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
44
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
44
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
44
        DCHECK(!(left_is_const && right_is_const));
282
283
44
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
44
        } else if (!left_is_const && right_is_const) {
295
44
            auto col_res = ColumnUInt8::create();
296
297
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
44
            vec_res.resize(col_left->size());
299
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
44
                              typename PrimitiveTypeTraits<PT>::CppType,
301
44
                              Op<PT>>::vector_constant(col_left->get_data(),
302
44
                                                       col_right->get_element(0), vec_res);
303
304
44
            block.replace_by_position(result, std::move(col_res));
305
44
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
44
        return Status::OK();
318
44
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_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
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
47
        } else if (!left_is_const && right_is_const) {
295
47
            auto col_res = ColumnUInt8::create();
296
297
47
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
47
            vec_res.resize(col_left->size());
299
47
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
47
                              typename PrimitiveTypeTraits<PT>::CppType,
301
47
                              Op<PT>>::vector_constant(col_left->get_data(),
302
47
                                                       col_right->get_element(0), vec_res);
303
304
47
            block.replace_by_position(result, std::move(col_res));
305
47
        } 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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
38
                            const ColumnPtr& col_right_ptr) const {
275
38
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
38
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
38
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
38
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
38
        DCHECK(!(left_is_const && right_is_const));
282
283
38
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
38
        } else if (!left_is_const && right_is_const) {
295
38
            auto col_res = ColumnUInt8::create();
296
297
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
38
            vec_res.resize(col_left->size());
299
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
38
                              typename PrimitiveTypeTraits<PT>::CppType,
301
38
                              Op<PT>>::vector_constant(col_left->get_data(),
302
38
                                                       col_right->get_element(0), vec_res);
303
304
38
            block.replace_by_position(result, std::move(col_res));
305
38
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
38
        return Status::OK();
318
38
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
5.97k
                            const ColumnPtr& col_right_ptr) const {
275
5.97k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
5.97k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
5.97k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
5.97k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
5.97k
        DCHECK(!(left_is_const && right_is_const));
282
283
5.97k
        if (!left_is_const && !right_is_const) {
284
10
            auto col_res = ColumnUInt8::create();
285
286
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
10
            vec_res.resize(col_left->get_data().size());
288
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
10
                              typename PrimitiveTypeTraits<PT>::CppType,
290
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
10
                                                     vec_res);
292
293
10
            block.replace_by_position(result, std::move(col_res));
294
5.96k
        } else if (!left_is_const && right_is_const) {
295
5.67k
            auto col_res = ColumnUInt8::create();
296
297
5.67k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.67k
            vec_res.resize(col_left->size());
299
5.67k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.67k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.67k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.67k
                                                       col_right->get_element(0), vec_res);
303
304
5.67k
            block.replace_by_position(result, std::move(col_res));
305
5.67k
        } else if (left_is_const && !right_is_const) {
306
290
            auto col_res = ColumnUInt8::create();
307
308
290
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
290
            vec_res.resize(col_right->size());
310
290
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
290
                              typename PrimitiveTypeTraits<PT>::CppType,
312
290
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
290
                                                       col_right->get_data(), vec_res);
314
315
290
            block.replace_by_position(result, std::move(col_res));
316
290
        }
317
5.97k
        return Status::OK();
318
5.97k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
295
                            const ColumnPtr& col_right_ptr) const {
275
295
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
295
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
295
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
295
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
295
        DCHECK(!(left_is_const && right_is_const));
282
283
295
        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
265
        } else if (!left_is_const && right_is_const) {
295
217
            auto col_res = ColumnUInt8::create();
296
297
217
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
217
            vec_res.resize(col_left->size());
299
217
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
217
                              typename PrimitiveTypeTraits<PT>::CppType,
301
217
                              Op<PT>>::vector_constant(col_left->get_data(),
302
217
                                                       col_right->get_element(0), vec_res);
303
304
217
            block.replace_by_position(result, std::move(col_res));
305
217
        } else if (left_is_const && !right_is_const) {
306
48
            auto col_res = ColumnUInt8::create();
307
308
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
48
            vec_res.resize(col_right->size());
310
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
48
                              typename PrimitiveTypeTraits<PT>::CppType,
312
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
48
                                                       col_right->get_data(), vec_res);
314
315
48
            block.replace_by_position(result, std::move(col_res));
316
48
        }
317
295
        return Status::OK();
318
295
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
32
                            const ColumnPtr& col_right_ptr) const {
275
32
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
32
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
32
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
32
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
32
        DCHECK(!(left_is_const && right_is_const));
282
283
32
        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
32
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
32
        return Status::OK();
318
32
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10
                            const ColumnPtr& col_right_ptr) const {
275
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10
        DCHECK(!(left_is_const && right_is_const));
282
283
10
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10
        return Status::OK();
318
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20
                            const ColumnPtr& col_right_ptr) const {
275
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20
        DCHECK(!(left_is_const && right_is_const));
282
283
20
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
20
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
20
        return Status::OK();
318
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
183
                            const ColumnPtr& col_right_ptr) const {
275
183
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
183
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
183
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
183
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
183
        DCHECK(!(left_is_const && right_is_const));
282
283
183
        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
163
        } else if (!left_is_const && right_is_const) {
295
162
            auto col_res = ColumnUInt8::create();
296
297
162
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
162
            vec_res.resize(col_left->size());
299
162
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
162
                              typename PrimitiveTypeTraits<PT>::CppType,
301
162
                              Op<PT>>::vector_constant(col_left->get_data(),
302
162
                                                       col_right->get_element(0), vec_res);
303
304
162
            block.replace_by_position(result, std::move(col_res));
305
162
        } else if (left_is_const && !right_is_const) {
306
1
            auto col_res = ColumnUInt8::create();
307
308
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
1
            vec_res.resize(col_right->size());
310
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
1
                              typename PrimitiveTypeTraits<PT>::CppType,
312
1
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
1
                                                       col_right->get_data(), vec_res);
314
315
1
            block.replace_by_position(result, std::move(col_res));
316
1
        }
317
183
        return Status::OK();
318
183
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
319
320
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
321
3.21k
                           const ColumnWithTypeAndName& col_right) const {
322
3.21k
        auto call = [&](const auto& type) -> bool {
323
3.21k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.21k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.21k
                    block, result, col_left, col_right);
326
3.21k
            return true;
327
3.21k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
145
        auto call = [&](const auto& type) -> bool {
323
145
            using DispatchType = std::decay_t<decltype(type)>;
324
145
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
145
                    block, result, col_left, col_right);
326
145
            return true;
327
145
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
144
        auto call = [&](const auto& type) -> bool {
323
144
            using DispatchType = std::decay_t<decltype(type)>;
324
144
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
144
                    block, result, col_left, col_right);
326
144
            return true;
327
144
        };
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
807
        auto call = [&](const auto& type) -> bool {
323
807
            using DispatchType = std::decay_t<decltype(type)>;
324
807
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
807
                    block, result, col_left, col_right);
326
807
            return true;
327
807
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
33
        auto call = [&](const auto& type) -> bool {
323
33
            using DispatchType = std::decay_t<decltype(type)>;
324
33
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
33
                    block, result, col_left, col_right);
326
33
            return true;
327
33
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
28
        auto call = [&](const auto& type) -> bool {
323
28
            using DispatchType = std::decay_t<decltype(type)>;
324
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
28
                    block, result, col_left, col_right);
326
28
            return true;
327
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
8
        auto call = [&](const auto& type) -> bool {
323
8
            using DispatchType = std::decay_t<decltype(type)>;
324
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
8
                    block, result, col_left, col_right);
326
8
            return true;
327
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
66
        auto call = [&](const auto& type) -> bool {
323
66
            using DispatchType = std::decay_t<decltype(type)>;
324
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
66
                    block, result, col_left, col_right);
326
66
            return true;
327
66
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
763
        auto call = [&](const auto& type) -> bool {
323
763
            using DispatchType = std::decay_t<decltype(type)>;
324
763
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
763
                    block, result, col_left, col_right);
326
763
            return true;
327
763
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
2
        auto call = [&](const auto& type) -> bool {
323
2
            using DispatchType = std::decay_t<decltype(type)>;
324
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2
                    block, result, col_left, col_right);
326
2
            return true;
327
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
65
        auto call = [&](const auto& type) -> bool {
323
65
            using DispatchType = std::decay_t<decltype(type)>;
324
65
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
65
                    block, result, col_left, col_right);
326
65
            return true;
327
65
        };
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
97
        auto call = [&](const auto& type) -> bool {
323
97
            using DispatchType = std::decay_t<decltype(type)>;
324
97
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
97
                    block, result, col_left, col_right);
326
97
            return true;
327
97
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
27
        auto call = [&](const auto& type) -> bool {
323
27
            using DispatchType = std::decay_t<decltype(type)>;
324
27
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
27
                    block, result, col_left, col_right);
326
27
            return true;
327
27
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
195
        auto call = [&](const auto& type) -> bool {
323
195
            using DispatchType = std::decay_t<decltype(type)>;
324
195
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
195
                    block, result, col_left, col_right);
326
195
            return true;
327
195
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
202
        auto call = [&](const auto& type) -> bool {
323
202
            using DispatchType = std::decay_t<decltype(type)>;
324
202
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
202
                    block, result, col_left, col_right);
326
202
            return true;
327
202
        };
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
346
        auto call = [&](const auto& type) -> bool {
323
346
            using DispatchType = std::decay_t<decltype(type)>;
324
346
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
346
                    block, result, col_left, col_right);
326
346
            return true;
327
346
        };
_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
5
        auto call = [&](const auto& type) -> bool {
323
5
            using DispatchType = std::decay_t<decltype(type)>;
324
5
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
5
                    block, result, col_left, col_right);
326
5
            return true;
327
5
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
100
        auto call = [&](const auto& type) -> bool {
323
100
            using DispatchType = std::decay_t<decltype(type)>;
324
100
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
100
                    block, result, col_left, col_right);
326
100
            return true;
327
100
        };
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
68
        auto call = [&](const auto& type) -> bool {
323
68
            using DispatchType = std::decay_t<decltype(type)>;
324
68
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
68
                    block, result, col_left, col_right);
326
68
            return true;
327
68
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
22
        auto call = [&](const auto& type) -> bool {
323
22
            using DispatchType = std::decay_t<decltype(type)>;
324
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
22
                    block, result, col_left, col_right);
326
22
            return true;
327
22
        };
328
329
3.21k
        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.21k
        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.21k
        return Status::OK();
340
3.21k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.12k
                           const ColumnWithTypeAndName& col_right) const {
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
        };
328
329
1.12k
        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.12k
        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.12k
        return Status::OK();
340
1.12k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
118
                           const ColumnWithTypeAndName& col_right) const {
322
118
        auto call = [&](const auto& type) -> bool {
323
118
            using DispatchType = std::decay_t<decltype(type)>;
324
118
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
118
                    block, result, col_left, col_right);
326
118
            return true;
327
118
        };
328
329
118
        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
118
        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
118
        return Status::OK();
340
118
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
839
                           const ColumnWithTypeAndName& col_right) const {
322
839
        auto call = [&](const auto& type) -> bool {
323
839
            using DispatchType = std::decay_t<decltype(type)>;
324
839
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
839
                    block, result, col_left, col_right);
326
839
            return true;
327
839
        };
328
329
839
        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
839
        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
839
        return Status::OK();
340
839
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
190
                           const ColumnWithTypeAndName& col_right) const {
322
190
        auto call = [&](const auto& type) -> bool {
323
190
            using DispatchType = std::decay_t<decltype(type)>;
324
190
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
190
                    block, result, col_left, col_right);
326
190
            return true;
327
190
        };
328
329
190
        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
190
        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
190
        return Status::OK();
340
190
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
744
                           const ColumnWithTypeAndName& col_right) const {
322
744
        auto call = [&](const auto& type) -> bool {
323
744
            using DispatchType = std::decay_t<decltype(type)>;
324
744
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
744
                    block, result, col_left, col_right);
326
744
            return true;
327
744
        };
328
329
744
        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
744
        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
744
        return Status::OK();
340
744
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
195
                           const ColumnWithTypeAndName& col_right) const {
322
195
        auto call = [&](const auto& type) -> bool {
323
195
            using DispatchType = std::decay_t<decltype(type)>;
324
195
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
195
                    block, result, col_left, col_right);
326
195
            return true;
327
195
        };
328
329
195
        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
195
        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
195
        return Status::OK();
340
195
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
12.0k
                          const IColumn* c1) const {
344
12.0k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
12.0k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
12.0k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
12.0k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
12.0k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
12.0k
        DCHECK(!(c0_const && c1_const));
353
12.0k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
12.0k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
12.0k
        ColumnString::Offset c0_const_size = 0;
356
12.0k
        ColumnString::Offset c1_const_size = 0;
357
358
12.0k
        if (c0_const) {
359
4
            const ColumnString* c0_const_string =
360
4
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
4
            if (c0_const_string) {
363
4
                c0_const_chars = &c0_const_string->get_chars();
364
4
                c0_const_size = c0_const_string->get_offsets()[0];
365
4
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
4
        }
370
371
12.0k
        if (c1_const) {
372
11.0k
            const ColumnString* c1_const_string =
373
11.0k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
11.0k
            if (c1_const_string) {
376
11.0k
                c1_const_chars = &c1_const_string->get_chars();
377
11.0k
                c1_const_size = c1_const_string->get_offsets()[0];
378
11.0k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
11.0k
        }
383
384
12.0k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
12.0k
        auto c_res = ColumnUInt8::create();
387
12.0k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
12.0k
        vec_res.resize(c0->size());
389
390
12.0k
        if (c0_string && c1_string) {
391
973
            StringImpl::string_vector_string_vector(
392
973
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
973
                    c1_string->get_offsets(), vec_res);
394
11.0k
        } else if (c0_string && c1_const) {
395
11.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
11.0k
                                               *c1_const_chars, c1_const_size, vec_res);
397
11.0k
        } else if (c0_const && c1_string) {
398
4
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
4
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
4
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
12.0k
        block.replace_by_position(result, std::move(c_res));
406
12.0k
        return Status::OK();
407
12.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
10.6k
                          const IColumn* c1) const {
344
10.6k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
10.6k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
10.6k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
10.6k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
10.6k
        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
10.6k
        DCHECK(!(c0_const && c1_const));
353
10.6k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
10.6k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
10.6k
        ColumnString::Offset c0_const_size = 0;
356
10.6k
        ColumnString::Offset c1_const_size = 0;
357
358
10.6k
        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
10.6k
        if (c1_const) {
372
10.1k
            const ColumnString* c1_const_string =
373
10.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
10.1k
            if (c1_const_string) {
376
10.1k
                c1_const_chars = &c1_const_string->get_chars();
377
10.1k
                c1_const_size = c1_const_string->get_offsets()[0];
378
10.1k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
10.1k
        }
383
384
10.6k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
10.6k
        auto c_res = ColumnUInt8::create();
387
10.6k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
10.6k
        vec_res.resize(c0->size());
389
390
10.6k
        if (c0_string && c1_string) {
391
500
            StringImpl::string_vector_string_vector(
392
500
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
500
                    c1_string->get_offsets(), vec_res);
394
10.1k
        } else if (c0_string && c1_const) {
395
10.1k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
10.1k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
10.6k
        block.replace_by_position(result, std::move(c_res));
406
10.6k
        return Status::OK();
407
10.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
94
                          const IColumn* c1) const {
344
94
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
94
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
94
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
94
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
94
        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
94
        DCHECK(!(c0_const && c1_const));
353
94
        const ColumnString::Chars* c0_const_chars = nullptr;
354
94
        const ColumnString::Chars* c1_const_chars = nullptr;
355
94
        ColumnString::Offset c0_const_size = 0;
356
94
        ColumnString::Offset c1_const_size = 0;
357
358
94
        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
94
        if (c1_const) {
372
93
            const ColumnString* c1_const_string =
373
93
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
93
            if (c1_const_string) {
376
93
                c1_const_chars = &c1_const_string->get_chars();
377
93
                c1_const_size = c1_const_string->get_offsets()[0];
378
93
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
93
        }
383
384
94
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
94
        auto c_res = ColumnUInt8::create();
387
94
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
94
        vec_res.resize(c0->size());
389
390
94
        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
93
        } else if (c0_string && c1_const) {
395
93
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
93
                                               *c1_const_chars, c1_const_size, vec_res);
397
93
        } 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
94
        block.replace_by_position(result, std::move(c_res));
406
94
        return Status::OK();
407
94
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
197
                          const IColumn* c1) const {
344
197
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
197
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
197
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
197
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
197
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
197
        DCHECK(!(c0_const && c1_const));
353
197
        const ColumnString::Chars* c0_const_chars = nullptr;
354
197
        const ColumnString::Chars* c1_const_chars = nullptr;
355
197
        ColumnString::Offset c0_const_size = 0;
356
197
        ColumnString::Offset c1_const_size = 0;
357
358
197
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
197
        if (c1_const) {
372
195
            const ColumnString* c1_const_string =
373
195
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
195
            if (c1_const_string) {
376
195
                c1_const_chars = &c1_const_string->get_chars();
377
195
                c1_const_size = c1_const_string->get_offsets()[0];
378
195
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
195
        }
383
384
197
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
197
        auto c_res = ColumnUInt8::create();
387
197
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
197
        vec_res.resize(c0->size());
389
390
197
        if (c0_string && c1_string) {
391
2
            StringImpl::string_vector_string_vector(
392
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
2
                    c1_string->get_offsets(), vec_res);
394
195
        } else if (c0_string && c1_const) {
395
195
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
195
                                               *c1_const_chars, c1_const_size, vec_res);
397
195
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
197
        block.replace_by_position(result, std::move(c_res));
406
197
        return Status::OK();
407
197
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
321
                          const IColumn* c1) const {
344
321
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
321
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
321
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
321
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
321
        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
321
        DCHECK(!(c0_const && c1_const));
353
321
        const ColumnString::Chars* c0_const_chars = nullptr;
354
321
        const ColumnString::Chars* c1_const_chars = nullptr;
355
321
        ColumnString::Offset c0_const_size = 0;
356
321
        ColumnString::Offset c1_const_size = 0;
357
358
321
        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
321
        if (c1_const) {
372
285
            const ColumnString* c1_const_string =
373
285
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
285
            if (c1_const_string) {
376
285
                c1_const_chars = &c1_const_string->get_chars();
377
285
                c1_const_size = c1_const_string->get_offsets()[0];
378
285
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
285
        }
383
384
321
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
321
        auto c_res = ColumnUInt8::create();
387
321
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
321
        vec_res.resize(c0->size());
389
390
321
        if (c0_string && c1_string) {
391
36
            StringImpl::string_vector_string_vector(
392
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
36
                    c1_string->get_offsets(), vec_res);
394
285
        } else if (c0_string && c1_const) {
395
285
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
285
                                               *c1_const_chars, c1_const_size, vec_res);
397
285
        } 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
321
        block.replace_by_position(result, std::move(c_res));
406
321
        return Status::OK();
407
321
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
547
                          const IColumn* c1) const {
344
547
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
547
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
547
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
547
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
547
        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
547
        DCHECK(!(c0_const && c1_const));
353
547
        const ColumnString::Chars* c0_const_chars = nullptr;
354
547
        const ColumnString::Chars* c1_const_chars = nullptr;
355
547
        ColumnString::Offset c0_const_size = 0;
356
547
        ColumnString::Offset c1_const_size = 0;
357
358
547
        if (c0_const) {
359
4
            const ColumnString* c0_const_string =
360
4
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
4
            if (c0_const_string) {
363
4
                c0_const_chars = &c0_const_string->get_chars();
364
4
                c0_const_size = c0_const_string->get_offsets()[0];
365
4
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
4
        }
370
371
547
        if (c1_const) {
372
109
            const ColumnString* c1_const_string =
373
109
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
109
            if (c1_const_string) {
376
109
                c1_const_chars = &c1_const_string->get_chars();
377
109
                c1_const_size = c1_const_string->get_offsets()[0];
378
109
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
109
        }
383
384
547
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
547
        auto c_res = ColumnUInt8::create();
387
547
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
547
        vec_res.resize(c0->size());
389
390
547
        if (c0_string && c1_string) {
391
434
            StringImpl::string_vector_string_vector(
392
434
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
434
                    c1_string->get_offsets(), vec_res);
394
434
        } else if (c0_string && c1_const) {
395
109
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
109
                                               *c1_const_chars, c1_const_size, vec_res);
397
109
        } else if (c0_const && c1_string) {
398
4
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
4
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
4
                                               vec_res);
401
4
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
547
        block.replace_by_position(result, std::move(c_res));
406
547
        return Status::OK();
407
547
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
231
                          const IColumn* c1) const {
344
231
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
231
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
231
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
231
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
231
        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
231
        DCHECK(!(c0_const && c1_const));
353
231
        const ColumnString::Chars* c0_const_chars = nullptr;
354
231
        const ColumnString::Chars* c1_const_chars = nullptr;
355
231
        ColumnString::Offset c0_const_size = 0;
356
231
        ColumnString::Offset c1_const_size = 0;
357
358
231
        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
231
        if (c1_const) {
372
231
            const ColumnString* c1_const_string =
373
231
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
231
            if (c1_const_string) {
376
231
                c1_const_chars = &c1_const_string->get_chars();
377
231
                c1_const_size = c1_const_string->get_offsets()[0];
378
231
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
231
        }
383
384
231
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
231
        auto c_res = ColumnUInt8::create();
387
231
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
231
        vec_res.resize(c0->size());
389
390
231
        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
231
        } else if (c0_string && c1_const) {
395
231
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
231
                                               *c1_const_chars, c1_const_size, vec_res);
397
231
        } 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
231
        block.replace_by_position(result, std::move(c_res));
406
231
        return Status::OK();
407
231
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
137
                                         const IColumn* c1) const {
411
137
        bool c0_const = is_column_const(*c0);
412
137
        bool c1_const = is_column_const(*c1);
413
414
137
        DCHECK(!(c0_const && c1_const));
415
416
137
        auto c_res = ColumnUInt8::create();
417
137
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
137
        vec_res.resize(c0->size());
419
420
137
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
137
        } else if (c1_const) {
423
128
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
128
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
137
        block.replace_by_position(result, std::move(c_res));
429
137
    }
_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
56
                                         const IColumn* c1) const {
411
56
        bool c0_const = is_column_const(*c0);
412
56
        bool c1_const = is_column_const(*c1);
413
414
56
        DCHECK(!(c0_const && c1_const));
415
416
56
        auto c_res = ColumnUInt8::create();
417
56
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
56
        vec_res.resize(c0->size());
419
420
56
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
56
        } else if (c1_const) {
423
55
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
55
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
56
        block.replace_by_position(result, std::move(c_res));
429
56
    }
_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
36
                                         const IColumn* c1) const {
411
36
        bool c0_const = is_column_const(*c0);
412
36
        bool c1_const = is_column_const(*c1);
413
414
36
        DCHECK(!(c0_const && c1_const));
415
416
36
        auto c_res = ColumnUInt8::create();
417
36
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
36
        vec_res.resize(c0->size());
419
420
36
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
36
        } else if (c1_const) {
423
36
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
36
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
36
        block.replace_by_position(result, std::move(c_res));
429
36
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
137
                           const ColumnWithTypeAndName& c1) const {
433
137
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
137
        return Status::OK();
435
137
    }
_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
56
                           const ColumnWithTypeAndName& c1) const {
433
56
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
56
        return Status::OK();
435
56
    }
_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
36
                           const ColumnWithTypeAndName& c1) const {
433
36
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
36
        return Status::OK();
435
36
    }
436
437
public:
438
220
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
62
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
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
262k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
238k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.16k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
4.77k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
6.46k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
2.68k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
8.29k
    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
262k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
262k
        return std::make_shared<DataTypeUInt8>();
445
262k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
238k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
238k
        return std::make_shared<DataTypeUInt8>();
445
238k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.16k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.16k
        return std::make_shared<DataTypeUInt8>();
445
1.16k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
4.77k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
4.77k
        return std::make_shared<DataTypeUInt8>();
445
4.77k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.46k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.46k
        return std::make_shared<DataTypeUInt8>();
445
6.46k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
2.68k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
2.68k
        return std::make_shared<DataTypeUInt8>();
445
2.68k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
8.29k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
8.29k
        return std::make_shared<DataTypeUInt8>();
445
8.29k
    }
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.79k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.79k
        DCHECK(arguments.size() == 1);
454
1.79k
        DCHECK(data_type_with_names.size() == 1);
455
1.79k
        DCHECK(iterators.size() == 1);
456
1.79k
        auto* iter = iterators[0];
457
1.79k
        auto data_type_with_name = data_type_with_names[0];
458
1.79k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.79k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
445
            return Status::OK();
463
445
        }
464
1.34k
        segment_v2::InvertedIndexQueryType query_type;
465
1.34k
        std::string_view name_view(name);
466
1.34k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
893
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
893
        } else if (name_view == NameLess::name) {
469
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
342
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
244
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            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.35k
        if (segment_v2::is_range_query(query_type) &&
481
1.35k
            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.18k
        Field param_value;
486
1.18k
        arguments[0].column->get(0, param_value);
487
1.18k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.17k
        segment_v2::InvertedIndexParam param;
491
1.17k
        param.column_name = data_type_with_name.first;
492
1.17k
        param.column_type = data_type_with_name.second;
493
1.17k
        param.query_value = param_value;
494
1.17k
        param.query_type = query_type;
495
1.17k
        param.num_rows = num_rows;
496
1.17k
        param.roaring = std::make_shared<roaring::Roaring>();
497
1.17k
        param.analyzer_ctx = analyzer_ctx;
498
1.17k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
1.01k
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
1.01k
        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.01k
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
1.01k
        bitmap_result = result;
507
1.01k
        bitmap_result.mask_out_null();
508
509
1.01k
        if (name_view == NameNotEquals::name) {
510
62
            roaring::Roaring full_result;
511
62
            full_result.addRange(0, num_rows);
512
62
            bitmap_result.op_not(&full_result);
513
62
        }
514
515
1.01k
        return Status::OK();
516
1.01k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
911
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
911
        DCHECK(arguments.size() == 1);
454
911
        DCHECK(data_type_with_names.size() == 1);
455
911
        DCHECK(iterators.size() == 1);
456
911
        auto* iter = iterators[0];
457
911
        auto data_type_with_name = data_type_with_names[0];
458
911
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
911
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
87
            return Status::OK();
463
87
        }
464
824
        segment_v2::InvertedIndexQueryType query_type;
465
824
        std::string_view name_view(name);
466
824
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
823
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
823
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
1
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
1
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
1
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
1
        } else {
477
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
1
        }
479
480
823
        if (segment_v2::is_range_query(query_type) &&
481
823
            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
823
        Field param_value;
486
823
        arguments[0].column->get(0, param_value);
487
823
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
821
        segment_v2::InvertedIndexParam param;
491
821
        param.column_name = data_type_with_name.first;
492
821
        param.column_type = data_type_with_name.second;
493
821
        param.query_value = param_value;
494
821
        param.query_type = query_type;
495
821
        param.num_rows = num_rows;
496
821
        param.roaring = std::make_shared<roaring::Roaring>();
497
821
        param.analyzer_ctx = analyzer_ctx;
498
821
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
761
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
761
        if (iter->has_null()) {
501
761
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
761
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
761
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
761
        }
505
761
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
761
        bitmap_result = result;
507
761
        bitmap_result.mask_out_null();
508
509
761
        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
761
        return Status::OK();
516
761
    }
_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
62
            roaring::Roaring full_result;
511
62
            full_result.addRange(0, num_rows);
512
62
            bitmap_result.op_not(&full_result);
513
62
        }
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
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
62
            return Status::OK();
463
62
        }
464
113
        segment_v2::InvertedIndexQueryType query_type;
465
113
        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
113
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
113
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
114
        } else if (name_view == NameGreater::name) {
473
114
            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
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
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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
248
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
248
        DCHECK(arguments.size() == 1);
454
248
        DCHECK(data_type_with_names.size() == 1);
455
248
        DCHECK(iterators.size() == 1);
456
248
        auto* iter = iterators[0];
457
248
        auto data_type_with_name = data_type_with_names[0];
458
248
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
248
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
134
        segment_v2::InvertedIndexQueryType query_type;
465
134
        std::string_view name_view(name);
466
135
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
134
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
134
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
134
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            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
135
        if (segment_v2::is_range_query(query_type) &&
481
135
            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
76
        Field param_value;
486
76
        arguments[0].column->get(0, param_value);
487
76
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
76
        segment_v2::InvertedIndexParam param;
491
76
        param.column_name = data_type_with_name.first;
492
76
        param.column_type = data_type_with_name.second;
493
76
        param.query_value = param_value;
494
76
        param.query_type = query_type;
495
76
        param.num_rows = num_rows;
496
76
        param.roaring = std::make_shared<roaring::Roaring>();
497
76
        param.analyzer_ctx = analyzer_ctx;
498
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
34
        if (iter->has_null()) {
501
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
34
        }
505
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
34
        bitmap_result = result;
507
34
        bitmap_result.mask_out_null();
508
509
34
        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
34
        return Status::OK();
516
34
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
169
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
169
        DCHECK(arguments.size() == 1);
454
169
        DCHECK(data_type_with_names.size() == 1);
455
169
        DCHECK(iterators.size() == 1);
456
169
        auto* iter = iterators[0];
457
169
        auto data_type_with_name = data_type_with_names[0];
458
169
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
169
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
108
        segment_v2::InvertedIndexQueryType query_type;
465
108
        std::string_view name_view(name);
466
111
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
111
        } else if (name_view == NameLess::name) {
469
111
            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
111
        if (segment_v2::is_range_query(query_type) &&
481
111
            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
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        segment_v2::InvertedIndexParam param;
491
85
        param.column_name = data_type_with_name.first;
492
85
        param.column_type = data_type_with_name.second;
493
85
        param.query_value = param_value;
494
85
        param.query_type = query_type;
495
85
        param.num_rows = num_rows;
496
85
        param.roaring = std::make_shared<roaring::Roaring>();
497
85
        param.analyzer_ctx = analyzer_ctx;
498
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
66
        if (iter->has_null()) {
501
64
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
64
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
64
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
64
        }
505
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
66
        bitmap_result = result;
507
66
        bitmap_result.mask_out_null();
508
509
66
        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
66
        return Status::OK();
516
66
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
210
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
210
        DCHECK(arguments.size() == 1);
454
210
        DCHECK(data_type_with_names.size() == 1);
455
210
        DCHECK(iterators.size() == 1);
456
210
        auto* iter = iterators[0];
457
210
        auto data_type_with_name = data_type_with_names[0];
458
210
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
210
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
97
        segment_v2::InvertedIndexQueryType query_type;
465
97
        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
97
        } 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
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
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
20
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
20
        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
20
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
20
        bitmap_result = result;
507
20
        bitmap_result.mask_out_null();
508
509
20
        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
20
        return Status::OK();
516
20
    }
517
518
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
519
171k
                        uint32_t result, size_t input_rows_count) const override {
520
171k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
171k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
171k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
171k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
171k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
171k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
171k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
171k
        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
171k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
171k
            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
327k
        auto can_compare = [](PrimitiveType t) -> bool {
558
327k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
327k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
141k
        auto can_compare = [](PrimitiveType t) -> bool {
558
141k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
141k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
3.91k
        auto can_compare = [](PrimitiveType t) -> bool {
558
3.91k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
3.91k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
147k
        auto can_compare = [](PrimitiveType t) -> bool {
558
147k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
147k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
4.37k
        auto can_compare = [](PrimitiveType t) -> bool {
558
4.37k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
4.37k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
15.5k
        auto can_compare = [](PrimitiveType t) -> bool {
558
15.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
15.5k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
14.9k
        auto can_compare = [](PrimitiveType t) -> bool {
558
14.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
14.9k
        };
560
561
171k
        if (can_compare(left_type->get_primitive_type()) &&
562
171k
            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
155k
            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
155k
        }
570
571
171k
        auto compare_type = left_type->get_primitive_type();
572
171k
        switch (compare_type) {
573
221
        case TYPE_BOOLEAN:
574
221
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
5.25k
        case TYPE_DATEV2:
576
5.25k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
914
        case TYPE_DATETIMEV2:
578
914
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
12
        case TYPE_TIMESTAMPTZ:
580
12
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
8.57k
        case TYPE_TINYINT:
582
8.57k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
2.35k
        case TYPE_SMALLINT:
584
2.35k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
130k
        case TYPE_INT:
586
130k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
4.74k
        case TYPE_BIGINT:
588
4.74k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
636
        case TYPE_LARGEINT:
590
636
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
63
        case TYPE_IPV4:
592
63
            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
515
        case TYPE_FLOAT:
596
515
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
1.79k
        case TYPE_DOUBLE:
598
1.79k
            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
354
        case TYPE_DECIMAL32:
603
992
        case TYPE_DECIMAL64:
604
3.10k
        case TYPE_DECIMAL128I:
605
3.21k
        case TYPE_DECIMAL256:
606
3.21k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
3.21k
                                   col_with_type_and_name_right);
608
1.05k
        case TYPE_CHAR:
609
6.83k
        case TYPE_VARCHAR:
610
12.0k
        case TYPE_STRING:
611
12.0k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
137
        default:
613
137
            return execute_generic(block, result, col_with_type_and_name_left,
614
137
                                   col_with_type_and_name_right);
615
171k
        }
616
0
        return Status::OK();
617
171k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
76.4k
                        uint32_t result, size_t input_rows_count) const override {
520
76.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
76.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
76.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
76.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
76.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
76.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
76.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
76.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
76.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
76.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
76.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
76.4k
        };
560
561
76.4k
        if (can_compare(left_type->get_primitive_type()) &&
562
76.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
76.4k
        auto compare_type = left_type->get_primitive_type();
572
76.4k
        switch (compare_type) {
573
94
        case TYPE_BOOLEAN:
574
94
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
694
        case TYPE_DATEV2:
576
694
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
433
        case TYPE_DATETIMEV2:
578
433
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
3
        case TYPE_TIMESTAMPTZ:
580
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
4.99k
        case TYPE_TINYINT:
582
4.99k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
365
        case TYPE_SMALLINT:
584
365
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
56.2k
        case TYPE_INT:
586
56.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
1.25k
        case TYPE_BIGINT:
588
1.25k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
115
        case TYPE_LARGEINT:
590
115
            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
84
        case TYPE_FLOAT:
596
84
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
354
        case TYPE_DOUBLE:
598
354
            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
145
        case TYPE_DECIMAL32:
603
289
        case TYPE_DECIMAL64:
604
1.09k
        case TYPE_DECIMAL128I:
605
1.12k
        case TYPE_DECIMAL256:
606
1.12k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
1.12k
                                   col_with_type_and_name_right);
608
777
        case TYPE_CHAR:
609
5.95k
        case TYPE_VARCHAR:
610
10.6k
        case TYPE_STRING:
611
10.6k
            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
76.4k
        }
616
0
        return Status::OK();
617
76.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
2.07k
                        uint32_t result, size_t input_rows_count) const override {
520
2.07k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
2.07k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
2.07k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
2.07k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
2.07k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
2.07k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
2.07k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
2.07k
        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
2.07k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
2.07k
            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
2.07k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
2.07k
        };
560
561
2.07k
        if (can_compare(left_type->get_primitive_type()) &&
562
2.07k
            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
1.84k
            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
1.84k
        }
570
571
2.07k
        auto compare_type = left_type->get_primitive_type();
572
2.07k
        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
70
        case TYPE_DATEV2:
576
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
0
        case TYPE_DATETIMEV2:
578
0
            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
84
        case TYPE_TINYINT:
582
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_SMALLINT:
584
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
758
        case TYPE_INT:
586
758
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
829
        case TYPE_BIGINT:
588
829
            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
88
        case TYPE_DECIMAL128I:
605
118
        case TYPE_DECIMAL256:
606
118
            return execute_decimal(block, result, col_with_type_and_name_left,
607
118
                                   col_with_type_and_name_right);
608
1
        case TYPE_CHAR:
609
29
        case TYPE_VARCHAR:
610
94
        case TYPE_STRING:
611
94
            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
2.07k
        }
616
0
        return Status::OK();
617
2.07k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
74.0k
                        uint32_t result, size_t input_rows_count) const override {
520
74.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
74.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
74.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
74.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
74.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
74.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
74.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
74.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
74.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
74.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
74.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
74.0k
        };
560
561
74.0k
        if (can_compare(left_type->get_primitive_type()) &&
562
74.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
73.0k
            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
73.0k
        }
570
571
74.0k
        auto compare_type = left_type->get_primitive_type();
572
74.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.14k
        case TYPE_DATEV2:
576
1.14k
            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
2
        case TYPE_TIMESTAMPTZ:
580
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
1.31k
        case TYPE_TINYINT:
582
1.31k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
1.78k
        case TYPE_SMALLINT:
584
1.78k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
66.3k
        case TYPE_INT:
586
66.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
1.42k
        case TYPE_BIGINT:
588
1.42k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
253
        case TYPE_LARGEINT:
590
253
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
4
        case TYPE_IPV4:
592
4
            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
220
        case TYPE_FLOAT:
596
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
534
        case TYPE_DOUBLE:
598
534
            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
8
        case TYPE_DECIMAL32:
603
74
        case TYPE_DECIMAL64:
604
837
        case TYPE_DECIMAL128I:
605
839
        case TYPE_DECIMAL256:
606
839
            return execute_decimal(block, result, col_with_type_and_name_left,
607
839
                                   col_with_type_and_name_right);
608
21
        case TYPE_CHAR:
609
87
        case TYPE_VARCHAR:
610
197
        case TYPE_STRING:
611
197
            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
74.0k
        }
616
0
        return Status::OK();
617
74.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
2.44k
                        uint32_t result, size_t input_rows_count) const override {
520
2.44k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
2.44k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
2.44k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
2.44k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
2.44k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
2.44k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
2.44k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
2.44k
        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
2.44k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
2.44k
            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
2.44k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
2.44k
        };
560
561
2.44k
        if (can_compare(left_type->get_primitive_type()) &&
562
2.44k
            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
1.92k
            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
1.92k
        }
570
571
2.44k
        auto compare_type = left_type->get_primitive_type();
572
2.44k
        switch (compare_type) {
573
26
        case TYPE_BOOLEAN:
574
26
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
571
        case TYPE_DATEV2:
576
571
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
142
        case TYPE_DATETIMEV2:
578
142
            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
56
        case TYPE_TINYINT:
582
56
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
46
        case TYPE_SMALLINT:
584
46
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
515
        case TYPE_INT:
586
515
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
161
        case TYPE_BIGINT:
588
161
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
35
        case TYPE_LARGEINT:
590
35
            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
24
        case TYPE_FLOAT:
596
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
285
        case TYPE_DOUBLE:
598
285
            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
1
        case TYPE_DECIMAL32:
603
66
        case TYPE_DECIMAL64:
604
163
        case TYPE_DECIMAL128I:
605
190
        case TYPE_DECIMAL256:
606
190
            return execute_decimal(block, result, col_with_type_and_name_left,
607
190
                                   col_with_type_and_name_right);
608
36
        case TYPE_CHAR:
609
245
        case TYPE_VARCHAR:
610
321
        case TYPE_STRING:
611
321
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
56
        default:
613
56
            return execute_generic(block, result, col_with_type_and_name_left,
614
56
                                   col_with_type_and_name_right);
615
2.44k
        }
616
0
        return Status::OK();
617
2.44k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
8.44k
                        uint32_t result, size_t input_rows_count) const override {
520
8.44k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
8.44k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
8.44k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
8.44k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
8.44k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
8.44k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
8.44k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
8.44k
        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.44k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
8.44k
            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.44k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
8.44k
        };
560
561
8.44k
        if (can_compare(left_type->get_primitive_type()) &&
562
8.44k
            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
7.13k
            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
7.13k
        }
570
571
8.44k
        auto compare_type = left_type->get_primitive_type();
572
8.44k
        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.21k
        case TYPE_DATEV2:
576
2.21k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
293
        case TYPE_DATETIMEV2:
578
293
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
3
        case TYPE_TIMESTAMPTZ:
580
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
2.08k
        case TYPE_TINYINT:
582
2.08k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
120
        case TYPE_SMALLINT:
584
120
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
835
        case TYPE_INT:
586
835
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
778
        case TYPE_BIGINT:
588
778
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
201
        case TYPE_LARGEINT:
590
201
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
18
        case TYPE_IPV4:
592
18
            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
119
        case TYPE_FLOAT:
596
119
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
380
        case TYPE_DOUBLE:
598
380
            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
195
        case TYPE_DECIMAL32:
603
397
        case TYPE_DECIMAL64:
604
743
        case TYPE_DECIMAL128I:
605
744
        case TYPE_DECIMAL256:
606
744
            return execute_decimal(block, result, col_with_type_and_name_left,
607
744
                                   col_with_type_and_name_right);
608
178
        case TYPE_CHAR:
609
367
        case TYPE_VARCHAR:
610
547
        case TYPE_STRING:
611
547
            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
8.44k
        }
616
0
        return Status::OK();
617
8.44k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
7.70k
                        uint32_t result, size_t input_rows_count) const override {
520
7.70k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
7.70k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
7.70k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
7.70k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
7.70k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
7.70k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
7.70k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
7.70k
        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
7.70k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
7.70k
            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
7.70k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
7.70k
        };
560
561
7.70k
        if (can_compare(left_type->get_primitive_type()) &&
562
7.70k
            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
7.27k
            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
7.27k
        }
570
571
7.70k
        auto compare_type = left_type->get_primitive_type();
572
7.70k
        switch (compare_type) {
573
26
        case TYPE_BOOLEAN:
574
26
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
566
        case TYPE_DATEV2:
576
566
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
44
        case TYPE_DATETIMEV2:
578
44
            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
48
        case TYPE_TINYINT:
582
48
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
38
        case TYPE_SMALLINT:
584
38
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
5.97k
        case TYPE_INT:
586
5.97k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
295
        case TYPE_BIGINT:
588
295
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
32
        case TYPE_LARGEINT:
590
32
            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
20
        case TYPE_FLOAT:
596
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
183
        case TYPE_DOUBLE:
598
183
            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
5
        case TYPE_DECIMAL32:
603
105
        case TYPE_DECIMAL64:
604
173
        case TYPE_DECIMAL128I:
605
195
        case TYPE_DECIMAL256:
606
195
            return execute_decimal(block, result, col_with_type_and_name_left,
607
195
                                   col_with_type_and_name_right);
608
45
        case TYPE_CHAR:
609
150
        case TYPE_VARCHAR:
610
231
        case TYPE_STRING:
611
231
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
36
        default:
613
36
            return execute_generic(block, result, col_with_type_and_name_left,
614
36
                                   col_with_type_and_name_right);
615
7.70k
        }
616
0
        return Status::OK();
617
7.70k
    }
618
};
619
620
} // namespace doris