Coverage Report

Created: 2026-03-14 18:33

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/memcmp_small.h"
38
#include "core/value/vdatetime_value.h"
39
#include "exprs/function/function.h"
40
#include "exprs/function/function_helpers.h"
41
#include "exprs/function/functions_logical.h"
42
#include "storage/index/index_reader_helper.h"
43
44
namespace doris {
45
#include "common/compile_check_begin.h"
46
47
/** Comparison functions: ==, !=, <, >, <=, >=.
48
  * The comparison functions always return 0 or 1 (UInt8).
49
  *
50
  * You can compare the following types:
51
  * - numbers and decimals;
52
  * - strings and fixed strings;
53
  * - dates;
54
  * - datetimes;
55
  *   within each group, but not from different groups;
56
  * - tuples (lexicographic comparison).
57
  *
58
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
59
  */
60
61
template <typename A, typename B, typename Op>
62
struct NumComparisonImpl {
63
    /// If you don't specify NO_INLINE, the compiler will inline this function, but we don't need this as this function contains tight loop inside.
64
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
65
13.0k
                                        PaddedPODArray<UInt8>& c) {
66
13.0k
        size_t size = a.size();
67
13.0k
        const A* __restrict a_pos = a.data();
68
13.0k
        const B* __restrict b_pos = b.data();
69
13.0k
        UInt8* __restrict c_pos = c.data();
70
13.0k
        const A* __restrict a_end = a_pos + size;
71
72
18.9M
        while (a_pos < a_end) {
73
18.9M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
18.9M
            ++a_pos;
75
18.9M
            ++b_pos;
76
18.9M
            ++c_pos;
77
18.9M
        }
78
13.0k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
67
                                        PaddedPODArray<UInt8>& c) {
66
67
        size_t size = a.size();
67
67
        const A* __restrict a_pos = a.data();
68
67
        const B* __restrict b_pos = b.data();
69
67
        UInt8* __restrict c_pos = c.data();
70
67
        const A* __restrict a_end = a_pos + size;
71
72
134
        while (a_pos < a_end) {
73
67
            *c_pos = Op::apply(*a_pos, *b_pos);
74
67
            ++a_pos;
75
67
            ++b_pos;
76
67
            ++c_pos;
77
67
        }
78
67
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
351
                                        PaddedPODArray<UInt8>& c) {
66
351
        size_t size = a.size();
67
351
        const A* __restrict a_pos = a.data();
68
351
        const B* __restrict b_pos = b.data();
69
351
        UInt8* __restrict c_pos = c.data();
70
351
        const A* __restrict a_end = a_pos + size;
71
72
1.55k
        while (a_pos < a_end) {
73
1.20k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.20k
            ++a_pos;
75
1.20k
            ++b_pos;
76
1.20k
            ++c_pos;
77
1.20k
        }
78
351
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
298
                                        PaddedPODArray<UInt8>& c) {
66
298
        size_t size = a.size();
67
298
        const A* __restrict a_pos = a.data();
68
298
        const B* __restrict b_pos = b.data();
69
298
        UInt8* __restrict c_pos = c.data();
70
298
        const A* __restrict a_end = a_pos + size;
71
72
618
        while (a_pos < a_end) {
73
320
            *c_pos = Op::apply(*a_pos, *b_pos);
74
320
            ++a_pos;
75
320
            ++b_pos;
76
320
            ++c_pos;
77
320
        }
78
298
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
581
                                        PaddedPODArray<UInt8>& c) {
66
581
        size_t size = a.size();
67
581
        const A* __restrict a_pos = a.data();
68
581
        const B* __restrict b_pos = b.data();
69
581
        UInt8* __restrict c_pos = c.data();
70
581
        const A* __restrict a_end = a_pos + size;
71
72
5.39k
        while (a_pos < a_end) {
73
4.81k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.81k
            ++a_pos;
75
4.81k
            ++b_pos;
76
4.81k
            ++c_pos;
77
4.81k
        }
78
581
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
130
                                        PaddedPODArray<UInt8>& c) {
66
130
        size_t size = a.size();
67
130
        const A* __restrict a_pos = a.data();
68
130
        const B* __restrict b_pos = b.data();
69
130
        UInt8* __restrict c_pos = c.data();
70
130
        const A* __restrict a_end = a_pos + size;
71
72
580
        while (a_pos < a_end) {
73
450
            *c_pos = Op::apply(*a_pos, *b_pos);
74
450
            ++a_pos;
75
450
            ++b_pos;
76
450
            ++c_pos;
77
450
        }
78
130
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
335
                                        PaddedPODArray<UInt8>& c) {
66
335
        size_t size = a.size();
67
335
        const A* __restrict a_pos = a.data();
68
335
        const B* __restrict b_pos = b.data();
69
335
        UInt8* __restrict c_pos = c.data();
70
335
        const A* __restrict a_end = a_pos + size;
71
72
2.19k
        while (a_pos < a_end) {
73
1.85k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.85k
            ++a_pos;
75
1.85k
            ++b_pos;
76
1.85k
            ++c_pos;
77
1.85k
        }
78
335
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
203
                                        PaddedPODArray<UInt8>& c) {
66
203
        size_t size = a.size();
67
203
        const A* __restrict a_pos = a.data();
68
203
        const B* __restrict b_pos = b.data();
69
203
        UInt8* __restrict c_pos = c.data();
70
203
        const A* __restrict a_end = a_pos + size;
71
72
11.7k
        while (a_pos < a_end) {
73
11.5k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.5k
            ++a_pos;
75
11.5k
            ++b_pos;
76
11.5k
            ++c_pos;
77
11.5k
        }
78
203
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
105
                                        PaddedPODArray<UInt8>& c) {
66
105
        size_t size = a.size();
67
105
        const A* __restrict a_pos = a.data();
68
105
        const B* __restrict b_pos = b.data();
69
105
        UInt8* __restrict c_pos = c.data();
70
105
        const A* __restrict a_end = a_pos + size;
71
72
235
        while (a_pos < a_end) {
73
130
            *c_pos = Op::apply(*a_pos, *b_pos);
74
130
            ++a_pos;
75
130
            ++b_pos;
76
130
            ++c_pos;
77
130
        }
78
105
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
48
        while (a_pos < a_end) {
73
24
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24
            ++a_pos;
75
24
            ++b_pos;
76
24
            ++c_pos;
77
24
        }
78
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
115
                                        PaddedPODArray<UInt8>& c) {
66
115
        size_t size = a.size();
67
115
        const A* __restrict a_pos = a.data();
68
115
        const B* __restrict b_pos = b.data();
69
115
        UInt8* __restrict c_pos = c.data();
70
115
        const A* __restrict a_end = a_pos + size;
71
72
249
        while (a_pos < a_end) {
73
134
            *c_pos = Op::apply(*a_pos, *b_pos);
74
134
            ++a_pos;
75
134
            ++b_pos;
76
134
            ++c_pos;
77
134
        }
78
115
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
113
                                        PaddedPODArray<UInt8>& c) {
66
113
        size_t size = a.size();
67
113
        const A* __restrict a_pos = a.data();
68
113
        const B* __restrict b_pos = b.data();
69
113
        UInt8* __restrict c_pos = c.data();
70
113
        const A* __restrict a_end = a_pos + size;
71
72
247
        while (a_pos < a_end) {
73
134
            *c_pos = Op::apply(*a_pos, *b_pos);
74
134
            ++a_pos;
75
134
            ++b_pos;
76
134
            ++c_pos;
77
134
        }
78
113
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
64
                                        PaddedPODArray<UInt8>& c) {
66
64
        size_t size = a.size();
67
64
        const A* __restrict a_pos = a.data();
68
64
        const B* __restrict b_pos = b.data();
69
64
        UInt8* __restrict c_pos = c.data();
70
64
        const A* __restrict a_end = a_pos + size;
71
72
288
        while (a_pos < a_end) {
73
224
            *c_pos = Op::apply(*a_pos, *b_pos);
74
224
            ++a_pos;
75
224
            ++b_pos;
76
224
            ++c_pos;
77
224
        }
78
64
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
941
                                        PaddedPODArray<UInt8>& c) {
66
941
        size_t size = a.size();
67
941
        const A* __restrict a_pos = a.data();
68
941
        const B* __restrict b_pos = b.data();
69
941
        UInt8* __restrict c_pos = c.data();
70
941
        const A* __restrict a_end = a_pos + size;
71
72
1.74M
        while (a_pos < a_end) {
73
1.74M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.74M
            ++a_pos;
75
1.74M
            ++b_pos;
76
1.74M
            ++c_pos;
77
1.74M
        }
78
941
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
427
                                        PaddedPODArray<UInt8>& c) {
66
427
        size_t size = a.size();
67
427
        const A* __restrict a_pos = a.data();
68
427
        const B* __restrict b_pos = b.data();
69
427
        UInt8* __restrict c_pos = c.data();
70
427
        const A* __restrict a_end = a_pos + size;
71
72
40.8k
        while (a_pos < a_end) {
73
40.4k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
40.4k
            ++a_pos;
75
40.4k
            ++b_pos;
76
40.4k
            ++c_pos;
77
40.4k
        }
78
427
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.16k
                                        PaddedPODArray<UInt8>& c) {
66
1.16k
        size_t size = a.size();
67
1.16k
        const A* __restrict a_pos = a.data();
68
1.16k
        const B* __restrict b_pos = b.data();
69
1.16k
        UInt8* __restrict c_pos = c.data();
70
1.16k
        const A* __restrict a_end = a_pos + size;
71
72
6.11M
        while (a_pos < a_end) {
73
6.11M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.11M
            ++a_pos;
75
6.11M
            ++b_pos;
76
6.11M
            ++c_pos;
77
6.11M
        }
78
1.16k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
210
                                        PaddedPODArray<UInt8>& c) {
66
210
        size_t size = a.size();
67
210
        const A* __restrict a_pos = a.data();
68
210
        const B* __restrict b_pos = b.data();
69
210
        UInt8* __restrict c_pos = c.data();
70
210
        const A* __restrict a_end = a_pos + size;
71
72
2.37k
        while (a_pos < a_end) {
73
2.16k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.16k
            ++a_pos;
75
2.16k
            ++b_pos;
76
2.16k
            ++c_pos;
77
2.16k
        }
78
210
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
423
                                        PaddedPODArray<UInt8>& c) {
66
423
        size_t size = a.size();
67
423
        const A* __restrict a_pos = a.data();
68
423
        const B* __restrict b_pos = b.data();
69
423
        UInt8* __restrict c_pos = c.data();
70
423
        const A* __restrict a_end = a_pos + size;
71
72
4.76k
        while (a_pos < a_end) {
73
4.33k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.33k
            ++a_pos;
75
4.33k
            ++b_pos;
76
4.33k
            ++c_pos;
77
4.33k
        }
78
423
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
2.94k
                                        PaddedPODArray<UInt8>& c) {
66
2.94k
        size_t size = a.size();
67
2.94k
        const A* __restrict a_pos = a.data();
68
2.94k
        const B* __restrict b_pos = b.data();
69
2.94k
        UInt8* __restrict c_pos = c.data();
70
2.94k
        const A* __restrict a_end = a_pos + size;
71
72
9.75M
        while (a_pos < a_end) {
73
9.74M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9.74M
            ++a_pos;
75
9.74M
            ++b_pos;
76
9.74M
            ++c_pos;
77
9.74M
        }
78
2.94k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
94
                                        PaddedPODArray<UInt8>& c) {
66
94
        size_t size = a.size();
67
94
        const A* __restrict a_pos = a.data();
68
94
        const B* __restrict b_pos = b.data();
69
94
        UInt8* __restrict c_pos = c.data();
70
94
        const A* __restrict a_end = a_pos + size;
71
72
1.61k
        while (a_pos < a_end) {
73
1.51k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.51k
            ++a_pos;
75
1.51k
            ++b_pos;
76
1.51k
            ++c_pos;
77
1.51k
        }
78
94
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
40
                                        PaddedPODArray<UInt8>& c) {
66
40
        size_t size = a.size();
67
40
        const A* __restrict a_pos = a.data();
68
40
        const B* __restrict b_pos = b.data();
69
40
        UInt8* __restrict c_pos = c.data();
70
40
        const A* __restrict a_end = a_pos + size;
71
72
198
        while (a_pos < a_end) {
73
158
            *c_pos = Op::apply(*a_pos, *b_pos);
74
158
            ++a_pos;
75
158
            ++b_pos;
76
158
            ++c_pos;
77
158
        }
78
40
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
35
                                        PaddedPODArray<UInt8>& c) {
66
35
        size_t size = a.size();
67
35
        const A* __restrict a_pos = a.data();
68
35
        const B* __restrict b_pos = b.data();
69
35
        UInt8* __restrict c_pos = c.data();
70
35
        const A* __restrict a_end = a_pos + size;
71
72
133
        while (a_pos < a_end) {
73
98
            *c_pos = Op::apply(*a_pos, *b_pos);
74
98
            ++a_pos;
75
98
            ++b_pos;
76
98
            ++c_pos;
77
98
        }
78
35
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
38
        while (a_pos < a_end) {
73
31
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31
            ++a_pos;
75
31
            ++b_pos;
76
31
            ++c_pos;
77
31
        }
78
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
101
        while (a_pos < a_end) {
73
91
            *c_pos = Op::apply(*a_pos, *b_pos);
74
91
            ++a_pos;
75
91
            ++b_pos;
76
91
            ++c_pos;
77
91
        }
78
10
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
5
                                        PaddedPODArray<UInt8>& c) {
66
5
        size_t size = a.size();
67
5
        const A* __restrict a_pos = a.data();
68
5
        const B* __restrict b_pos = b.data();
69
5
        UInt8* __restrict c_pos = c.data();
70
5
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
7
            *c_pos = Op::apply(*a_pos, *b_pos);
74
7
            ++a_pos;
75
7
            ++b_pos;
76
7
            ++c_pos;
77
7
        }
78
5
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
17
                                        PaddedPODArray<UInt8>& c) {
66
17
        size_t size = a.size();
67
17
        const A* __restrict a_pos = a.data();
68
17
        const B* __restrict b_pos = b.data();
69
17
        UInt8* __restrict c_pos = c.data();
70
17
        const A* __restrict a_end = a_pos + size;
71
72
127
        while (a_pos < a_end) {
73
110
            *c_pos = Op::apply(*a_pos, *b_pos);
74
110
            ++a_pos;
75
110
            ++b_pos;
76
110
            ++c_pos;
77
110
        }
78
17
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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
190
        while (a_pos < a_end) {
73
106
            *c_pos = Op::apply(*a_pos, *b_pos);
74
106
            ++a_pos;
75
106
            ++b_pos;
76
106
            ++c_pos;
77
106
        }
78
84
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
73
                                        PaddedPODArray<UInt8>& c) {
66
73
        size_t size = a.size();
67
73
        const A* __restrict a_pos = a.data();
68
73
        const B* __restrict b_pos = b.data();
69
73
        UInt8* __restrict c_pos = c.data();
70
73
        const A* __restrict a_end = a_pos + size;
71
72
146
        while (a_pos < a_end) {
73
73
            *c_pos = Op::apply(*a_pos, *b_pos);
74
73
            ++a_pos;
75
73
            ++b_pos;
76
73
            ++c_pos;
77
73
        }
78
73
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.74k
                                        PaddedPODArray<UInt8>& c) {
66
1.74k
        size_t size = a.size();
67
1.74k
        const A* __restrict a_pos = a.data();
68
1.74k
        const B* __restrict b_pos = b.data();
69
1.74k
        UInt8* __restrict c_pos = c.data();
70
1.74k
        const A* __restrict a_end = a_pos + size;
71
72
1.22M
        while (a_pos < a_end) {
73
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.22M
            ++a_pos;
75
1.22M
            ++b_pos;
76
1.22M
            ++c_pos;
77
1.22M
        }
78
1.74k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
239
                                        PaddedPODArray<UInt8>& c) {
66
239
        size_t size = a.size();
67
239
        const A* __restrict a_pos = a.data();
68
239
        const B* __restrict b_pos = b.data();
69
239
        UInt8* __restrict c_pos = c.data();
70
239
        const A* __restrict a_end = a_pos + size;
71
72
478
        while (a_pos < a_end) {
73
239
            *c_pos = Op::apply(*a_pos, *b_pos);
74
239
            ++a_pos;
75
239
            ++b_pos;
76
239
            ++c_pos;
77
239
        }
78
239
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
508
                                        PaddedPODArray<UInt8>& c) {
66
508
        size_t size = a.size();
67
508
        const A* __restrict a_pos = a.data();
68
508
        const B* __restrict b_pos = b.data();
69
508
        UInt8* __restrict c_pos = c.data();
70
508
        const A* __restrict a_end = a_pos + size;
71
72
4.76k
        while (a_pos < a_end) {
73
4.25k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.25k
            ++a_pos;
75
4.25k
            ++b_pos;
76
4.25k
            ++c_pos;
77
4.25k
        }
78
508
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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
250
        while (a_pos < a_end) {
73
126
            *c_pos = Op::apply(*a_pos, *b_pos);
74
126
            ++a_pos;
75
126
            ++b_pos;
76
126
            ++c_pos;
77
126
        }
78
124
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
163
                                        PaddedPODArray<UInt8>& c) {
66
163
        size_t size = a.size();
67
163
        const A* __restrict a_pos = a.data();
68
163
        const B* __restrict b_pos = b.data();
69
163
        UInt8* __restrict c_pos = c.data();
70
163
        const A* __restrict a_end = a_pos + size;
71
72
825
        while (a_pos < a_end) {
73
662
            *c_pos = Op::apply(*a_pos, *b_pos);
74
662
            ++a_pos;
75
662
            ++b_pos;
76
662
            ++c_pos;
77
662
        }
78
163
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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.70k
        while (a_pos < a_end) {
73
5.51k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.51k
            ++a_pos;
75
5.51k
            ++b_pos;
76
5.51k
            ++c_pos;
77
5.51k
        }
78
199
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
188
                                        PaddedPODArray<UInt8>& c) {
66
188
        size_t size = a.size();
67
188
        const A* __restrict a_pos = a.data();
68
188
        const B* __restrict b_pos = b.data();
69
188
        UInt8* __restrict c_pos = c.data();
70
188
        const A* __restrict a_end = a_pos + size;
71
72
526
        while (a_pos < a_end) {
73
338
            *c_pos = Op::apply(*a_pos, *b_pos);
74
338
            ++a_pos;
75
338
            ++b_pos;
76
338
            ++c_pos;
77
338
        }
78
188
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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
281
        while (a_pos < a_end) {
73
150
            *c_pos = Op::apply(*a_pos, *b_pos);
74
150
            ++a_pos;
75
150
            ++b_pos;
76
150
            ++c_pos;
77
150
        }
78
131
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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
342
        while (a_pos < a_end) {
73
191
            *c_pos = Op::apply(*a_pos, *b_pos);
74
191
            ++a_pos;
75
191
            ++b_pos;
76
191
            ++c_pos;
77
191
        }
78
151
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
443
                                        PaddedPODArray<UInt8>& c) {
66
443
        size_t size = a.size();
67
443
        const A* __restrict a_pos = a.data();
68
443
        const B* __restrict b_pos = b.data();
69
443
        UInt8* __restrict c_pos = c.data();
70
443
        const A* __restrict a_end = a_pos + size;
71
72
6.86k
        while (a_pos < a_end) {
73
6.41k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.41k
            ++a_pos;
75
6.41k
            ++b_pos;
76
6.41k
            ++c_pos;
77
6.41k
        }
78
443
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
51
                                        PaddedPODArray<UInt8>& c) {
66
51
        size_t size = a.size();
67
51
        const A* __restrict a_pos = a.data();
68
51
        const B* __restrict b_pos = b.data();
69
51
        UInt8* __restrict c_pos = c.data();
70
51
        const A* __restrict a_end = a_pos + size;
71
72
1.08k
        while (a_pos < a_end) {
73
1.03k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.03k
            ++a_pos;
75
1.03k
            ++b_pos;
76
1.03k
            ++c_pos;
77
1.03k
        }
78
51
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
35
                                        PaddedPODArray<UInt8>& c) {
66
35
        size_t size = a.size();
67
35
        const A* __restrict a_pos = a.data();
68
35
        const B* __restrict b_pos = b.data();
69
35
        UInt8* __restrict c_pos = c.data();
70
35
        const A* __restrict a_end = a_pos + size;
71
72
219
        while (a_pos < a_end) {
73
184
            *c_pos = Op::apply(*a_pos, *b_pos);
74
184
            ++a_pos;
75
184
            ++b_pos;
76
184
            ++c_pos;
77
184
        }
78
35
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
79
80
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
81
16.0k
                                          PaddedPODArray<UInt8>& c) {
82
16.0k
        size_t size = a.size();
83
16.0k
        const A* __restrict a_pos = a.data();
84
16.0k
        UInt8* __restrict c_pos = c.data();
85
16.0k
        const A* __restrict a_end = a_pos + size;
86
87
21.4M
        while (a_pos < a_end) {
88
21.4M
            *c_pos = Op::apply(*a_pos, b);
89
21.4M
            ++a_pos;
90
21.4M
            ++c_pos;
91
21.4M
        }
92
16.0k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEhRS9_
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
164
        while (a_pos < a_end) {
88
138
            *c_pos = Op::apply(*a_pos, b);
89
138
            ++a_pos;
90
138
            ++c_pos;
91
138
        }
92
26
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
609
                                          PaddedPODArray<UInt8>& c) {
82
609
        size_t size = a.size();
83
609
        const A* __restrict a_pos = a.data();
84
609
        UInt8* __restrict c_pos = c.data();
85
609
        const A* __restrict a_end = a_pos + size;
86
87
205k
        while (a_pos < a_end) {
88
204k
            *c_pos = Op::apply(*a_pos, b);
89
204k
            ++a_pos;
90
204k
            ++c_pos;
91
204k
        }
92
609
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
240
                                          PaddedPODArray<UInt8>& c) {
82
240
        size_t size = a.size();
83
240
        const A* __restrict a_pos = a.data();
84
240
        UInt8* __restrict c_pos = c.data();
85
240
        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
240
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.58k
                                          PaddedPODArray<UInt8>& c) {
82
2.58k
        size_t size = a.size();
83
2.58k
        const A* __restrict a_pos = a.data();
84
2.58k
        UInt8* __restrict c_pos = c.data();
85
2.58k
        const A* __restrict a_end = a_pos + size;
86
87
8.88M
        while (a_pos < a_end) {
88
8.88M
            *c_pos = Op::apply(*a_pos, b);
89
8.88M
            ++a_pos;
90
8.88M
            ++c_pos;
91
8.88M
        }
92
2.58k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
301
                                          PaddedPODArray<UInt8>& c) {
82
301
        size_t size = a.size();
83
301
        const A* __restrict a_pos = a.data();
84
301
        UInt8* __restrict c_pos = c.data();
85
301
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
301
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.54k
                                          PaddedPODArray<UInt8>& c) {
82
1.54k
        size_t size = a.size();
83
1.54k
        const A* __restrict a_pos = a.data();
84
1.54k
        UInt8* __restrict c_pos = c.data();
85
1.54k
        const A* __restrict a_end = a_pos + size;
86
87
193k
        while (a_pos < a_end) {
88
191k
            *c_pos = Op::apply(*a_pos, b);
89
191k
            ++a_pos;
90
191k
            ++c_pos;
91
191k
        }
92
1.54k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
754
                                          PaddedPODArray<UInt8>& c) {
82
754
        size_t size = a.size();
83
754
        const A* __restrict a_pos = a.data();
84
754
        UInt8* __restrict c_pos = c.data();
85
754
        const A* __restrict a_end = a_pos + size;
86
87
347k
        while (a_pos < a_end) {
88
346k
            *c_pos = Op::apply(*a_pos, b);
89
346k
            ++a_pos;
90
346k
            ++c_pos;
91
346k
        }
92
754
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
24
                                          PaddedPODArray<UInt8>& c) {
82
24
        size_t size = a.size();
83
24
        const A* __restrict a_pos = a.data();
84
24
        UInt8* __restrict c_pos = c.data();
85
24
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
24
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjRNS5_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
125
        while (a_pos < a_end) {
88
110
            *c_pos = Op::apply(*a_pos, b);
89
110
            ++a_pos;
90
110
            ++c_pos;
91
110
        }
92
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEoRNS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
225
                                          PaddedPODArray<UInt8>& c) {
82
225
        size_t size = a.size();
83
225
        const A* __restrict a_pos = a.data();
84
225
        UInt8* __restrict c_pos = c.data();
85
225
        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
225
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
5
        while (a_pos < a_end) {
88
3
            *c_pos = Op::apply(*a_pos, b);
89
3
            ++a_pos;
90
3
            ++c_pos;
91
3
        }
92
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEaRNS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
63
                                          PaddedPODArray<UInt8>& c) {
82
63
        size_t size = a.size();
83
63
        const A* __restrict a_pos = a.data();
84
63
        UInt8* __restrict c_pos = c.data();
85
63
        const A* __restrict a_end = a_pos + size;
86
87
425
        while (a_pos < a_end) {
88
362
            *c_pos = Op::apply(*a_pos, b);
89
362
            ++a_pos;
90
362
            ++c_pos;
91
362
        }
92
63
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
25
                                          PaddedPODArray<UInt8>& c) {
82
25
        size_t size = a.size();
83
25
        const A* __restrict a_pos = a.data();
84
25
        UInt8* __restrict c_pos = c.data();
85
25
        const A* __restrict a_end = a_pos + size;
86
87
1.06k
        while (a_pos < a_end) {
88
1.04k
            *c_pos = Op::apply(*a_pos, b);
89
1.04k
            ++a_pos;
90
1.04k
            ++c_pos;
91
1.04k
        }
92
25
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
80
        while (a_pos < a_end) {
88
48
            *c_pos = Op::apply(*a_pos, b);
89
48
            ++a_pos;
90
48
            ++c_pos;
91
48
        }
92
32
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
52
                                          PaddedPODArray<UInt8>& c) {
82
52
        size_t size = a.size();
83
52
        const A* __restrict a_pos = a.data();
84
52
        UInt8* __restrict c_pos = c.data();
85
52
        const A* __restrict a_end = a_pos + size;
86
87
312
        while (a_pos < a_end) {
88
260
            *c_pos = Op::apply(*a_pos, b);
89
260
            ++a_pos;
90
260
            ++c_pos;
91
260
        }
92
52
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
10
            *c_pos = Op::apply(*a_pos, b);
89
10
            ++a_pos;
90
10
            ++c_pos;
91
10
        }
92
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
326
                                          PaddedPODArray<UInt8>& c) {
82
326
        size_t size = a.size();
83
326
        const A* __restrict a_pos = a.data();
84
326
        UInt8* __restrict c_pos = c.data();
85
326
        const A* __restrict a_end = a_pos + size;
86
87
1.34M
        while (a_pos < a_end) {
88
1.34M
            *c_pos = Op::apply(*a_pos, b);
89
1.34M
            ++a_pos;
90
1.34M
            ++c_pos;
91
1.34M
        }
92
326
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
61
                                          PaddedPODArray<UInt8>& c) {
82
61
        size_t size = a.size();
83
61
        const A* __restrict a_pos = a.data();
84
61
        UInt8* __restrict c_pos = c.data();
85
61
        const A* __restrict a_end = a_pos + size;
86
87
279
        while (a_pos < a_end) {
88
218
            *c_pos = Op::apply(*a_pos, b);
89
218
            ++a_pos;
90
218
            ++c_pos;
91
218
        }
92
61
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES1_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
411
                                          PaddedPODArray<UInt8>& c) {
82
411
        size_t size = a.size();
83
411
        const A* __restrict a_pos = a.data();
84
411
        UInt8* __restrict c_pos = c.data();
85
411
        const A* __restrict a_end = a_pos + size;
86
87
4.20k
        while (a_pos < a_end) {
88
3.79k
            *c_pos = Op::apply(*a_pos, b);
89
3.79k
            ++a_pos;
90
3.79k
            ++c_pos;
91
3.79k
        }
92
411
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
34
                                          PaddedPODArray<UInt8>& c) {
82
34
        size_t size = a.size();
83
34
        const A* __restrict a_pos = a.data();
84
34
        UInt8* __restrict c_pos = c.data();
85
34
        const A* __restrict a_end = a_pos + size;
86
87
132
        while (a_pos < a_end) {
88
98
            *c_pos = Op::apply(*a_pos, b);
89
98
            ++a_pos;
90
98
            ++c_pos;
91
98
        }
92
34
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
413
                                          PaddedPODArray<UInt8>& c) {
82
413
        size_t size = a.size();
83
413
        const A* __restrict a_pos = a.data();
84
413
        UInt8* __restrict c_pos = c.data();
85
413
        const A* __restrict a_end = a_pos + size;
86
87
3.65k
        while (a_pos < a_end) {
88
3.24k
            *c_pos = Op::apply(*a_pos, b);
89
3.24k
            ++a_pos;
90
3.24k
            ++c_pos;
91
3.24k
        }
92
413
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20
                                          PaddedPODArray<UInt8>& c) {
82
20
        size_t size = a.size();
83
20
        const A* __restrict a_pos = a.data();
84
20
        UInt8* __restrict c_pos = c.data();
85
20
        const A* __restrict a_end = a_pos + size;
86
87
49
        while (a_pos < a_end) {
88
29
            *c_pos = Op::apply(*a_pos, b);
89
29
            ++a_pos;
90
29
            ++c_pos;
91
29
        }
92
20
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.83k
                                          PaddedPODArray<UInt8>& c) {
82
1.83k
        size_t size = a.size();
83
1.83k
        const A* __restrict a_pos = a.data();
84
1.83k
        UInt8* __restrict c_pos = c.data();
85
1.83k
        const A* __restrict a_end = a_pos + size;
86
87
14.9k
        while (a_pos < a_end) {
88
13.1k
            *c_pos = Op::apply(*a_pos, b);
89
13.1k
            ++a_pos;
90
13.1k
            ++c_pos;
91
13.1k
        }
92
1.83k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
535
                                          PaddedPODArray<UInt8>& c) {
82
535
        size_t size = a.size();
83
535
        const A* __restrict a_pos = a.data();
84
535
        UInt8* __restrict c_pos = c.data();
85
535
        const A* __restrict a_end = a_pos + size;
86
87
3.27k
        while (a_pos < a_end) {
88
2.73k
            *c_pos = Op::apply(*a_pos, b);
89
2.73k
            ++a_pos;
90
2.73k
            ++c_pos;
91
2.73k
        }
92
535
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.14k
                                          PaddedPODArray<UInt8>& c) {
82
1.14k
        size_t size = a.size();
83
1.14k
        const A* __restrict a_pos = a.data();
84
1.14k
        UInt8* __restrict c_pos = c.data();
85
1.14k
        const A* __restrict a_end = a_pos + size;
86
87
122k
        while (a_pos < a_end) {
88
121k
            *c_pos = Op::apply(*a_pos, b);
89
121k
            ++a_pos;
90
121k
            ++c_pos;
91
121k
        }
92
1.14k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
480
                                          PaddedPODArray<UInt8>& c) {
82
480
        size_t size = a.size();
83
480
        const A* __restrict a_pos = a.data();
84
480
        UInt8* __restrict c_pos = c.data();
85
480
        const A* __restrict a_end = a_pos + size;
86
87
1.48k
        while (a_pos < a_end) {
88
1.00k
            *c_pos = Op::apply(*a_pos, b);
89
1.00k
            ++a_pos;
90
1.00k
            ++c_pos;
91
1.00k
        }
92
480
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
207
                                          PaddedPODArray<UInt8>& c) {
82
207
        size_t size = a.size();
83
207
        const A* __restrict a_pos = a.data();
84
207
        UInt8* __restrict c_pos = c.data();
85
207
        const A* __restrict a_end = a_pos + size;
86
87
1.75k
        while (a_pos < a_end) {
88
1.54k
            *c_pos = Op::apply(*a_pos, b);
89
1.54k
            ++a_pos;
90
1.54k
            ++c_pos;
91
1.54k
        }
92
207
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13
                                          PaddedPODArray<UInt8>& c) {
82
13
        size_t size = a.size();
83
13
        const A* __restrict a_pos = a.data();
84
13
        UInt8* __restrict c_pos = c.data();
85
13
        const A* __restrict a_end = a_pos + size;
86
87
85.9k
        while (a_pos < a_end) {
88
85.8k
            *c_pos = Op::apply(*a_pos, b);
89
85.8k
            ++a_pos;
90
85.8k
            ++c_pos;
91
85.8k
        }
92
13
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
9
        while (a_pos < a_end) {
88
8
            *c_pos = Op::apply(*a_pos, b);
89
8
            ++a_pos;
90
8
            ++c_pos;
91
8
        }
92
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
208
                                          PaddedPODArray<UInt8>& c) {
82
208
        size_t size = a.size();
83
208
        const A* __restrict a_pos = a.data();
84
208
        UInt8* __restrict c_pos = c.data();
85
208
        const A* __restrict a_end = a_pos + size;
86
87
2.63k
        while (a_pos < a_end) {
88
2.42k
            *c_pos = Op::apply(*a_pos, b);
89
2.42k
            ++a_pos;
90
2.42k
            ++c_pos;
91
2.42k
        }
92
208
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
505
                                          PaddedPODArray<UInt8>& c) {
82
505
        size_t size = a.size();
83
505
        const A* __restrict a_pos = a.data();
84
505
        UInt8* __restrict c_pos = c.data();
85
505
        const A* __restrict a_end = a_pos + size;
86
87
7.44k
        while (a_pos < a_end) {
88
6.93k
            *c_pos = Op::apply(*a_pos, b);
89
6.93k
            ++a_pos;
90
6.93k
            ++c_pos;
91
6.93k
        }
92
505
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
182
                                          PaddedPODArray<UInt8>& c) {
82
182
        size_t size = a.size();
83
182
        const A* __restrict a_pos = a.data();
84
182
        UInt8* __restrict c_pos = c.data();
85
182
        const A* __restrict a_end = a_pos + size;
86
87
282k
        while (a_pos < a_end) {
88
282k
            *c_pos = Op::apply(*a_pos, b);
89
282k
            ++a_pos;
90
282k
            ++c_pos;
91
282k
        }
92
182
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEhRS9_
Line
Count
Source
81
8
                                          PaddedPODArray<UInt8>& c) {
82
8
        size_t size = a.size();
83
8
        const A* __restrict a_pos = a.data();
84
8
        UInt8* __restrict c_pos = c.data();
85
8
        const A* __restrict a_end = a_pos + size;
86
87
40.1k
        while (a_pos < a_end) {
88
40.1k
            *c_pos = Op::apply(*a_pos, b);
89
40.1k
            ++a_pos;
90
40.1k
            ++c_pos;
91
40.1k
        }
92
8
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEhRS9_
Line
Count
Source
81
16
                                          PaddedPODArray<UInt8>& c) {
82
16
        size_t size = a.size();
83
16
        const A* __restrict a_pos = a.data();
84
16
        UInt8* __restrict c_pos = c.data();
85
16
        const A* __restrict a_end = a_pos + size;
86
87
67.5k
        while (a_pos < a_end) {
88
67.4k
            *c_pos = Op::apply(*a_pos, b);
89
67.4k
            ++a_pos;
90
67.4k
            ++c_pos;
91
67.4k
        }
92
16
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
513
                                          PaddedPODArray<UInt8>& c) {
82
513
        size_t size = a.size();
83
513
        const A* __restrict a_pos = a.data();
84
513
        UInt8* __restrict c_pos = c.data();
85
513
        const A* __restrict a_end = a_pos + size;
86
87
1.46M
        while (a_pos < a_end) {
88
1.46M
            *c_pos = Op::apply(*a_pos, b);
89
1.46M
            ++a_pos;
90
1.46M
            ++c_pos;
91
1.46M
        }
92
513
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
142
                                          PaddedPODArray<UInt8>& c) {
82
142
        size_t size = a.size();
83
142
        const A* __restrict a_pos = a.data();
84
142
        UInt8* __restrict c_pos = c.data();
85
142
        const A* __restrict a_end = a_pos + size;
86
87
687k
        while (a_pos < a_end) {
88
686k
            *c_pos = Op::apply(*a_pos, b);
89
686k
            ++a_pos;
90
686k
            ++c_pos;
91
686k
        }
92
142
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
146
                                          PaddedPODArray<UInt8>& c) {
82
146
        size_t size = a.size();
83
146
        const A* __restrict a_pos = a.data();
84
146
        UInt8* __restrict c_pos = c.data();
85
146
        const A* __restrict a_end = a_pos + size;
86
87
555
        while (a_pos < a_end) {
88
409
            *c_pos = Op::apply(*a_pos, b);
89
409
            ++a_pos;
90
409
            ++c_pos;
91
409
        }
92
146
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES3_RNS8_IhLm4096ESB_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
92
        while (a_pos < a_end) {
88
49
            *c_pos = Op::apply(*a_pos, b);
89
49
            ++a_pos;
90
49
            ++c_pos;
91
49
        }
92
43
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
63
                                          PaddedPODArray<UInt8>& c) {
82
63
        size_t size = a.size();
83
63
        const A* __restrict a_pos = a.data();
84
63
        UInt8* __restrict c_pos = c.data();
85
63
        const A* __restrict a_end = a_pos + size;
86
87
27.0k
        while (a_pos < a_end) {
88
27.0k
            *c_pos = Op::apply(*a_pos, b);
89
27.0k
            ++a_pos;
90
27.0k
            ++c_pos;
91
27.0k
        }
92
63
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
63
                                          PaddedPODArray<UInt8>& c) {
82
63
        size_t size = a.size();
83
63
        const A* __restrict a_pos = a.data();
84
63
        UInt8* __restrict c_pos = c.data();
85
63
        const A* __restrict a_end = a_pos + size;
86
87
44.2k
        while (a_pos < a_end) {
88
44.2k
            *c_pos = Op::apply(*a_pos, b);
89
44.2k
            ++a_pos;
90
44.2k
            ++c_pos;
91
44.2k
        }
92
63
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
112
                                          PaddedPODArray<UInt8>& c) {
82
112
        size_t size = a.size();
83
112
        const A* __restrict a_pos = a.data();
84
112
        UInt8* __restrict c_pos = c.data();
85
112
        const A* __restrict a_end = a_pos + size;
86
87
7.69k
        while (a_pos < a_end) {
88
7.58k
            *c_pos = Op::apply(*a_pos, b);
89
7.58k
            ++a_pos;
90
7.58k
            ++c_pos;
91
7.58k
        }
92
112
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
169
                                          PaddedPODArray<UInt8>& c) {
82
169
        size_t size = a.size();
83
169
        const A* __restrict a_pos = a.data();
84
169
        UInt8* __restrict c_pos = c.data();
85
169
        const A* __restrict a_end = a_pos + size;
86
87
131k
        while (a_pos < a_end) {
88
131k
            *c_pos = Op::apply(*a_pos, b);
89
131k
            ++a_pos;
90
131k
            ++c_pos;
91
131k
        }
92
169
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
617
                                          PaddedPODArray<UInt8>& c) {
82
617
        size_t size = a.size();
83
617
        const A* __restrict a_pos = a.data();
84
617
        UInt8* __restrict c_pos = c.data();
85
617
        const A* __restrict a_end = a_pos + size;
86
87
2.93M
        while (a_pos < a_end) {
88
2.93M
            *c_pos = Op::apply(*a_pos, b);
89
2.93M
            ++a_pos;
90
2.93M
            ++c_pos;
91
2.93M
        }
92
617
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
649
                                          PaddedPODArray<UInt8>& c) {
82
649
        size_t size = a.size();
83
649
        const A* __restrict a_pos = a.data();
84
649
        UInt8* __restrict c_pos = c.data();
85
649
        const A* __restrict a_end = a_pos + size;
86
87
2.87M
        while (a_pos < a_end) {
88
2.87M
            *c_pos = Op::apply(*a_pos, b);
89
2.87M
            ++a_pos;
90
2.87M
            ++c_pos;
91
2.87M
        }
92
649
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
152
                                          PaddedPODArray<UInt8>& c) {
82
152
        size_t size = a.size();
83
152
        const A* __restrict a_pos = a.data();
84
152
        UInt8* __restrict c_pos = c.data();
85
152
        const A* __restrict a_end = a_pos + size;
86
87
5.58k
        while (a_pos < a_end) {
88
5.43k
            *c_pos = Op::apply(*a_pos, b);
89
5.43k
            ++a_pos;
90
5.43k
            ++c_pos;
91
5.43k
        }
92
152
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
229
                                          PaddedPODArray<UInt8>& c) {
82
229
        size_t size = a.size();
83
229
        const A* __restrict a_pos = a.data();
84
229
        UInt8* __restrict c_pos = c.data();
85
229
        const A* __restrict a_end = a_pos + size;
86
87
2.21k
        while (a_pos < a_end) {
88
1.98k
            *c_pos = Op::apply(*a_pos, b);
89
1.98k
            ++a_pos;
90
1.98k
            ++c_pos;
91
1.98k
        }
92
229
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
14
                                          PaddedPODArray<UInt8>& c) {
82
14
        size_t size = a.size();
83
14
        const A* __restrict a_pos = a.data();
84
14
        UInt8* __restrict c_pos = c.data();
85
14
        const A* __restrict a_end = a_pos + size;
86
87
25.8k
        while (a_pos < a_end) {
88
25.8k
            *c_pos = Op::apply(*a_pos, b);
89
25.8k
            ++a_pos;
90
25.8k
            ++c_pos;
91
25.8k
        }
92
14
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8
                                          PaddedPODArray<UInt8>& c) {
82
8
        size_t size = a.size();
83
8
        const A* __restrict a_pos = a.data();
84
8
        UInt8* __restrict c_pos = c.data();
85
8
        const A* __restrict a_end = a_pos + size;
86
87
21.3k
        while (a_pos < a_end) {
88
21.3k
            *c_pos = Op::apply(*a_pos, b);
89
21.3k
            ++a_pos;
90
21.3k
            ++c_pos;
91
21.3k
        }
92
8
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjRNS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjRNS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
15
        while (a_pos < a_end) {
88
9
            *c_pos = Op::apply(*a_pos, b);
89
9
            ++a_pos;
90
9
            ++c_pos;
91
9
        }
92
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
105
                                          PaddedPODArray<UInt8>& c) {
82
105
        size_t size = a.size();
83
105
        const A* __restrict a_pos = a.data();
84
105
        UInt8* __restrict c_pos = c.data();
85
105
        const A* __restrict a_end = a_pos + size;
86
87
355k
        while (a_pos < a_end) {
88
355k
            *c_pos = Op::apply(*a_pos, b);
89
355k
            ++a_pos;
90
355k
            ++c_pos;
91
355k
        }
92
105
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
96
                                          PaddedPODArray<UInt8>& c) {
82
96
        size_t size = a.size();
83
96
        const A* __restrict a_pos = a.data();
84
96
        UInt8* __restrict c_pos = c.data();
85
96
        const A* __restrict a_end = a_pos + size;
86
87
275k
        while (a_pos < a_end) {
88
275k
            *c_pos = Op::apply(*a_pos, b);
89
275k
            ++a_pos;
90
275k
            ++c_pos;
91
275k
        }
92
96
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERNS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
107
108
80
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
80
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
112k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
112k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
112k
        }
113
80
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Line
Count
Source
108
26
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
26
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
78.7k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
78.7k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
78.7k
        }
113
26
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Line
Count
Source
108
17
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
17
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
33.4k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
33.4k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
33.4k
        }
113
17
    }
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE
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
441
                                                      PaddedPODArray<UInt8>& c) {
127
441
        size_t size = a_offsets.size();
128
441
        ColumnString::Offset prev_a_offset = 0;
129
441
        ColumnString::Offset prev_b_offset = 0;
130
441
        const auto* a_pos = a_data.data();
131
441
        const auto* b_pos = b_data.data();
132
133
1.15k
        for (size_t i = 0; i < size; ++i) {
134
711
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
711
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
711
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
711
                             0);
138
139
711
            prev_a_offset = a_offsets[i];
140
711
            prev_b_offset = b_offsets[i];
141
711
        }
142
441
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
43
                                                      PaddedPODArray<UInt8>& c) {
127
43
        size_t size = a_offsets.size();
128
43
        ColumnString::Offset prev_a_offset = 0;
129
43
        ColumnString::Offset prev_b_offset = 0;
130
43
        const auto* a_pos = a_data.data();
131
43
        const auto* b_pos = b_data.data();
132
133
307
        for (size_t i = 0; i < size; ++i) {
134
264
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
264
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
264
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
264
                             0);
138
139
264
            prev_a_offset = a_offsets[i];
140
264
            prev_b_offset = b_offsets[i];
141
264
        }
142
43
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
396
                                                      PaddedPODArray<UInt8>& c) {
127
396
        size_t size = a_offsets.size();
128
396
        ColumnString::Offset prev_a_offset = 0;
129
396
        ColumnString::Offset prev_b_offset = 0;
130
396
        const auto* a_pos = a_data.data();
131
396
        const auto* b_pos = b_data.data();
132
133
796
        for (size_t i = 0; i < size; ++i) {
134
400
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
400
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
400
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
400
                             0);
138
139
400
            prev_a_offset = a_offsets[i];
140
400
            prev_b_offset = b_offsets[i];
141
400
        }
142
396
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS5_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
879
                                                 PaddedPODArray<UInt8>& c) {
149
879
        size_t size = a_offsets.size();
150
879
        ColumnString::Offset prev_a_offset = 0;
151
879
        const auto* a_pos = a_data.data();
152
879
        const auto* b_pos = b_data.data();
153
154
915k
        for (size_t i = 0; i < size; ++i) {
155
914k
            c[i] = Op::apply(
156
914k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
914k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
914k
                    0);
159
160
914k
            prev_a_offset = a_offsets[i];
161
914k
        }
162
879
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
195
                                                 PaddedPODArray<UInt8>& c) {
149
195
        size_t size = a_offsets.size();
150
195
        ColumnString::Offset prev_a_offset = 0;
151
195
        const auto* a_pos = a_data.data();
152
195
        const auto* b_pos = b_data.data();
153
154
323k
        for (size_t i = 0; i < size; ++i) {
155
323k
            c[i] = Op::apply(
156
323k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
323k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
323k
                    0);
159
160
323k
            prev_a_offset = a_offsets[i];
161
323k
        }
162
195
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
123
                                                 PaddedPODArray<UInt8>& c) {
149
123
        size_t size = a_offsets.size();
150
123
        ColumnString::Offset prev_a_offset = 0;
151
123
        const auto* a_pos = a_data.data();
152
123
        const auto* b_pos = b_data.data();
153
154
72.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
123
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
283
                                                 PaddedPODArray<UInt8>& c) {
149
283
        size_t size = a_offsets.size();
150
283
        ColumnString::Offset prev_a_offset = 0;
151
283
        const auto* a_pos = a_data.data();
152
283
        const auto* b_pos = b_data.data();
153
154
223k
        for (size_t i = 0; i < size; ++i) {
155
223k
            c[i] = Op::apply(
156
223k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
223k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
223k
                    0);
159
160
223k
            prev_a_offset = a_offsets[i];
161
223k
        }
162
283
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
278
                                                 PaddedPODArray<UInt8>& c) {
149
278
        size_t size = a_offsets.size();
150
278
        ColumnString::Offset prev_a_offset = 0;
151
278
        const auto* a_pos = a_data.data();
152
278
        const auto* b_pos = b_data.data();
153
154
296k
        for (size_t i = 0; i < size; ++i) {
155
296k
            c[i] = Op::apply(
156
296k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
296k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
296k
                    0);
159
160
296k
            prev_a_offset = a_offsets[i];
161
296k
        }
162
278
    }
163
164
    static void constant_string_vector(const ColumnString::Chars& a_data,
165
                                       ColumnString::Offset a_size,
166
                                       const ColumnString::Chars& b_data,
167
                                       const ColumnString::Offsets& b_offsets,
168
0
                                       PaddedPODArray<UInt8>& c) {
169
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
0
                                                                               a_data, a_size, c);
171
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjSB_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
487
                                                      PaddedPODArray<UInt8>& c) {
181
487
        size_t size = a_offsets.size();
182
487
        ColumnString::Offset prev_a_offset = 0;
183
487
        ColumnString::Offset prev_b_offset = 0;
184
487
        const auto* a_pos = a_data.data();
185
487
        const auto* b_pos = b_data.data();
186
187
1.40k
        for (size_t i = 0; i < size; ++i) {
188
914
            auto a_size = a_offsets[i] - prev_a_offset;
189
914
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
914
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
914
                                                               b_pos + prev_b_offset, b_size);
193
194
914
            prev_a_offset = a_offsets[i];
195
914
            prev_b_offset = b_offsets[i];
196
914
        }
197
487
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
486
                                                      PaddedPODArray<UInt8>& c) {
181
486
        size_t size = a_offsets.size();
182
486
        ColumnString::Offset prev_a_offset = 0;
183
486
        ColumnString::Offset prev_b_offset = 0;
184
486
        const auto* a_pos = a_data.data();
185
486
        const auto* b_pos = b_data.data();
186
187
1.39k
        for (size_t i = 0; i < size; ++i) {
188
910
            auto a_size = a_offsets[i] - prev_a_offset;
189
910
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
910
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
910
                                                               b_pos + prev_b_offset, b_size);
193
194
910
            prev_a_offset = a_offsets[i];
195
910
            prev_b_offset = b_offsets[i];
196
910
        }
197
486
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS2_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
11.4k
                                                 PaddedPODArray<UInt8>& c) {
204
11.4k
        size_t size = a_offsets.size();
205
11.4k
        if (b_size == 0) {
206
25
            auto* __restrict data = c.data();
207
25
            auto* __restrict offsets = a_offsets.data();
208
209
25
            ColumnString::Offset prev_a_offset = 0;
210
1.10k
            for (size_t i = 0; i < size; ++i) {
211
1.07k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.07k
                prev_a_offset = offsets[i];
213
1.07k
            }
214
11.3k
        } else {
215
11.3k
            ColumnString::Offset prev_a_offset = 0;
216
11.3k
            const auto* a_pos = a_data.data();
217
11.3k
            const auto* b_pos = b_data.data();
218
1.41M
            for (size_t i = 0; i < size; ++i) {
219
1.40M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.40M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.40M
                                                                   b_pos, b_size);
222
1.40M
                prev_a_offset = a_offsets[i];
223
1.40M
            }
224
11.3k
        }
225
11.4k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
11.2k
                                                 PaddedPODArray<UInt8>& c) {
204
11.2k
        size_t size = a_offsets.size();
205
11.2k
        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
11.2k
        } else {
215
11.2k
            ColumnString::Offset prev_a_offset = 0;
216
11.2k
            const auto* a_pos = a_data.data();
217
11.2k
            const auto* b_pos = b_data.data();
218
1.36M
            for (size_t i = 0; i < size; ++i) {
219
1.35M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.35M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.35M
                                                                   b_pos, b_size);
222
1.35M
                prev_a_offset = a_offsets[i];
223
1.35M
            }
224
11.2k
        }
225
11.2k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
127
                                                 PaddedPODArray<UInt8>& c) {
204
127
        size_t size = a_offsets.size();
205
127
        if (b_size == 0) {
206
25
            auto* __restrict data = c.data();
207
25
            auto* __restrict offsets = a_offsets.data();
208
209
25
            ColumnString::Offset prev_a_offset = 0;
210
1.10k
            for (size_t i = 0; i < size; ++i) {
211
1.07k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.07k
                prev_a_offset = offsets[i];
213
1.07k
            }
214
102
        } else {
215
102
            ColumnString::Offset prev_a_offset = 0;
216
102
            const auto* a_pos = a_data.data();
217
102
            const auto* b_pos = b_data.data();
218
44.2k
            for (size_t i = 0; i < size; ++i) {
219
44.1k
                auto a_size = a_offsets[i] - prev_a_offset;
220
44.1k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
44.1k
                                                                   b_pos, b_size);
222
44.1k
                prev_a_offset = a_offsets[i];
223
44.1k
            }
224
102
        }
225
127
    }
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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEjS8_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
306k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
247k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.16k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
4.98k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
25.1k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
2.74k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
24.8k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
307k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
248k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.16k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
4.98k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
25.2k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
2.74k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
24.8k
    FunctionComparison() = default;
268
269
683k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
668k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
559
    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
5.24k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
1.71k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
3.96k
    double execute_cost() const override { return 0.5; }
270
271
private:
272
    template <PrimitiveType PT>
273
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
274
29.1k
                            const ColumnPtr& col_right_ptr) const {
275
29.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
29.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
29.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
29.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
29.1k
        DCHECK(!(left_is_const && right_is_const));
282
283
29.1k
        if (!left_is_const && !right_is_const) {
284
13.0k
            auto col_res = ColumnUInt8::create();
285
286
13.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
13.0k
            vec_res.resize(col_left->get_data().size());
288
13.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
13.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
13.0k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
13.0k
                                                     vec_res);
292
293
13.0k
            block.replace_by_position(result, std::move(col_res));
294
16.0k
        } else if (!left_is_const && right_is_const) {
295
16.0k
            auto col_res = ColumnUInt8::create();
296
297
16.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
16.0k
            vec_res.resize(col_left->size());
299
16.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
16.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
16.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
16.0k
                                                       col_right->get_element(0), vec_res);
303
304
16.0k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
29.1k
        return Status::OK();
318
29.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
93
                            const ColumnPtr& col_right_ptr) const {
275
93
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
93
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
93
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
93
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
93
        DCHECK(!(left_is_const && right_is_const));
282
283
93
        if (!left_is_const && !right_is_const) {
284
67
            auto col_res = ColumnUInt8::create();
285
286
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
67
            vec_res.resize(col_left->get_data().size());
288
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
67
                              typename PrimitiveTypeTraits<PT>::CppType,
290
67
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
67
                                                     vec_res);
292
293
67
            block.replace_by_position(result, std::move(col_res));
294
67
        } 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
93
        return Status::OK();
318
93
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
959
                            const ColumnPtr& col_right_ptr) const {
275
959
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
959
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
959
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
959
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
959
        DCHECK(!(left_is_const && right_is_const));
282
283
959
        if (!left_is_const && !right_is_const) {
284
351
            auto col_res = ColumnUInt8::create();
285
286
351
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
351
            vec_res.resize(col_left->get_data().size());
288
351
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
351
                              typename PrimitiveTypeTraits<PT>::CppType,
290
351
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
351
                                                     vec_res);
292
293
351
            block.replace_by_position(result, std::move(col_res));
294
609
        } else if (!left_is_const && right_is_const) {
295
609
            auto col_res = ColumnUInt8::create();
296
297
609
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
609
            vec_res.resize(col_left->size());
299
609
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
609
                              typename PrimitiveTypeTraits<PT>::CppType,
301
609
                              Op<PT>>::vector_constant(col_left->get_data(),
302
609
                                                       col_right->get_element(0), vec_res);
303
304
609
            block.replace_by_position(result, std::move(col_res));
305
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
959
        return Status::OK();
318
959
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
537
                            const ColumnPtr& col_right_ptr) const {
275
537
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
537
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
537
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
537
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
537
        DCHECK(!(left_is_const && right_is_const));
282
283
538
        if (!left_is_const && !right_is_const) {
284
298
            auto col_res = ColumnUInt8::create();
285
286
298
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
298
            vec_res.resize(col_left->get_data().size());
288
298
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
298
                              typename PrimitiveTypeTraits<PT>::CppType,
290
298
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
298
                                                     vec_res);
292
293
298
            block.replace_by_position(result, std::move(col_res));
294
298
        } else if (!left_is_const && right_is_const) {
295
240
            auto col_res = ColumnUInt8::create();
296
297
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
240
            vec_res.resize(col_left->size());
299
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
240
                              typename PrimitiveTypeTraits<PT>::CppType,
301
240
                              Op<PT>>::vector_constant(col_left->get_data(),
302
240
                                                       col_right->get_element(0), vec_res);
303
304
240
            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
537
        return Status::OK();
318
537
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.16k
                            const ColumnPtr& col_right_ptr) const {
275
3.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.16k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.16k
        if (!left_is_const && !right_is_const) {
284
581
            auto col_res = ColumnUInt8::create();
285
286
581
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
581
            vec_res.resize(col_left->get_data().size());
288
581
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
581
                              typename PrimitiveTypeTraits<PT>::CppType,
290
581
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
581
                                                     vec_res);
292
293
581
            block.replace_by_position(result, std::move(col_res));
294
2.58k
        } else if (!left_is_const && right_is_const) {
295
2.58k
            auto col_res = ColumnUInt8::create();
296
297
2.58k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.58k
            vec_res.resize(col_left->size());
299
2.58k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.58k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.58k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.58k
                                                       col_right->get_element(0), vec_res);
303
304
2.58k
            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
3.16k
        return Status::OK();
318
3.16k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
431
                            const ColumnPtr& col_right_ptr) const {
275
431
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
431
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
431
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
431
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
431
        DCHECK(!(left_is_const && right_is_const));
282
283
431
        if (!left_is_const && !right_is_const) {
284
130
            auto col_res = ColumnUInt8::create();
285
286
130
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
130
            vec_res.resize(col_left->get_data().size());
288
130
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
130
                              typename PrimitiveTypeTraits<PT>::CppType,
290
130
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
130
                                                     vec_res);
292
293
130
            block.replace_by_position(result, std::move(col_res));
294
301
        } else if (!left_is_const && right_is_const) {
295
301
            auto col_res = ColumnUInt8::create();
296
297
301
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
301
            vec_res.resize(col_left->size());
299
301
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
301
                              typename PrimitiveTypeTraits<PT>::CppType,
301
301
                              Op<PT>>::vector_constant(col_left->get_data(),
302
301
                                                       col_right->get_element(0), vec_res);
303
304
301
            block.replace_by_position(result, std::move(col_res));
305
301
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
431
        return Status::OK();
318
431
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.87k
                            const ColumnPtr& col_right_ptr) const {
275
1.87k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.87k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.87k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.87k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.87k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.87k
        if (!left_is_const && !right_is_const) {
284
335
            auto col_res = ColumnUInt8::create();
285
286
335
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
335
            vec_res.resize(col_left->get_data().size());
288
335
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
335
                              typename PrimitiveTypeTraits<PT>::CppType,
290
335
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
335
                                                     vec_res);
292
293
335
            block.replace_by_position(result, std::move(col_res));
294
1.54k
        } else if (!left_is_const && right_is_const) {
295
1.53k
            auto col_res = ColumnUInt8::create();
296
297
1.53k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.53k
            vec_res.resize(col_left->size());
299
1.53k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.53k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.53k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.53k
                                                       col_right->get_element(0), vec_res);
303
304
1.53k
            block.replace_by_position(result, std::move(col_res));
305
1.53k
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
1.87k
        return Status::OK();
318
1.87k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
957
                            const ColumnPtr& col_right_ptr) const {
275
957
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
957
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
957
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
957
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
957
        DCHECK(!(left_is_const && right_is_const));
282
283
957
        if (!left_is_const && !right_is_const) {
284
203
            auto col_res = ColumnUInt8::create();
285
286
203
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
203
            vec_res.resize(col_left->get_data().size());
288
203
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
203
                              typename PrimitiveTypeTraits<PT>::CppType,
290
203
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
203
                                                     vec_res);
292
293
203
            block.replace_by_position(result, std::move(col_res));
294
754
        } else if (!left_is_const && right_is_const) {
295
754
            auto col_res = ColumnUInt8::create();
296
297
754
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
754
            vec_res.resize(col_left->size());
299
754
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
754
                              typename PrimitiveTypeTraits<PT>::CppType,
301
754
                              Op<PT>>::vector_constant(col_left->get_data(),
302
754
                                                       col_right->get_element(0), vec_res);
303
304
754
            block.replace_by_position(result, std::move(col_res));
305
754
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
957
        return Status::OK();
318
957
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
129
                            const ColumnPtr& col_right_ptr) const {
275
129
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
129
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
129
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
129
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
129
        DCHECK(!(left_is_const && right_is_const));
282
283
129
        if (!left_is_const && !right_is_const) {
284
105
            auto col_res = ColumnUInt8::create();
285
286
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
105
            vec_res.resize(col_left->get_data().size());
288
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
105
                              typename PrimitiveTypeTraits<PT>::CppType,
290
105
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
105
                                                     vec_res);
292
293
105
            block.replace_by_position(result, std::move(col_res));
294
105
        } 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
129
        return Status::OK();
318
129
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
31
                            const ColumnPtr& col_right_ptr) const {
275
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
31
        DCHECK(!(left_is_const && right_is_const));
282
283
31
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
15
            auto col_res = ColumnUInt8::create();
296
297
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
15
            vec_res.resize(col_left->size());
299
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
15
                              typename PrimitiveTypeTraits<PT>::CppType,
301
15
                              Op<PT>>::vector_constant(col_left->get_data(),
302
15
                                                       col_right->get_element(0), vec_res);
303
304
15
            block.replace_by_position(result, std::move(col_res));
305
15
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
31
        return Status::OK();
318
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30
                            const ColumnPtr& col_right_ptr) const {
275
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30
        DCHECK(!(left_is_const && right_is_const));
282
283
30
        if (!left_is_const && !right_is_const) {
284
24
            auto col_res = ColumnUInt8::create();
285
286
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
24
            vec_res.resize(col_left->get_data().size());
288
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              typename PrimitiveTypeTraits<PT>::CppType,
290
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
24
                                                     vec_res);
292
293
24
            block.replace_by_position(result, std::move(col_res));
294
24
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
30
        return Status::OK();
318
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
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
115
            auto col_res = ColumnUInt8::create();
285
286
115
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
115
            vec_res.resize(col_left->get_data().size());
288
115
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
115
                              typename PrimitiveTypeTraits<PT>::CppType,
290
115
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
115
                                                     vec_res);
292
293
115
            block.replace_by_position(result, std::move(col_res));
294
115
        } 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
115
        return Status::OK();
318
115
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
338
                            const ColumnPtr& col_right_ptr) const {
275
338
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
338
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
338
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
338
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
338
        DCHECK(!(left_is_const && right_is_const));
282
283
338
        if (!left_is_const && !right_is_const) {
284
113
            auto col_res = ColumnUInt8::create();
285
286
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
113
            vec_res.resize(col_left->get_data().size());
288
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
113
                              typename PrimitiveTypeTraits<PT>::CppType,
290
113
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
113
                                                     vec_res);
292
293
113
            block.replace_by_position(result, std::move(col_res));
294
225
        } else if (!left_is_const && right_is_const) {
295
225
            auto col_res = ColumnUInt8::create();
296
297
225
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
225
            vec_res.resize(col_left->size());
299
225
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
225
                              typename PrimitiveTypeTraits<PT>::CppType,
301
225
                              Op<PT>>::vector_constant(col_left->get_data(),
302
225
                                                       col_right->get_element(0), vec_res);
303
304
225
            block.replace_by_position(result, std::move(col_res));
305
225
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
338
        return Status::OK();
318
338
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
4
            auto col_res = ColumnUInt8::create();
285
286
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
4
            vec_res.resize(col_left->get_data().size());
288
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              typename PrimitiveTypeTraits<PT>::CppType,
290
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
4
                                                     vec_res);
292
293
4
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
41
                            const ColumnPtr& col_right_ptr) const {
275
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
41
        DCHECK(!(left_is_const && right_is_const));
282
283
41
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
39
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
41
        return Status::OK();
318
41
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
92
                            const ColumnPtr& col_right_ptr) const {
275
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
92
        DCHECK(!(left_is_const && right_is_const));
282
283
92
        if (!left_is_const && !right_is_const) {
284
64
            auto col_res = ColumnUInt8::create();
285
286
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
64
            vec_res.resize(col_left->get_data().size());
288
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
64
                              typename PrimitiveTypeTraits<PT>::CppType,
290
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
64
                                                     vec_res);
292
293
64
            block.replace_by_position(result, std::move(col_res));
294
64
        } else if (!left_is_const && right_is_const) {
295
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
92
        return Status::OK();
318
92
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.00k
                            const ColumnPtr& col_right_ptr) const {
275
1.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.00k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.00k
        if (!left_is_const && !right_is_const) {
284
941
            auto col_res = ColumnUInt8::create();
285
286
941
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
941
            vec_res.resize(col_left->get_data().size());
288
941
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
941
                              typename PrimitiveTypeTraits<PT>::CppType,
290
941
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
941
                                                     vec_res);
292
293
941
            block.replace_by_position(result, std::move(col_res));
294
941
        } else if (!left_is_const && right_is_const) {
295
63
            auto col_res = ColumnUInt8::create();
296
297
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
63
            vec_res.resize(col_left->size());
299
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
63
                              typename PrimitiveTypeTraits<PT>::CppType,
301
63
                              Op<PT>>::vector_constant(col_left->get_data(),
302
63
                                                       col_right->get_element(0), vec_res);
303
304
63
            block.replace_by_position(result, std::move(col_res));
305
63
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.00k
        return Status::OK();
318
1.00k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
452
                            const ColumnPtr& col_right_ptr) const {
275
452
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
452
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
452
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
452
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
452
        DCHECK(!(left_is_const && right_is_const));
282
283
452
        if (!left_is_const && !right_is_const) {
284
427
            auto col_res = ColumnUInt8::create();
285
286
427
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
427
            vec_res.resize(col_left->get_data().size());
288
427
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
427
                              typename PrimitiveTypeTraits<PT>::CppType,
290
427
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
427
                                                     vec_res);
292
293
427
            block.replace_by_position(result, std::move(col_res));
294
427
        } else if (!left_is_const && right_is_const) {
295
25
            auto col_res = ColumnUInt8::create();
296
297
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
25
            vec_res.resize(col_left->size());
299
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
25
                              typename PrimitiveTypeTraits<PT>::CppType,
301
25
                              Op<PT>>::vector_constant(col_left->get_data(),
302
25
                                                       col_right->get_element(0), vec_res);
303
304
25
            block.replace_by_position(result, std::move(col_res));
305
25
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
452
        return Status::OK();
318
452
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
52
                            const ColumnPtr& col_right_ptr) const {
275
52
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
52
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
52
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
52
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
52
        DCHECK(!(left_is_const && right_is_const));
282
283
52
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
32
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
52
        return Status::OK();
318
52
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
72
                            const ColumnPtr& col_right_ptr) const {
275
72
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
72
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
72
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
72
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
72
        DCHECK(!(left_is_const && right_is_const));
282
283
72
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
52
        } else if (!left_is_const && right_is_const) {
295
52
            auto col_res = ColumnUInt8::create();
296
297
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
52
            vec_res.resize(col_left->size());
299
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
52
                              typename PrimitiveTypeTraits<PT>::CppType,
301
52
                              Op<PT>>::vector_constant(col_left->get_data(),
302
52
                                                       col_right->get_element(0), vec_res);
303
304
52
            block.replace_by_position(result, std::move(col_res));
305
52
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
72
        return Status::OK();
318
72
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.16k
                            const ColumnPtr& col_right_ptr) const {
275
1.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.16k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.16k
        if (!left_is_const && !right_is_const) {
284
1.16k
            auto col_res = ColumnUInt8::create();
285
286
1.16k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.16k
            vec_res.resize(col_left->get_data().size());
288
1.16k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.16k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.16k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.16k
                                                     vec_res);
292
293
1.16k
            block.replace_by_position(result, std::move(col_res));
294
1.16k
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.16k
        return Status::OK();
318
1.16k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
621
                            const ColumnPtr& col_right_ptr) const {
275
621
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
621
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
621
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
621
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
621
        DCHECK(!(left_is_const && right_is_const));
282
283
621
        if (!left_is_const && !right_is_const) {
284
210
            auto col_res = ColumnUInt8::create();
285
286
210
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
210
            vec_res.resize(col_left->get_data().size());
288
210
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
210
                              typename PrimitiveTypeTraits<PT>::CppType,
290
210
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
210
                                                     vec_res);
292
293
210
            block.replace_by_position(result, std::move(col_res));
294
411
        } else if (!left_is_const && right_is_const) {
295
411
            auto col_res = ColumnUInt8::create();
296
297
411
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
411
            vec_res.resize(col_left->size());
299
411
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
411
                              typename PrimitiveTypeTraits<PT>::CppType,
301
411
                              Op<PT>>::vector_constant(col_left->get_data(),
302
411
                                                       col_right->get_element(0), vec_res);
303
304
411
            block.replace_by_position(result, std::move(col_res));
305
411
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
621
        return Status::OK();
318
621
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
833
                            const ColumnPtr& col_right_ptr) const {
275
833
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
833
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
833
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
833
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
833
        DCHECK(!(left_is_const && right_is_const));
282
283
835
        if (!left_is_const && !right_is_const) {
284
423
            auto col_res = ColumnUInt8::create();
285
286
423
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
423
            vec_res.resize(col_left->get_data().size());
288
423
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
423
                              typename PrimitiveTypeTraits<PT>::CppType,
290
423
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
423
                                                     vec_res);
292
293
423
            block.replace_by_position(result, std::move(col_res));
294
423
        } else if (!left_is_const && right_is_const) {
295
412
            auto col_res = ColumnUInt8::create();
296
297
412
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
412
            vec_res.resize(col_left->size());
299
412
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
412
                              typename PrimitiveTypeTraits<PT>::CppType,
301
412
                              Op<PT>>::vector_constant(col_left->get_data(),
302
412
                                                       col_right->get_element(0), vec_res);
303
304
412
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
833
        return Status::OK();
318
833
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4.76k
                            const ColumnPtr& col_right_ptr) const {
275
4.76k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4.76k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4.76k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4.76k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4.76k
        DCHECK(!(left_is_const && right_is_const));
282
283
4.77k
        if (!left_is_const && !right_is_const) {
284
2.94k
            auto col_res = ColumnUInt8::create();
285
286
2.94k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2.94k
            vec_res.resize(col_left->get_data().size());
288
2.94k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2.94k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2.94k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2.94k
                                                     vec_res);
292
293
2.94k
            block.replace_by_position(result, std::move(col_res));
294
2.94k
        } else if (!left_is_const && right_is_const) {
295
1.82k
            auto col_res = ColumnUInt8::create();
296
297
1.82k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.82k
            vec_res.resize(col_left->size());
299
1.82k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.82k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.82k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.82k
                                                       col_right->get_element(0), vec_res);
303
304
1.82k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4.76k
        return Status::OK();
318
4.76k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.23k
                            const ColumnPtr& col_right_ptr) const {
275
1.23k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.23k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.23k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.23k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.23k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.23k
        if (!left_is_const && !right_is_const) {
284
94
            auto col_res = ColumnUInt8::create();
285
286
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
94
            vec_res.resize(col_left->get_data().size());
288
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
94
                              typename PrimitiveTypeTraits<PT>::CppType,
290
94
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
94
                                                     vec_res);
292
293
94
            block.replace_by_position(result, std::move(col_res));
294
1.14k
        } else if (!left_is_const && right_is_const) {
295
1.14k
            auto col_res = ColumnUInt8::create();
296
297
1.14k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.14k
            vec_res.resize(col_left->size());
299
1.14k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.14k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.14k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.14k
                                                       col_right->get_element(0), vec_res);
303
304
1.14k
            block.replace_by_position(result, std::move(col_res));
305
1.14k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.23k
        return Status::OK();
318
1.23k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
247
                            const ColumnPtr& col_right_ptr) const {
275
247
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
247
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
247
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
247
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
247
        DCHECK(!(left_is_const && right_is_const));
282
283
247
        if (!left_is_const && !right_is_const) {
284
40
            auto col_res = ColumnUInt8::create();
285
286
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
40
            vec_res.resize(col_left->get_data().size());
288
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
40
                              typename PrimitiveTypeTraits<PT>::CppType,
290
40
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
40
                                                     vec_res);
292
293
40
            block.replace_by_position(result, std::move(col_res));
294
207
        } else if (!left_is_const && right_is_const) {
295
207
            auto col_res = ColumnUInt8::create();
296
297
207
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
207
            vec_res.resize(col_left->size());
299
207
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
207
                              typename PrimitiveTypeTraits<PT>::CppType,
301
207
                              Op<PT>>::vector_constant(col_left->get_data(),
302
207
                                                       col_right->get_element(0), vec_res);
303
304
207
            block.replace_by_position(result, std::move(col_res));
305
207
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
247
        return Status::OK();
318
247
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
228
                            const ColumnPtr& col_right_ptr) const {
275
228
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
228
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
228
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
228
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
228
        DCHECK(!(left_is_const && right_is_const));
282
283
228
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
208
        } else if (!left_is_const && right_is_const) {
295
208
            auto col_res = ColumnUInt8::create();
296
297
208
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
208
            vec_res.resize(col_left->size());
299
208
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
208
                              typename PrimitiveTypeTraits<PT>::CppType,
301
208
                              Op<PT>>::vector_constant(col_left->get_data(),
302
208
                                                       col_right->get_element(0), vec_res);
303
304
208
            block.replace_by_position(result, std::move(col_res));
305
208
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
228
        return Status::OK();
318
228
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
539
                            const ColumnPtr& col_right_ptr) const {
275
539
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
539
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
539
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
539
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
539
        DCHECK(!(left_is_const && right_is_const));
282
283
540
        if (!left_is_const && !right_is_const) {
284
35
            auto col_res = ColumnUInt8::create();
285
286
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
35
            vec_res.resize(col_left->get_data().size());
288
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
35
                              typename PrimitiveTypeTraits<PT>::CppType,
290
35
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
35
                                                     vec_res);
292
293
35
            block.replace_by_position(result, std::move(col_res));
294
505
        } else if (!left_is_const && right_is_const) {
295
505
            auto col_res = ColumnUInt8::create();
296
297
505
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
505
            vec_res.resize(col_left->size());
299
505
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
505
                              typename PrimitiveTypeTraits<PT>::CppType,
301
505
                              Op<PT>>::vector_constant(col_left->get_data(),
302
505
                                                       col_right->get_element(0), vec_res);
303
304
505
            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
539
        return Status::OK();
318
539
    }
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
8
                            const ColumnPtr& col_right_ptr) const {
275
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8
        DCHECK(!(left_is_const && right_is_const));
282
283
8
        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
8
        } else if (!left_is_const && right_is_const) {
295
8
            auto col_res = ColumnUInt8::create();
296
297
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8
            vec_res.resize(col_left->size());
299
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8
                                                       col_right->get_element(0), vec_res);
303
304
8
            block.replace_by_position(result, std::move(col_res));
305
8
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
8
        return Status::OK();
318
8
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
520
                            const ColumnPtr& col_right_ptr) const {
275
520
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
520
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
520
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
520
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
520
        DCHECK(!(left_is_const && right_is_const));
282
283
520
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
513
        } else if (!left_is_const && right_is_const) {
295
513
            auto col_res = ColumnUInt8::create();
296
297
513
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
513
            vec_res.resize(col_left->size());
299
513
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
513
                              typename PrimitiveTypeTraits<PT>::CppType,
301
513
                              Op<PT>>::vector_constant(col_left->get_data(),
302
513
                                                       col_right->get_element(0), vec_res);
303
304
513
            block.replace_by_position(result, std::move(col_res));
305
513
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
520
        return Status::OK();
318
520
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
156
                            const ColumnPtr& col_right_ptr) const {
275
156
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
156
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
156
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
156
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
156
        DCHECK(!(left_is_const && right_is_const));
282
283
156
        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
146
        } else if (!left_is_const && right_is_const) {
295
146
            auto col_res = ColumnUInt8::create();
296
297
146
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
146
            vec_res.resize(col_left->size());
299
146
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
146
                              typename PrimitiveTypeTraits<PT>::CppType,
301
146
                              Op<PT>>::vector_constant(col_left->get_data(),
302
146
                                                       col_right->get_element(0), vec_res);
303
304
146
            block.replace_by_position(result, std::move(col_res));
305
146
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
156
        return Status::OK();
318
156
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
63
                            const ColumnPtr& col_right_ptr) const {
275
63
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
63
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
63
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
63
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
63
        DCHECK(!(left_is_const && right_is_const));
282
283
63
        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
63
        } else if (!left_is_const && right_is_const) {
295
63
            auto col_res = ColumnUInt8::create();
296
297
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
63
            vec_res.resize(col_left->size());
299
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
63
                              typename PrimitiveTypeTraits<PT>::CppType,
301
63
                              Op<PT>>::vector_constant(col_left->get_data(),
302
63
                                                       col_right->get_element(0), vec_res);
303
304
63
            block.replace_by_position(result, std::move(col_res));
305
63
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
63
        return Status::OK();
318
63
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
111
                            const ColumnPtr& col_right_ptr) const {
275
111
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
111
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
111
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
111
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
111
        DCHECK(!(left_is_const && right_is_const));
282
283
111
        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
111
        } else if (!left_is_const && right_is_const) {
295
111
            auto col_res = ColumnUInt8::create();
296
297
111
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
111
            vec_res.resize(col_left->size());
299
111
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
111
                              typename PrimitiveTypeTraits<PT>::CppType,
301
111
                              Op<PT>>::vector_constant(col_left->get_data(),
302
111
                                                       col_right->get_element(0), vec_res);
303
304
111
            block.replace_by_position(result, std::move(col_res));
305
111
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
111
        return Status::OK();
318
111
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
622
                            const ColumnPtr& col_right_ptr) const {
275
622
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
622
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
622
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
622
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
622
        DCHECK(!(left_is_const && right_is_const));
282
283
622
        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
617
        } else if (!left_is_const && right_is_const) {
295
617
            auto col_res = ColumnUInt8::create();
296
297
617
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
617
            vec_res.resize(col_left->size());
299
617
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
617
                              typename PrimitiveTypeTraits<PT>::CppType,
301
617
                              Op<PT>>::vector_constant(col_left->get_data(),
302
617
                                                       col_right->get_element(0), vec_res);
303
304
617
            block.replace_by_position(result, std::move(col_res));
305
617
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
622
        return Status::OK();
318
622
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
169
                            const ColumnPtr& col_right_ptr) const {
275
169
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
169
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
169
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
169
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
169
        DCHECK(!(left_is_const && right_is_const));
282
283
169
        if (!left_is_const && !right_is_const) {
284
17
            auto col_res = ColumnUInt8::create();
285
286
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
17
            vec_res.resize(col_left->get_data().size());
288
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
17
                              typename PrimitiveTypeTraits<PT>::CppType,
290
17
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
17
                                                     vec_res);
292
293
17
            block.replace_by_position(result, std::move(col_res));
294
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
169
        return Status::OK();
318
169
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
14
                            const ColumnPtr& col_right_ptr) const {
275
14
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
14
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
14
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
14
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
14
        DCHECK(!(left_is_const && right_is_const));
282
283
14
        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
14
        } 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
14
        return Status::OK();
318
14
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11
                            const ColumnPtr& col_right_ptr) const {
275
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11
        DCHECK(!(left_is_const && right_is_const));
282
283
11
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
11
        return Status::OK();
318
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
26
                            const ColumnPtr& col_right_ptr) const {
275
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
26
        DCHECK(!(left_is_const && right_is_const));
282
283
26
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
20
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
26
        return Status::OK();
318
26
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
189
                            const ColumnPtr& col_right_ptr) const {
275
189
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
189
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
189
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
189
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
189
        DCHECK(!(left_is_const && right_is_const));
282
283
189
        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
105
        } else if (!left_is_const && right_is_const) {
295
105
            auto col_res = ColumnUInt8::create();
296
297
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
105
            vec_res.resize(col_left->size());
299
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
105
                              typename PrimitiveTypeTraits<PT>::CppType,
301
105
                              Op<PT>>::vector_constant(col_left->get_data(),
302
105
                                                       col_right->get_element(0), vec_res);
303
304
105
            block.replace_by_position(result, std::move(col_res));
305
105
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
189
        return Status::OK();
318
189
    }
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
73
                            const ColumnPtr& col_right_ptr) const {
275
73
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
73
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
73
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
73
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
73
        DCHECK(!(left_is_const && right_is_const));
282
283
73
        if (!left_is_const && !right_is_const) {
284
73
            auto col_res = ColumnUInt8::create();
285
286
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
73
            vec_res.resize(col_left->get_data().size());
288
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
73
                              typename PrimitiveTypeTraits<PT>::CppType,
290
73
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
73
                                                     vec_res);
292
293
73
            block.replace_by_position(result, std::move(col_res));
294
73
        } else if (!left_is_const && right_is_const) {
295
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
73
        return Status::OK();
318
73
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.06k
                            const ColumnPtr& col_right_ptr) const {
275
2.06k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.06k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.06k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.06k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.06k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.06k
        if (!left_is_const && !right_is_const) {
284
1.73k
            auto col_res = ColumnUInt8::create();
285
286
1.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.73k
            vec_res.resize(col_left->get_data().size());
288
1.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.73k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.73k
                                                     vec_res);
292
293
1.73k
            block.replace_by_position(result, std::move(col_res));
294
1.73k
        } else if (!left_is_const && right_is_const) {
295
326
            auto col_res = ColumnUInt8::create();
296
297
326
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
326
            vec_res.resize(col_left->size());
299
326
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
326
                              typename PrimitiveTypeTraits<PT>::CppType,
301
326
                              Op<PT>>::vector_constant(col_left->get_data(),
302
326
                                                       col_right->get_element(0), vec_res);
303
304
326
            block.replace_by_position(result, std::move(col_res));
305
326
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.06k
        return Status::OK();
318
2.06k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
300
                            const ColumnPtr& col_right_ptr) const {
275
300
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
300
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
300
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
300
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
300
        DCHECK(!(left_is_const && right_is_const));
282
283
300
        if (!left_is_const && !right_is_const) {
284
239
            auto col_res = ColumnUInt8::create();
285
286
239
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
239
            vec_res.resize(col_left->get_data().size());
288
239
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
239
                              typename PrimitiveTypeTraits<PT>::CppType,
290
239
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
239
                                                     vec_res);
292
293
239
            block.replace_by_position(result, std::move(col_res));
294
239
        } else if (!left_is_const && right_is_const) {
295
61
            auto col_res = ColumnUInt8::create();
296
297
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
61
            vec_res.resize(col_left->size());
299
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
61
                              typename PrimitiveTypeTraits<PT>::CppType,
301
61
                              Op<PT>>::vector_constant(col_left->get_data(),
302
61
                                                       col_right->get_element(0), vec_res);
303
304
61
            block.replace_by_position(result, std::move(col_res));
305
61
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
300
        return Status::OK();
318
300
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
542
                            const ColumnPtr& col_right_ptr) const {
275
542
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
542
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
542
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
542
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
542
        DCHECK(!(left_is_const && right_is_const));
282
283
542
        if (!left_is_const && !right_is_const) {
284
508
            auto col_res = ColumnUInt8::create();
285
286
508
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
508
            vec_res.resize(col_left->get_data().size());
288
508
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
508
                              typename PrimitiveTypeTraits<PT>::CppType,
290
508
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
508
                                                     vec_res);
292
293
508
            block.replace_by_position(result, std::move(col_res));
294
508
        } else if (!left_is_const && right_is_const) {
295
34
            auto col_res = ColumnUInt8::create();
296
297
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
34
            vec_res.resize(col_left->size());
299
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
34
                              typename PrimitiveTypeTraits<PT>::CppType,
301
34
                              Op<PT>>::vector_constant(col_left->get_data(),
302
34
                                                       col_right->get_element(0), vec_res);
303
304
34
            block.replace_by_position(result, std::move(col_res));
305
34
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
542
        return Status::OK();
318
542
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
144
                            const ColumnPtr& col_right_ptr) const {
275
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
144
        DCHECK(!(left_is_const && right_is_const));
282
283
144
        if (!left_is_const && !right_is_const) {
284
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
124
        } else if (!left_is_const && right_is_const) {
295
20
            auto col_res = ColumnUInt8::create();
296
297
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20
            vec_res.resize(col_left->size());
299
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20
                                                       col_right->get_element(0), vec_res);
303
304
20
            block.replace_by_position(result, std::move(col_res));
305
20
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
144
        return Status::OK();
318
144
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
698
                            const ColumnPtr& col_right_ptr) const {
275
698
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
698
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
698
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
698
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
698
        DCHECK(!(left_is_const && right_is_const));
282
283
698
        if (!left_is_const && !right_is_const) {
284
163
            auto col_res = ColumnUInt8::create();
285
286
163
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
163
            vec_res.resize(col_left->get_data().size());
288
163
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
163
                              typename PrimitiveTypeTraits<PT>::CppType,
290
163
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
163
                                                     vec_res);
292
293
163
            block.replace_by_position(result, std::move(col_res));
294
535
        } else if (!left_is_const && right_is_const) {
295
535
            auto col_res = ColumnUInt8::create();
296
297
535
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
535
            vec_res.resize(col_left->size());
299
535
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
535
                              typename PrimitiveTypeTraits<PT>::CppType,
301
535
                              Op<PT>>::vector_constant(col_left->get_data(),
302
535
                                                       col_right->get_element(0), vec_res);
303
304
535
            block.replace_by_position(result, std::move(col_res));
305
535
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
698
        return Status::OK();
318
698
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
679
                            const ColumnPtr& col_right_ptr) const {
275
679
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
679
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
679
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
679
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
679
        DCHECK(!(left_is_const && right_is_const));
282
283
679
        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
480
        } else if (!left_is_const && right_is_const) {
295
480
            auto col_res = ColumnUInt8::create();
296
297
480
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
480
            vec_res.resize(col_left->size());
299
480
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
480
                              typename PrimitiveTypeTraits<PT>::CppType,
301
480
                              Op<PT>>::vector_constant(col_left->get_data(),
302
480
                                                       col_right->get_element(0), vec_res);
303
304
480
            block.replace_by_position(result, std::move(col_res));
305
480
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
679
        return Status::OK();
318
679
    }
_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
188
            auto col_res = ColumnUInt8::create();
285
286
188
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
188
            vec_res.resize(col_left->get_data().size());
288
188
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
188
                              typename PrimitiveTypeTraits<PT>::CppType,
290
188
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
188
                                                     vec_res);
292
293
188
            block.replace_by_position(result, std::move(col_res));
294
188
        } else if (!left_is_const && right_is_const) {
295
13
            auto col_res = ColumnUInt8::create();
296
297
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13
            vec_res.resize(col_left->size());
299
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13
                                                       col_right->get_element(0), vec_res);
303
304
13
            block.replace_by_position(result, std::move(col_res));
305
13
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
201
        return Status::OK();
318
201
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
131
                            const ColumnPtr& col_right_ptr) const {
275
131
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
131
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
131
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
131
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
131
        DCHECK(!(left_is_const && right_is_const));
282
283
131
        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
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
131
        return Status::OK();
318
131
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
333
                            const ColumnPtr& col_right_ptr) const {
275
333
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
333
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
333
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
333
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
333
        DCHECK(!(left_is_const && right_is_const));
282
283
333
        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
182
        } else if (!left_is_const && right_is_const) {
295
182
            auto col_res = ColumnUInt8::create();
296
297
182
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
182
            vec_res.resize(col_left->size());
299
182
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
182
                              typename PrimitiveTypeTraits<PT>::CppType,
301
182
                              Op<PT>>::vector_constant(col_left->get_data(),
302
182
                                                       col_right->get_element(0), vec_res);
303
304
182
            block.replace_by_position(result, std::move(col_res));
305
182
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
333
        return Status::OK();
318
333
    }
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
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
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
16
        } else if (!left_is_const && right_is_const) {
295
16
            auto col_res = ColumnUInt8::create();
296
297
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
16
            vec_res.resize(col_left->size());
299
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
16
                              typename PrimitiveTypeTraits<PT>::CppType,
301
16
                              Op<PT>>::vector_constant(col_left->get_data(),
302
16
                                                       col_right->get_element(0), vec_res);
303
304
16
            block.replace_by_position(result, std::move(col_res));
305
16
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
584
                            const ColumnPtr& col_right_ptr) const {
275
584
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
584
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
584
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
584
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
584
        DCHECK(!(left_is_const && right_is_const));
282
283
584
        if (!left_is_const && !right_is_const) {
284
442
            auto col_res = ColumnUInt8::create();
285
286
442
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
442
            vec_res.resize(col_left->get_data().size());
288
442
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
442
                              typename PrimitiveTypeTraits<PT>::CppType,
290
442
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
442
                                                     vec_res);
292
293
442
            block.replace_by_position(result, std::move(col_res));
294
442
        } else if (!left_is_const && right_is_const) {
295
142
            auto col_res = ColumnUInt8::create();
296
297
142
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
142
            vec_res.resize(col_left->size());
299
142
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
142
                              typename PrimitiveTypeTraits<PT>::CppType,
301
142
                              Op<PT>>::vector_constant(col_left->get_data(),
302
142
                                                       col_right->get_element(0), vec_res);
303
304
142
            block.replace_by_position(result, std::move(col_res));
305
142
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
584
        return Status::OK();
318
584
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
42
                            const ColumnPtr& col_right_ptr) const {
275
42
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
42
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
42
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
42
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
42
        DCHECK(!(left_is_const && right_is_const));
282
283
42
        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
42
        } else if (!left_is_const && right_is_const) {
295
42
            auto col_res = ColumnUInt8::create();
296
297
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
42
            vec_res.resize(col_left->size());
299
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
42
                              typename PrimitiveTypeTraits<PT>::CppType,
301
42
                              Op<PT>>::vector_constant(col_left->get_data(),
302
42
                                                       col_right->get_element(0), vec_res);
303
304
42
            block.replace_by_position(result, std::move(col_res));
305
42
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
42
        return Status::OK();
318
42
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
64
                            const ColumnPtr& col_right_ptr) const {
275
64
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
64
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
64
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
64
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
64
        DCHECK(!(left_is_const && right_is_const));
282
283
64
        if (!left_is_const && !right_is_const) {
284
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
63
        } else if (!left_is_const && right_is_const) {
295
63
            auto col_res = ColumnUInt8::create();
296
297
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
63
            vec_res.resize(col_left->size());
299
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
63
                              typename PrimitiveTypeTraits<PT>::CppType,
301
63
                              Op<PT>>::vector_constant(col_left->get_data(),
302
63
                                                       col_right->get_element(0), vec_res);
303
304
63
            block.replace_by_position(result, std::move(col_res));
305
63
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
64
        return Status::OK();
318
64
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
169
                            const ColumnPtr& col_right_ptr) const {
275
169
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
169
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
169
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
169
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
169
        DCHECK(!(left_is_const && right_is_const));
282
283
169
        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
169
        } else if (!left_is_const && right_is_const) {
295
169
            auto col_res = ColumnUInt8::create();
296
297
169
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
169
            vec_res.resize(col_left->size());
299
169
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
169
                              typename PrimitiveTypeTraits<PT>::CppType,
301
169
                              Op<PT>>::vector_constant(col_left->get_data(),
302
169
                                                       col_right->get_element(0), vec_res);
303
304
169
            block.replace_by_position(result, std::move(col_res));
305
169
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
169
        return Status::OK();
318
169
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
699
                            const ColumnPtr& col_right_ptr) const {
275
699
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
699
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
699
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
699
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
699
        DCHECK(!(left_is_const && right_is_const));
282
283
700
        if (!left_is_const && !right_is_const) {
284
51
            auto col_res = ColumnUInt8::create();
285
286
51
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
51
            vec_res.resize(col_left->get_data().size());
288
51
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
51
                              typename PrimitiveTypeTraits<PT>::CppType,
290
51
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
51
                                                     vec_res);
292
293
51
            block.replace_by_position(result, std::move(col_res));
294
649
        } else if (!left_is_const && right_is_const) {
295
649
            auto col_res = ColumnUInt8::create();
296
297
649
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
649
            vec_res.resize(col_left->size());
299
649
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
649
                              typename PrimitiveTypeTraits<PT>::CppType,
301
649
                              Op<PT>>::vector_constant(col_left->get_data(),
302
649
                                                       col_right->get_element(0), vec_res);
303
304
649
            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
699
        return Status::OK();
318
699
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
264
                            const ColumnPtr& col_right_ptr) const {
275
264
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
264
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
264
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
264
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
264
        DCHECK(!(left_is_const && right_is_const));
282
283
264
        if (!left_is_const && !right_is_const) {
284
35
            auto col_res = ColumnUInt8::create();
285
286
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
35
            vec_res.resize(col_left->get_data().size());
288
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
35
                              typename PrimitiveTypeTraits<PT>::CppType,
290
35
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
35
                                                     vec_res);
292
293
35
            block.replace_by_position(result, std::move(col_res));
294
229
        } else if (!left_is_const && right_is_const) {
295
229
            auto col_res = ColumnUInt8::create();
296
297
229
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
229
            vec_res.resize(col_left->size());
299
229
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
229
                              typename PrimitiveTypeTraits<PT>::CppType,
301
229
                              Op<PT>>::vector_constant(col_left->get_data(),
302
229
                                                       col_right->get_element(0), vec_res);
303
304
229
            block.replace_by_position(result, std::move(col_res));
305
229
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
264
        return Status::OK();
318
264
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8
                            const ColumnPtr& col_right_ptr) const {
275
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8
        DCHECK(!(left_is_const && right_is_const));
282
283
8
        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
8
        } else if (!left_is_const && right_is_const) {
295
8
            auto col_res = ColumnUInt8::create();
296
297
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8
            vec_res.resize(col_left->size());
299
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8
                                                       col_right->get_element(0), vec_res);
303
304
8
            block.replace_by_position(result, std::move(col_res));
305
8
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
8
        return Status::OK();
318
8
    }
_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
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
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
96
        } else if (!left_is_const && right_is_const) {
295
96
            auto col_res = ColumnUInt8::create();
296
297
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
96
            vec_res.resize(col_left->size());
299
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
96
                              typename PrimitiveTypeTraits<PT>::CppType,
301
96
                              Op<PT>>::vector_constant(col_left->get_data(),
302
96
                                                       col_right->get_element(0), vec_res);
303
304
96
            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
115
        return Status::OK();
318
115
    }
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.30k
                           const ColumnWithTypeAndName& col_right) const {
322
3.30k
        auto call = [&](const auto& type) -> bool {
323
3.30k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.30k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.30k
                    block, result, col_left, col_right);
326
3.30k
            return true;
327
3.30k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
156
        auto call = [&](const auto& type) -> bool {
323
156
            using DispatchType = std::decay_t<decltype(type)>;
324
156
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
156
                    block, result, col_left, col_right);
326
156
            return true;
327
156
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
177
        auto call = [&](const auto& type) -> bool {
323
177
            using DispatchType = std::decay_t<decltype(type)>;
324
177
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
177
                    block, result, col_left, col_right);
326
177
            return true;
327
177
        };
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
872
        auto call = [&](const auto& type) -> bool {
323
872
            using DispatchType = std::decay_t<decltype(type)>;
324
872
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
872
                    block, result, col_left, col_right);
326
872
            return true;
327
872
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
28
        auto call = [&](const auto& type) -> bool {
323
28
            using DispatchType = std::decay_t<decltype(type)>;
324
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
28
                    block, result, col_left, col_right);
326
28
            return true;
327
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
12
        auto call = [&](const auto& type) -> bool {
323
12
            using DispatchType = std::decay_t<decltype(type)>;
324
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
12
                    block, result, col_left, col_right);
326
12
            return true;
327
12
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
66
        auto call = [&](const auto& type) -> bool {
323
66
            using DispatchType = std::decay_t<decltype(type)>;
324
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
66
                    block, result, col_left, col_right);
326
66
            return true;
327
66
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
956
        auto call = [&](const auto& type) -> bool {
323
956
            using DispatchType = std::decay_t<decltype(type)>;
324
956
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
956
                    block, result, col_left, col_right);
326
956
            return true;
327
956
        };
_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
4
        auto call = [&](const auto& type) -> bool {
323
4
            using DispatchType = std::decay_t<decltype(type)>;
324
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
4
                    block, result, col_left, col_right);
326
4
            return true;
327
4
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
44
        auto call = [&](const auto& type) -> bool {
323
44
            using DispatchType = std::decay_t<decltype(type)>;
324
44
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
44
                    block, result, col_left, col_right);
326
44
            return true;
327
44
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
35
        auto call = [&](const auto& type) -> bool {
323
35
            using DispatchType = std::decay_t<decltype(type)>;
324
35
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
35
                    block, result, col_left, col_right);
326
35
            return true;
327
35
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
27
        auto call = [&](const auto& type) -> bool {
323
27
            using DispatchType = std::decay_t<decltype(type)>;
324
27
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
27
                    block, result, col_left, col_right);
326
27
            return true;
327
27
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
189
        auto call = [&](const auto& type) -> bool {
323
189
            using DispatchType = std::decay_t<decltype(type)>;
324
189
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
189
                    block, result, col_left, col_right);
326
189
            return true;
327
189
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
214
        auto call = [&](const auto& type) -> bool {
323
214
            using DispatchType = std::decay_t<decltype(type)>;
324
214
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
214
                    block, result, col_left, col_right);
326
214
            return true;
327
214
        };
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
304
        auto call = [&](const auto& type) -> bool {
323
304
            using DispatchType = std::decay_t<decltype(type)>;
324
304
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
304
                    block, result, col_left, col_right);
326
304
            return true;
327
304
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
11
        auto call = [&](const auto& type) -> bool {
323
11
            using DispatchType = std::decay_t<decltype(type)>;
324
11
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
11
                    block, result, col_left, col_right);
326
11
            return true;
327
11
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
47
        auto call = [&](const auto& type) -> bool {
323
47
            using DispatchType = std::decay_t<decltype(type)>;
324
47
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
47
                    block, result, col_left, col_right);
326
47
            return true;
327
47
        };
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
17
        auto call = [&](const auto& type) -> bool {
323
17
            using DispatchType = std::decay_t<decltype(type)>;
324
17
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
17
                    block, result, col_left, col_right);
326
17
            return true;
327
17
        };
_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.30k
        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.30k
        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.30k
        return Status::OK();
340
3.30k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.23k
                           const ColumnWithTypeAndName& col_right) const {
322
1.23k
        auto call = [&](const auto& type) -> bool {
323
1.23k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.23k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.23k
                    block, result, col_left, col_right);
326
1.23k
            return true;
327
1.23k
        };
328
329
1.23k
        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.23k
        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.23k
        return Status::OK();
340
1.23k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
119
                           const ColumnWithTypeAndName& col_right) const {
322
119
        auto call = [&](const auto& type) -> bool {
323
119
            using DispatchType = std::decay_t<decltype(type)>;
324
119
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
119
                    block, result, col_left, col_right);
326
119
            return true;
327
119
        };
328
329
119
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
119
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
119
        return Status::OK();
340
119
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.03k
                           const ColumnWithTypeAndName& col_right) const {
322
1.03k
        auto call = [&](const auto& type) -> bool {
323
1.03k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.03k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.03k
                    block, result, col_left, col_right);
326
1.03k
            return true;
327
1.03k
        };
328
329
1.03k
        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.03k
        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.03k
        return Status::OK();
340
1.03k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
110
                           const ColumnWithTypeAndName& col_right) const {
322
110
        auto call = [&](const auto& type) -> bool {
323
110
            using DispatchType = std::decay_t<decltype(type)>;
324
110
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
110
                    block, result, col_left, col_right);
326
110
            return true;
327
110
        };
328
329
110
        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
110
        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
110
        return Status::OK();
340
110
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
708
                           const ColumnWithTypeAndName& col_right) const {
322
708
        auto call = [&](const auto& type) -> bool {
323
708
            using DispatchType = std::decay_t<decltype(type)>;
324
708
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
708
                    block, result, col_left, col_right);
326
708
            return true;
327
708
        };
328
329
708
        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
708
        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
708
        return Status::OK();
340
708
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
97
                           const ColumnWithTypeAndName& col_right) const {
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
        };
328
329
97
        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
97
        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
97
        return Status::OK();
340
97
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
13.2k
                          const IColumn* c1) const {
344
13.2k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
13.2k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
13.2k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
13.2k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
13.2k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
13.2k
        DCHECK(!(c0_const && c1_const));
353
13.2k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
13.2k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
13.2k
        ColumnString::Offset c0_const_size = 0;
356
13.2k
        ColumnString::Offset c1_const_size = 0;
357
358
13.2k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
13.2k
        if (c1_const) {
372
12.2k
            const ColumnString* c1_const_string =
373
12.2k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
12.2k
            if (c1_const_string) {
376
12.2k
                c1_const_chars = &c1_const_string->get_chars();
377
12.2k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
12.2k
        }
383
384
13.2k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
13.2k
        auto c_res = ColumnUInt8::create();
387
13.2k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
13.2k
        vec_res.resize(c0->size());
389
390
13.2k
        if (c0_string && c1_string) {
391
928
            StringImpl::string_vector_string_vector(
392
928
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
928
                    c1_string->get_offsets(), vec_res);
394
12.2k
        } else if (c0_string && c1_const) {
395
12.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
12.2k
                                               *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
13.2k
        block.replace_by_position(result, std::move(c_res));
406
13.2k
        return Status::OK();
407
13.2k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
11.7k
                          const IColumn* c1) const {
344
11.7k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
11.7k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
11.7k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
11.7k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
11.7k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
11.7k
        DCHECK(!(c0_const && c1_const));
353
11.7k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
11.7k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
11.7k
        ColumnString::Offset c0_const_size = 0;
356
11.7k
        ColumnString::Offset c1_const_size = 0;
357
358
11.7k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
11.7k
        if (c1_const) {
372
11.2k
            const ColumnString* c1_const_string =
373
11.2k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
11.2k
            if (c1_const_string) {
376
11.2k
                c1_const_chars = &c1_const_string->get_chars();
377
11.2k
                c1_const_size = c1_const_string->get_offsets()[0];
378
11.2k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
11.2k
        }
383
384
11.7k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
11.7k
        auto c_res = ColumnUInt8::create();
387
11.7k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
11.7k
        vec_res.resize(c0->size());
389
390
11.7k
        if (c0_string && c1_string) {
391
486
            StringImpl::string_vector_string_vector(
392
486
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
486
                    c1_string->get_offsets(), vec_res);
394
11.2k
        } else if (c0_string && c1_const) {
395
11.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
11.2k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
11.7k
        block.replace_by_position(result, std::move(c_res));
406
11.7k
        return Status::OK();
407
11.7k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
128
                          const IColumn* c1) const {
344
128
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
128
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
128
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
128
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
128
        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
128
        DCHECK(!(c0_const && c1_const));
353
128
        const ColumnString::Chars* c0_const_chars = nullptr;
354
128
        const ColumnString::Chars* c1_const_chars = nullptr;
355
128
        ColumnString::Offset c0_const_size = 0;
356
128
        ColumnString::Offset c1_const_size = 0;
357
358
128
        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
128
        if (c1_const) {
372
127
            const ColumnString* c1_const_string =
373
127
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
127
            if (c1_const_string) {
376
127
                c1_const_chars = &c1_const_string->get_chars();
377
127
                c1_const_size = c1_const_string->get_offsets()[0];
378
127
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
127
        }
383
384
128
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
128
        auto c_res = ColumnUInt8::create();
387
128
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
128
        vec_res.resize(c0->size());
389
390
128
        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
127
        } else if (c0_string && c1_const) {
395
127
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
127
                                               *c1_const_chars, c1_const_size, vec_res);
397
127
        } 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
128
        block.replace_by_position(result, std::move(c_res));
406
128
        return Status::OK();
407
128
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
196
                          const IColumn* c1) const {
344
196
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
196
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
196
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
196
        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
196
        DCHECK(!(c0_const && c1_const));
353
196
        const ColumnString::Chars* c0_const_chars = nullptr;
354
196
        const ColumnString::Chars* c1_const_chars = nullptr;
355
196
        ColumnString::Offset c0_const_size = 0;
356
196
        ColumnString::Offset c1_const_size = 0;
357
358
196
        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
196
        if (c1_const) {
372
194
            const ColumnString* c1_const_string =
373
194
                    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
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
194
        }
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
326
                          const IColumn* c1) const {
344
326
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
326
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
326
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
326
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
326
        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
326
        DCHECK(!(c0_const && c1_const));
353
326
        const ColumnString::Chars* c0_const_chars = nullptr;
354
326
        const ColumnString::Chars* c1_const_chars = nullptr;
355
326
        ColumnString::Offset c0_const_size = 0;
356
326
        ColumnString::Offset c1_const_size = 0;
357
358
326
        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
326
        if (c1_const) {
372
283
            const ColumnString* c1_const_string =
373
283
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
283
            if (c1_const_string) {
376
283
                c1_const_chars = &c1_const_string->get_chars();
377
283
                c1_const_size = c1_const_string->get_offsets()[0];
378
283
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
283
        }
383
384
326
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
326
        auto c_res = ColumnUInt8::create();
387
326
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
326
        vec_res.resize(c0->size());
389
390
326
        if (c0_string && c1_string) {
391
43
            StringImpl::string_vector_string_vector(
392
43
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
43
                    c1_string->get_offsets(), vec_res);
394
283
        } else if (c0_string && c1_const) {
395
283
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
283
                                               *c1_const_chars, c1_const_size, vec_res);
397
283
        } 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
326
        block.replace_by_position(result, std::move(c_res));
406
326
        return Status::OK();
407
326
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
519
                          const IColumn* c1) const {
344
519
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
519
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
519
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
519
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
519
        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
519
        DCHECK(!(c0_const && c1_const));
353
519
        const ColumnString::Chars* c0_const_chars = nullptr;
354
519
        const ColumnString::Chars* c1_const_chars = nullptr;
355
519
        ColumnString::Offset c0_const_size = 0;
356
519
        ColumnString::Offset c1_const_size = 0;
357
358
519
        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
519
        if (c1_const) {
372
123
            const ColumnString* c1_const_string =
373
123
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
123
            if (c1_const_string) {
376
123
                c1_const_chars = &c1_const_string->get_chars();
377
123
                c1_const_size = c1_const_string->get_offsets()[0];
378
123
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
123
        }
383
384
519
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
519
        auto c_res = ColumnUInt8::create();
387
519
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
519
        vec_res.resize(c0->size());
389
390
519
        if (c0_string && c1_string) {
391
396
            StringImpl::string_vector_string_vector(
392
396
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
396
                    c1_string->get_offsets(), vec_res);
394
396
        } else if (c0_string && c1_const) {
395
123
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
123
                                               *c1_const_chars, c1_const_size, vec_res);
397
123
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
519
        block.replace_by_position(result, std::move(c_res));
406
519
        return Status::OK();
407
519
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
278
                          const IColumn* c1) const {
344
278
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
278
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
278
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
278
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
278
        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
278
        DCHECK(!(c0_const && c1_const));
353
278
        const ColumnString::Chars* c0_const_chars = nullptr;
354
278
        const ColumnString::Chars* c1_const_chars = nullptr;
355
278
        ColumnString::Offset c0_const_size = 0;
356
278
        ColumnString::Offset c1_const_size = 0;
357
358
278
        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
278
        if (c1_const) {
372
277
            const ColumnString* c1_const_string =
373
277
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
277
            if (c1_const_string) {
376
277
                c1_const_chars = &c1_const_string->get_chars();
377
277
                c1_const_size = c1_const_string->get_offsets()[0];
378
277
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
277
        }
383
384
278
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
278
        auto c_res = ColumnUInt8::create();
387
278
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
278
        vec_res.resize(c0->size());
389
390
278
        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
278
        } else if (c0_string && c1_const) {
395
278
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
278
                                               *c1_const_chars, c1_const_size, vec_res);
397
278
        } 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
278
        block.replace_by_position(result, std::move(c_res));
406
278
        return Status::OK();
407
278
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
89
                                         const IColumn* c1) const {
411
89
        bool c0_const = is_column_const(*c0);
412
89
        bool c1_const = is_column_const(*c1);
413
414
89
        DCHECK(!(c0_const && c1_const));
415
416
89
        auto c_res = ColumnUInt8::create();
417
89
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
89
        vec_res.resize(c0->size());
419
420
89
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
89
        } else if (c1_const) {
423
80
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
80
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
89
        block.replace_by_position(result, std::move(c_res));
429
89
    }
_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
18
                                         const IColumn* c1) const {
411
18
        bool c0_const = is_column_const(*c0);
412
18
        bool c1_const = is_column_const(*c1);
413
414
18
        DCHECK(!(c0_const && c1_const));
415
416
18
        auto c_res = ColumnUInt8::create();
417
18
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
18
        vec_res.resize(c0->size());
419
420
18
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
18
        } else if (c1_const) {
423
17
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
17
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
18
        block.replace_by_position(result, std::move(c_res));
429
18
    }
_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
26
                                         const IColumn* c1) const {
411
26
        bool c0_const = is_column_const(*c0);
412
26
        bool c1_const = is_column_const(*c1);
413
414
26
        DCHECK(!(c0_const && c1_const));
415
416
26
        auto c_res = ColumnUInt8::create();
417
26
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
26
        vec_res.resize(c0->size());
419
420
26
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
26
        } else if (c1_const) {
423
26
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
26
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
26
        block.replace_by_position(result, std::move(c_res));
429
26
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
89
                           const ColumnWithTypeAndName& c1) const {
433
89
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
89
        return Status::OK();
435
89
    }
_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
18
                           const ColumnWithTypeAndName& c1) const {
433
18
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
18
        return Status::OK();
435
18
    }
_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
26
                           const ColumnWithTypeAndName& c1) const {
433
26
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
26
        return Status::OK();
435
26
    }
436
437
public:
438
218
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
77
    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
306k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
247k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.15k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
4.97k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
25.1k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
2.73k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
24.8k
    size_t get_number_of_arguments() const override { return 2; }
441
442
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
443
306k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
306k
        return std::make_shared<DataTypeUInt8>();
445
306k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
247k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
247k
        return std::make_shared<DataTypeUInt8>();
445
247k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.15k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.15k
        return std::make_shared<DataTypeUInt8>();
445
1.15k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
4.97k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
4.97k
        return std::make_shared<DataTypeUInt8>();
445
4.97k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
25.2k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
25.2k
        return std::make_shared<DataTypeUInt8>();
445
25.2k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
2.73k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
2.73k
        return std::make_shared<DataTypeUInt8>();
445
2.73k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
24.8k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
24.8k
        return std::make_shared<DataTypeUInt8>();
445
24.8k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.72k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.72k
        DCHECK(arguments.size() == 1);
454
1.72k
        DCHECK(data_type_with_names.size() == 1);
455
1.72k
        DCHECK(iterators.size() == 1);
456
1.72k
        auto* iter = iterators[0];
457
1.72k
        auto data_type_with_name = data_type_with_names[0];
458
1.72k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.72k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
433
            return Status::OK();
463
433
        }
464
1.29k
        segment_v2::InvertedIndexQueryType query_type;
465
1.29k
        std::string_view name_view(name);
466
1.29k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
842
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
842
        } else if (name_view == NameLess::name) {
469
109
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
343
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
245
        } 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.29k
        if (segment_v2::is_range_query(query_type) &&
481
1.29k
            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.12k
        Field param_value;
486
1.12k
        arguments[0].column->get(0, param_value);
487
1.12k
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
1.12k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.12k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.12k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.12k
                param_type, &param_value, query_param));
494
495
1.12k
        segment_v2::InvertedIndexParam param;
496
1.12k
        param.column_name = data_type_with_name.first;
497
1.12k
        param.column_type = data_type_with_name.second;
498
1.12k
        param.query_value = query_param->get_value();
499
1.12k
        param.query_type = query_type;
500
1.12k
        param.num_rows = num_rows;
501
1.12k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.12k
        param.analyzer_ctx = analyzer_ctx;
503
1.12k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
971
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
972
        if (iter->has_null()) {
506
972
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
972
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
972
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
972
        }
510
971
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
971
        bitmap_result = result;
512
971
        bitmap_result.mask_out_null();
513
514
971
        if (name_view == NameNotEquals::name) {
515
62
            roaring::Roaring full_result;
516
62
            full_result.addRange(0, num_rows);
517
62
            bitmap_result.op_not(&full_result);
518
62
        }
519
520
971
        return Status::OK();
521
971
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
845
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
845
        DCHECK(arguments.size() == 1);
454
845
        DCHECK(data_type_with_names.size() == 1);
455
845
        DCHECK(iterators.size() == 1);
456
845
        auto* iter = iterators[0];
457
845
        auto data_type_with_name = data_type_with_names[0];
458
845
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
845
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
75
            return Status::OK();
463
75
        }
464
770
        segment_v2::InvertedIndexQueryType query_type;
465
770
        std::string_view name_view(name);
466
772
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
772
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
772
        if (segment_v2::is_range_query(query_type) &&
481
772
            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
772
        Field param_value;
486
772
        arguments[0].column->get(0, param_value);
487
772
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
771
        auto param_type = arguments[0].type->get_primitive_type();
491
771
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
771
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
771
                param_type, &param_value, query_param));
494
495
771
        segment_v2::InvertedIndexParam param;
496
771
        param.column_name = data_type_with_name.first;
497
771
        param.column_type = data_type_with_name.second;
498
771
        param.query_value = query_param->get_value();
499
771
        param.query_type = query_type;
500
771
        param.num_rows = num_rows;
501
771
        param.roaring = std::make_shared<roaring::Roaring>();
502
771
        param.analyzer_ctx = analyzer_ctx;
503
771
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
727
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
727
        if (iter->has_null()) {
506
727
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
727
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
727
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
727
        }
510
727
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
727
        bitmap_result = result;
512
727
        bitmap_result.mask_out_null();
513
514
727
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
727
        return Status::OK();
521
727
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
77
        DCHECK(arguments.size() == 1);
454
77
        DCHECK(data_type_with_names.size() == 1);
455
77
        DCHECK(iterators.size() == 1);
456
77
        auto* iter = iterators[0];
457
77
        auto data_type_with_name = data_type_with_names[0];
458
77
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
69
        segment_v2::InvertedIndexQueryType query_type;
465
69
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
62
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
62
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
62
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
62
        }
510
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
63
        bitmap_result = result;
512
63
        bitmap_result.mask_out_null();
513
514
63
        if (name_view == NameNotEquals::name) {
515
62
            roaring::Roaring full_result;
516
62
            full_result.addRange(0, num_rows);
517
62
            bitmap_result.op_not(&full_result);
518
62
        }
519
520
63
        return Status::OK();
521
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
176
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
176
        DCHECK(arguments.size() == 1);
454
176
        DCHECK(data_type_with_names.size() == 1);
455
176
        DCHECK(iterators.size() == 1);
456
176
        auto* iter = iterators[0];
457
176
        auto data_type_with_name = data_type_with_names[0];
458
176
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
176
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
114
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
114
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        auto param_type = arguments[0].type->get_primitive_type();
491
86
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
86
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
86
                param_type, &param_value, query_param));
494
495
86
        segment_v2::InvertedIndexParam param;
496
86
        param.column_name = data_type_with_name.first;
497
86
        param.column_type = data_type_with_name.second;
498
86
        param.query_value = query_param->get_value();
499
86
        param.query_type = query_type;
500
86
        param.num_rows = num_rows;
501
86
        param.roaring = std::make_shared<roaring::Roaring>();
502
86
        param.analyzer_ctx = analyzer_ctx;
503
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
67
        if (iter->has_null()) {
506
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
67
        }
510
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
67
        bitmap_result = result;
512
67
        bitmap_result.mask_out_null();
513
514
67
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
67
        return Status::OK();
521
67
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
249
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
249
        DCHECK(arguments.size() == 1);
454
249
        DCHECK(data_type_with_names.size() == 1);
455
249
        DCHECK(iterators.size() == 1);
456
249
        auto* iter = iterators[0];
457
249
        auto data_type_with_name = data_type_with_names[0];
458
249
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
249
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
135
        segment_v2::InvertedIndexQueryType query_type;
465
135
        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
135
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
135
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
135
        } 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
135
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
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
        auto param_type = arguments[0].type->get_primitive_type();
491
76
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
76
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
76
                param_type, &param_value, query_param));
494
495
76
        segment_v2::InvertedIndexParam param;
496
76
        param.column_name = data_type_with_name.first;
497
76
        param.column_type = data_type_with_name.second;
498
76
        param.query_value = query_param->get_value();
499
76
        param.query_type = query_type;
500
76
        param.num_rows = num_rows;
501
76
        param.roaring = std::make_shared<roaring::Roaring>();
502
76
        param.analyzer_ctx = analyzer_ctx;
503
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
34
        if (iter->has_null()) {
506
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
34
        }
510
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
34
        bitmap_result = result;
512
34
        bitmap_result.mask_out_null();
513
514
34
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
34
        return Status::OK();
521
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
109
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
109
        } else if (name_view == NameLess::name) {
469
109
            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
109
        if (segment_v2::is_range_query(query_type) &&
481
109
            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
83
        Field param_value;
486
83
        arguments[0].column->get(0, param_value);
487
83
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
83
        auto param_type = arguments[0].type->get_primitive_type();
491
83
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
83
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
83
                param_type, &param_value, query_param));
494
495
83
        segment_v2::InvertedIndexParam param;
496
83
        param.column_name = data_type_with_name.first;
497
83
        param.column_type = data_type_with_name.second;
498
83
        param.query_value = query_param->get_value();
499
83
        param.query_type = query_type;
500
83
        param.num_rows = num_rows;
501
83
        param.roaring = std::make_shared<roaring::Roaring>();
502
83
        param.analyzer_ctx = analyzer_ctx;
503
83
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
61
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
63
        }
510
61
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
61
        bitmap_result = result;
512
61
        bitmap_result.mask_out_null();
513
514
61
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
61
        return Status::OK();
521
61
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
211
        DCHECK(arguments.size() == 1);
454
211
        DCHECK(data_type_with_names.size() == 1);
455
211
        DCHECK(iterators.size() == 1);
456
211
        auto* iter = iterators[0];
457
211
        auto data_type_with_name = data_type_with_names[0];
458
211
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
98
        segment_v2::InvertedIndexQueryType query_type;
465
98
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
98
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
98
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        auto param_type = arguments[0].type->get_primitive_type();
491
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
40
                param_type, &param_value, query_param));
494
495
40
        segment_v2::InvertedIndexParam param;
496
40
        param.column_name = data_type_with_name.first;
497
40
        param.column_type = data_type_with_name.second;
498
40
        param.query_value = query_param->get_value();
499
40
        param.query_type = query_type;
500
40
        param.num_rows = num_rows;
501
40
        param.roaring = std::make_shared<roaring::Roaring>();
502
40
        param.analyzer_ctx = analyzer_ctx;
503
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
19
        if (iter->has_null()) {
506
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
19
        }
510
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
19
        bitmap_result = result;
512
19
        bitmap_result.mask_out_null();
513
514
19
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
19
        return Status::OK();
521
19
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
45.7k
                        uint32_t result, size_t input_rows_count) const override {
525
45.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
45.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
45.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
45.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
45.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
45.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
45.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
45.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
45.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
45.7k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
74.8k
        auto can_compare = [](PrimitiveType t) -> bool {
563
74.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
74.8k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
30.3k
        auto can_compare = [](PrimitiveType t) -> bool {
563
30.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
30.3k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
3.68k
        auto can_compare = [](PrimitiveType t) -> bool {
563
3.68k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.68k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
20.5k
        auto can_compare = [](PrimitiveType t) -> bool {
563
20.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
20.5k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
4.25k
        auto can_compare = [](PrimitiveType t) -> bool {
563
4.25k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
4.25k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
11.6k
        auto can_compare = [](PrimitiveType t) -> bool {
563
11.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
11.6k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
4.41k
        auto can_compare = [](PrimitiveType t) -> bool {
563
4.41k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
4.41k
        };
565
566
45.7k
        if (can_compare(left_type->get_primitive_type()) &&
567
45.7k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
29.1k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
29.1k
        }
575
576
45.7k
        auto compare_type = left_type->get_primitive_type();
577
45.7k
        switch (compare_type) {
578
190
        case TYPE_BOOLEAN:
579
190
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
5.33k
        case TYPE_DATEV2:
581
5.33k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
1.03k
        case TYPE_DATETIMEV2:
583
1.03k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
16
        case TYPE_TIMESTAMPTZ:
585
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
4.54k
        case TYPE_TINYINT:
587
4.54k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.69k
        case TYPE_SMALLINT:
589
1.69k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
9.67k
        case TYPE_INT:
591
9.67k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
3.75k
        case TYPE_BIGINT:
593
3.75k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
599
        case TYPE_LARGEINT:
595
599
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
70
        case TYPE_IPV4:
597
70
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
48
        case TYPE_IPV6:
599
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
572
        case TYPE_FLOAT:
601
572
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.58k
        case TYPE_DOUBLE:
603
1.58k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
372
        case TYPE_DECIMAL32:
609
981
        case TYPE_DECIMAL64:
610
3.19k
        case TYPE_DECIMAL128I:
611
3.30k
        case TYPE_DECIMAL256:
612
3.30k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
3.30k
                                   col_with_type_and_name_right);
614
1.02k
        case TYPE_CHAR:
615
7.28k
        case TYPE_VARCHAR:
616
13.2k
        case TYPE_STRING:
617
13.2k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
89
        default:
619
89
            return execute_generic(block, result, col_with_type_and_name_left,
620
89
                                   col_with_type_and_name_right);
621
45.7k
        }
622
0
        return Status::OK();
623
45.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
21.6k
                        uint32_t result, size_t input_rows_count) const override {
525
21.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
21.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
21.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
21.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
21.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
21.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
21.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
21.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
21.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
21.6k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
21.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
21.6k
        };
565
566
21.6k
        if (can_compare(left_type->get_primitive_type()) &&
567
21.6k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
8.66k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
8.66k
        }
575
576
21.6k
        auto compare_type = left_type->get_primitive_type();
577
21.6k
        switch (compare_type) {
578
93
        case TYPE_BOOLEAN:
579
93
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
959
        case TYPE_DATEV2:
581
959
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
538
        case TYPE_DATETIMEV2:
583
538
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
3.16k
        case TYPE_TINYINT:
587
3.16k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
431
        case TYPE_SMALLINT:
589
431
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.87k
        case TYPE_INT:
591
1.87k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
957
        case TYPE_BIGINT:
593
957
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
129
        case TYPE_LARGEINT:
595
129
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
31
        case TYPE_IPV4:
597
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
30
        case TYPE_IPV6:
599
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
115
        case TYPE_FLOAT:
601
115
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
338
        case TYPE_DOUBLE:
603
338
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
156
        case TYPE_DECIMAL32:
609
333
        case TYPE_DECIMAL64:
610
1.20k
        case TYPE_DECIMAL128I:
611
1.23k
        case TYPE_DECIMAL256:
612
1.23k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.23k
                                   col_with_type_and_name_right);
614
794
        case TYPE_CHAR:
615
6.53k
        case TYPE_VARCHAR:
616
11.7k
        case TYPE_STRING:
617
11.7k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
17
        default:
619
17
            return execute_generic(block, result, col_with_type_and_name_left,
620
17
                                   col_with_type_and_name_right);
621
21.6k
        }
622
0
        return Status::OK();
623
21.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
1.96k
                        uint32_t result, size_t input_rows_count) const override {
525
1.96k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
1.96k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
1.96k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
1.96k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
1.96k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
1.96k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
1.96k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
1.96k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
1.96k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
1.96k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
1.96k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
1.96k
        };
565
566
1.96k
        if (can_compare(left_type->get_primitive_type()) &&
567
1.96k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
1.71k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
1.71k
        }
575
576
1.96k
        auto compare_type = left_type->get_primitive_type();
577
1.96k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
41
        case TYPE_DATEV2:
581
41
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
0
        case TYPE_DATETIMEV2:
583
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
0
        case TYPE_TIMESTAMPTZ:
585
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
92
        case TYPE_TINYINT:
587
92
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
0
        case TYPE_SMALLINT:
589
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.00k
        case TYPE_INT:
591
1.00k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
452
        case TYPE_BIGINT:
593
452
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
0
        case TYPE_LARGEINT:
595
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
0
        case TYPE_IPV4:
597
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
52
        case TYPE_FLOAT:
601
52
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
72
        case TYPE_DOUBLE:
603
72
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
0
        case TYPE_DECIMAL32:
609
61
        case TYPE_DECIMAL64:
610
89
        case TYPE_DECIMAL128I:
611
119
        case TYPE_DECIMAL256:
612
119
            return execute_decimal(block, result, col_with_type_and_name_left,
613
119
                                   col_with_type_and_name_right);
614
1
        case TYPE_CHAR:
615
29
        case TYPE_VARCHAR:
616
128
        case TYPE_STRING:
617
128
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
8
        default:
619
8
            return execute_generic(block, result, col_with_type_and_name_left,
620
8
                                   col_with_type_and_name_right);
621
1.96k
        }
622
0
        return Status::OK();
623
1.96k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
10.8k
                        uint32_t result, size_t input_rows_count) const override {
525
10.8k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
10.8k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
10.8k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
10.8k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
10.8k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
10.8k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
10.8k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
10.8k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
10.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
10.8k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
10.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
10.8k
        };
565
566
10.8k
        if (can_compare(left_type->get_primitive_type()) &&
567
10.8k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
9.64k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
9.64k
        }
575
576
10.8k
        auto compare_type = left_type->get_primitive_type();
577
10.8k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.16k
        case TYPE_DATEV2:
581
1.16k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
2
        case TYPE_DATETIMEV2:
583
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
621
        case TYPE_TINYINT:
587
621
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
835
        case TYPE_SMALLINT:
589
835
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
4.77k
        case TYPE_INT:
591
4.77k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.23k
        case TYPE_BIGINT:
593
1.23k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
247
        case TYPE_LARGEINT:
595
247
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
2
        case TYPE_IPV4:
597
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
228
        case TYPE_FLOAT:
601
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
539
        case TYPE_DOUBLE:
603
539
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
12
        case TYPE_DECIMAL32:
609
78
        case TYPE_DECIMAL64:
610
1.03k
        case TYPE_DECIMAL128I:
611
1.03k
        case TYPE_DECIMAL256:
612
1.03k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.03k
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
89
        case TYPE_VARCHAR:
616
196
        case TYPE_STRING:
617
196
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
9
        default:
619
9
            return execute_generic(block, result, col_with_type_and_name_left,
620
9
                                   col_with_type_and_name_right);
621
10.8k
        }
622
0
        return Status::OK();
623
10.8k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
2.34k
                        uint32_t result, size_t input_rows_count) const override {
525
2.34k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
2.34k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
2.34k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
2.34k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
2.34k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
2.34k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
2.34k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
2.34k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
2.34k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
2.34k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
2.34k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
2.34k
        };
565
566
2.34k
        if (can_compare(left_type->get_primitive_type()) &&
567
2.34k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
1.90k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
1.90k
        }
575
576
2.34k
        auto compare_type = left_type->get_primitive_type();
577
2.34k
        switch (compare_type) {
578
8
        case TYPE_BOOLEAN:
579
8
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
520
        case TYPE_DATEV2:
581
520
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
156
        case TYPE_DATETIMEV2:
583
156
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
63
        case TYPE_TINYINT:
587
63
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
112
        case TYPE_SMALLINT:
589
112
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
622
        case TYPE_INT:
591
622
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
169
        case TYPE_BIGINT:
593
169
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
14
        case TYPE_LARGEINT:
595
14
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
11
        case TYPE_IPV4:
597
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
26
        case TYPE_FLOAT:
601
26
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
189
        case TYPE_DOUBLE:
603
189
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
4
        case TYPE_DECIMAL32:
609
48
        case TYPE_DECIMAL64:
610
83
        case TYPE_DECIMAL128I:
611
110
        case TYPE_DECIMAL256:
612
110
            return execute_decimal(block, result, col_with_type_and_name_left,
613
110
                                   col_with_type_and_name_right);
614
12
        case TYPE_CHAR:
615
162
        case TYPE_VARCHAR:
616
325
        case TYPE_STRING:
617
325
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
18
        default:
619
18
            return execute_generic(block, result, col_with_type_and_name_left,
620
18
                                   col_with_type_and_name_right);
621
2.34k
        }
622
0
        return Status::OK();
623
2.34k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
6.44k
                        uint32_t result, size_t input_rows_count) const override {
525
6.44k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
6.44k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
6.44k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
6.44k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
6.44k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
6.44k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
6.44k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
6.44k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
6.44k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
6.44k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
6.44k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.44k
        };
565
566
6.44k
        if (can_compare(left_type->get_primitive_type()) &&
567
6.44k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
5.19k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
5.19k
        }
575
576
6.44k
        auto compare_type = left_type->get_primitive_type();
577
6.44k
        switch (compare_type) {
578
73
        case TYPE_BOOLEAN:
579
73
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.06k
        case TYPE_DATEV2:
581
2.06k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
300
        case TYPE_DATETIMEV2:
583
300
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
4
        case TYPE_TIMESTAMPTZ:
585
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
542
        case TYPE_TINYINT:
587
542
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
144
        case TYPE_SMALLINT:
589
144
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
698
        case TYPE_INT:
591
698
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
679
        case TYPE_BIGINT:
593
679
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
201
        case TYPE_LARGEINT:
595
201
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
16
        case TYPE_IPV4:
597
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
16
        case TYPE_IPV6:
599
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
131
        case TYPE_FLOAT:
601
131
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
333
        case TYPE_DOUBLE:
603
333
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
189
        case TYPE_DECIMAL32:
609
403
        case TYPE_DECIMAL64:
610
707
        case TYPE_DECIMAL128I:
611
708
        case TYPE_DECIMAL256:
612
708
            return execute_decimal(block, result, col_with_type_and_name_left,
613
708
                                   col_with_type_and_name_right);
614
179
        case TYPE_CHAR:
615
363
        case TYPE_VARCHAR:
616
519
        case TYPE_STRING:
617
519
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
11
        default:
619
11
            return execute_generic(block, result, col_with_type_and_name_left,
620
11
                                   col_with_type_and_name_right);
621
6.44k
        }
622
0
        return Status::OK();
623
6.44k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
2.39k
                        uint32_t result, size_t input_rows_count) const override {
525
2.39k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
2.39k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
2.39k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
2.39k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
2.39k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
2.39k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
2.39k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
2.39k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
2.39k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
2.39k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
2.39k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
2.39k
        };
565
566
2.39k
        if (can_compare(left_type->get_primitive_type()) &&
567
2.39k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
2.01k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
2.01k
        }
575
576
2.39k
        auto compare_type = left_type->get_primitive_type();
577
2.39k
        switch (compare_type) {
578
16
        case TYPE_BOOLEAN:
579
16
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
584
        case TYPE_DATEV2:
581
584
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
42
        case TYPE_DATETIMEV2:
583
42
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
64
        case TYPE_TINYINT:
587
64
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
169
        case TYPE_SMALLINT:
589
169
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
700
        case TYPE_INT:
591
700
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
264
        case TYPE_BIGINT:
593
264
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
8
        case TYPE_LARGEINT:
595
8
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
10
        case TYPE_IPV4:
597
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
20
        case TYPE_FLOAT:
601
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
115
        case TYPE_DOUBLE:
603
115
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
11
        case TYPE_DECIMAL32:
609
58
        case TYPE_DECIMAL64:
610
75
        case TYPE_DECIMAL128I:
611
97
        case TYPE_DECIMAL256:
612
97
            return execute_decimal(block, result, col_with_type_and_name_left,
613
97
                                   col_with_type_and_name_right);
614
17
        case TYPE_CHAR:
615
107
        case TYPE_VARCHAR:
616
278
        case TYPE_STRING:
617
278
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
26
        default:
619
26
            return execute_generic(block, result, col_with_type_and_name_left,
620
26
                                   col_with_type_and_name_right);
621
2.39k
        }
622
0
        return Status::OK();
623
2.39k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris