Coverage Report

Created: 2026-04-24 16:09

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
46
/** Comparison functions: ==, !=, <, >, <=, >=.
47
  * The comparison functions always return 0 or 1 (UInt8).
48
  *
49
  * You can compare the following types:
50
  * - numbers and decimals;
51
  * - strings and fixed strings;
52
  * - dates;
53
  * - datetimes;
54
  *   within each group, but not from different groups;
55
  * - tuples (lexicographic comparison).
56
  *
57
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
58
  */
59
60
template <typename A, typename B, typename Op>
61
struct NumComparisonImpl {
62
    /// 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.
63
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
64
12.4k
                                        PaddedPODArray<UInt8>& c) {
65
12.4k
        size_t size = a.size();
66
12.4k
        const A* __restrict a_pos = a.data();
67
12.4k
        const B* __restrict b_pos = b.data();
68
12.4k
        UInt8* __restrict c_pos = c.data();
69
12.4k
        const A* __restrict a_end = a_pos + size;
70
71
11.0M
        while (a_pos < a_end) {
72
11.0M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
11.0M
            ++a_pos;
74
11.0M
            ++b_pos;
75
11.0M
            ++c_pos;
76
11.0M
        }
77
12.4k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
64
61
                                        PaddedPODArray<UInt8>& c) {
65
61
        size_t size = a.size();
66
61
        const A* __restrict a_pos = a.data();
67
61
        const B* __restrict b_pos = b.data();
68
61
        UInt8* __restrict c_pos = c.data();
69
61
        const A* __restrict a_end = a_pos + size;
70
71
122
        while (a_pos < a_end) {
72
61
            *c_pos = Op::apply(*a_pos, *b_pos);
73
61
            ++a_pos;
74
61
            ++b_pos;
75
61
            ++c_pos;
76
61
        }
77
61
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
365
                                        PaddedPODArray<UInt8>& c) {
65
365
        size_t size = a.size();
66
365
        const A* __restrict a_pos = a.data();
67
365
        const B* __restrict b_pos = b.data();
68
365
        UInt8* __restrict c_pos = c.data();
69
365
        const A* __restrict a_end = a_pos + size;
70
71
1.58k
        while (a_pos < a_end) {
72
1.22k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.22k
            ++a_pos;
74
1.22k
            ++b_pos;
75
1.22k
            ++c_pos;
76
1.22k
        }
77
365
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
300
                                        PaddedPODArray<UInt8>& c) {
65
300
        size_t size = a.size();
66
300
        const A* __restrict a_pos = a.data();
67
300
        const B* __restrict b_pos = b.data();
68
300
        UInt8* __restrict c_pos = c.data();
69
300
        const A* __restrict a_end = a_pos + size;
70
71
620
        while (a_pos < a_end) {
72
320
            *c_pos = Op::apply(*a_pos, *b_pos);
73
320
            ++a_pos;
74
320
            ++b_pos;
75
320
            ++c_pos;
76
320
        }
77
300
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
912
                                        PaddedPODArray<UInt8>& c) {
65
912
        size_t size = a.size();
66
912
        const A* __restrict a_pos = a.data();
67
912
        const B* __restrict b_pos = b.data();
68
912
        UInt8* __restrict c_pos = c.data();
69
912
        const A* __restrict a_end = a_pos + size;
70
71
5.32k
        while (a_pos < a_end) {
72
4.41k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4.41k
            ++a_pos;
74
4.41k
            ++b_pos;
75
4.41k
            ++c_pos;
76
4.41k
        }
77
912
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
144
                                        PaddedPODArray<UInt8>& c) {
65
144
        size_t size = a.size();
66
144
        const A* __restrict a_pos = a.data();
67
144
        const B* __restrict b_pos = b.data();
68
144
        UInt8* __restrict c_pos = c.data();
69
144
        const A* __restrict a_end = a_pos + size;
70
71
588
        while (a_pos < a_end) {
72
444
            *c_pos = Op::apply(*a_pos, *b_pos);
73
444
            ++a_pos;
74
444
            ++b_pos;
75
444
            ++c_pos;
76
444
        }
77
144
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
277
                                        PaddedPODArray<UInt8>& c) {
65
277
        size_t size = a.size();
66
277
        const A* __restrict a_pos = a.data();
67
277
        const B* __restrict b_pos = b.data();
68
277
        UInt8* __restrict c_pos = c.data();
69
277
        const A* __restrict a_end = a_pos + size;
70
71
2.02k
        while (a_pos < a_end) {
72
1.74k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.74k
            ++a_pos;
74
1.74k
            ++b_pos;
75
1.74k
            ++c_pos;
76
1.74k
        }
77
277
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
301
                                        PaddedPODArray<UInt8>& c) {
65
301
        size_t size = a.size();
66
301
        const A* __restrict a_pos = a.data();
67
301
        const B* __restrict b_pos = b.data();
68
301
        UInt8* __restrict c_pos = c.data();
69
301
        const A* __restrict a_end = a_pos + size;
70
71
11.7k
        while (a_pos < a_end) {
72
11.4k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
11.4k
            ++a_pos;
74
11.4k
            ++b_pos;
75
11.4k
            ++c_pos;
76
11.4k
        }
77
301
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
100
                                        PaddedPODArray<UInt8>& c) {
65
100
        size_t size = a.size();
66
100
        const A* __restrict a_pos = a.data();
67
100
        const B* __restrict b_pos = b.data();
68
100
        UInt8* __restrict c_pos = c.data();
69
100
        const A* __restrict a_end = a_pos + size;
70
71
212
        while (a_pos < a_end) {
72
112
            *c_pos = Op::apply(*a_pos, *b_pos);
73
112
            ++a_pos;
74
112
            ++b_pos;
75
112
            ++c_pos;
76
112
        }
77
100
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
16
                                        PaddedPODArray<UInt8>& c) {
65
16
        size_t size = a.size();
66
16
        const A* __restrict a_pos = a.data();
67
16
        const B* __restrict b_pos = b.data();
68
16
        UInt8* __restrict c_pos = c.data();
69
16
        const A* __restrict a_end = a_pos + size;
70
71
32
        while (a_pos < a_end) {
72
16
            *c_pos = Op::apply(*a_pos, *b_pos);
73
16
            ++a_pos;
74
16
            ++b_pos;
75
16
            ++c_pos;
76
16
        }
77
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
24
                                        PaddedPODArray<UInt8>& c) {
65
24
        size_t size = a.size();
66
24
        const A* __restrict a_pos = a.data();
67
24
        const B* __restrict b_pos = b.data();
68
24
        UInt8* __restrict c_pos = c.data();
69
24
        const A* __restrict a_end = a_pos + size;
70
71
48
        while (a_pos < a_end) {
72
24
            *c_pos = Op::apply(*a_pos, *b_pos);
73
24
            ++a_pos;
74
24
            ++b_pos;
75
24
            ++c_pos;
76
24
        }
77
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
115
                                        PaddedPODArray<UInt8>& c) {
65
115
        size_t size = a.size();
66
115
        const A* __restrict a_pos = a.data();
67
115
        const B* __restrict b_pos = b.data();
68
115
        UInt8* __restrict c_pos = c.data();
69
115
        const A* __restrict a_end = a_pos + size;
70
71
249
        while (a_pos < a_end) {
72
134
            *c_pos = Op::apply(*a_pos, *b_pos);
73
134
            ++a_pos;
74
134
            ++b_pos;
75
134
            ++c_pos;
76
134
        }
77
115
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
120
                                        PaddedPODArray<UInt8>& c) {
65
120
        size_t size = a.size();
66
120
        const A* __restrict a_pos = a.data();
67
120
        const B* __restrict b_pos = b.data();
68
120
        UInt8* __restrict c_pos = c.data();
69
120
        const A* __restrict a_end = a_pos + size;
70
71
261
        while (a_pos < a_end) {
72
141
            *c_pos = Op::apply(*a_pos, *b_pos);
73
141
            ++a_pos;
74
141
            ++b_pos;
75
141
            ++c_pos;
76
141
        }
77
120
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
4
                                        PaddedPODArray<UInt8>& c) {
65
4
        size_t size = a.size();
66
4
        const A* __restrict a_pos = a.data();
67
4
        const B* __restrict b_pos = b.data();
68
4
        UInt8* __restrict c_pos = c.data();
69
4
        const A* __restrict a_end = a_pos + size;
70
71
8
        while (a_pos < a_end) {
72
4
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4
            ++a_pos;
74
4
            ++b_pos;
75
4
            ++c_pos;
76
4
        }
77
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
39
                                        PaddedPODArray<UInt8>& c) {
65
39
        size_t size = a.size();
66
39
        const A* __restrict a_pos = a.data();
67
39
        const B* __restrict b_pos = b.data();
68
39
        UInt8* __restrict c_pos = c.data();
69
39
        const A* __restrict a_end = a_pos + size;
70
71
108
        while (a_pos < a_end) {
72
69
            *c_pos = Op::apply(*a_pos, *b_pos);
73
69
            ++a_pos;
74
69
            ++b_pos;
75
69
            ++c_pos;
76
69
        }
77
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
56
                                        PaddedPODArray<UInt8>& c) {
65
56
        size_t size = a.size();
66
56
        const A* __restrict a_pos = a.data();
67
56
        const B* __restrict b_pos = b.data();
68
56
        UInt8* __restrict c_pos = c.data();
69
56
        const A* __restrict a_end = a_pos + size;
70
71
252
        while (a_pos < a_end) {
72
196
            *c_pos = Op::apply(*a_pos, *b_pos);
73
196
            ++a_pos;
74
196
            ++b_pos;
75
196
            ++c_pos;
76
196
        }
77
56
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
600
                                        PaddedPODArray<UInt8>& c) {
65
600
        size_t size = a.size();
66
600
        const A* __restrict a_pos = a.data();
67
600
        const B* __restrict b_pos = b.data();
68
600
        UInt8* __restrict c_pos = c.data();
69
600
        const A* __restrict a_end = a_pos + size;
70
71
330k
        while (a_pos < a_end) {
72
330k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
330k
            ++a_pos;
74
330k
            ++b_pos;
75
330k
            ++c_pos;
76
330k
        }
77
600
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
513
                                        PaddedPODArray<UInt8>& c) {
65
513
        size_t size = a.size();
66
513
        const A* __restrict a_pos = a.data();
67
513
        const B* __restrict b_pos = b.data();
68
513
        UInt8* __restrict c_pos = c.data();
69
513
        const A* __restrict a_end = a_pos + size;
70
71
24.5k
        while (a_pos < a_end) {
72
24.0k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
24.0k
            ++a_pos;
74
24.0k
            ++b_pos;
75
24.0k
            ++c_pos;
76
24.0k
        }
77
513
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
974
                                        PaddedPODArray<UInt8>& c) {
65
974
        size_t size = a.size();
66
974
        const A* __restrict a_pos = a.data();
67
974
        const B* __restrict b_pos = b.data();
68
974
        UInt8* __restrict c_pos = c.data();
69
974
        const A* __restrict a_end = a_pos + size;
70
71
2.71M
        while (a_pos < a_end) {
72
2.71M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
2.71M
            ++a_pos;
74
2.71M
            ++b_pos;
75
2.71M
            ++c_pos;
76
2.71M
        }
77
974
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
389
                                        PaddedPODArray<UInt8>& c) {
65
389
        size_t size = a.size();
66
389
        const A* __restrict a_pos = a.data();
67
389
        const B* __restrict b_pos = b.data();
68
389
        UInt8* __restrict c_pos = c.data();
69
389
        const A* __restrict a_end = a_pos + size;
70
71
2.58k
        while (a_pos < a_end) {
72
2.19k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
2.19k
            ++a_pos;
74
2.19k
            ++b_pos;
75
2.19k
            ++c_pos;
76
2.19k
        }
77
389
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
634
                                        PaddedPODArray<UInt8>& c) {
65
634
        size_t size = a.size();
66
634
        const A* __restrict a_pos = a.data();
67
634
        const B* __restrict b_pos = b.data();
68
634
        UInt8* __restrict c_pos = c.data();
69
634
        const A* __restrict a_end = a_pos + size;
70
71
4.14k
        while (a_pos < a_end) {
72
3.51k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
3.51k
            ++a_pos;
74
3.51k
            ++b_pos;
75
3.51k
            ++c_pos;
76
3.51k
        }
77
634
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1.61k
                                        PaddedPODArray<UInt8>& c) {
65
1.61k
        size_t size = a.size();
66
1.61k
        const A* __restrict a_pos = a.data();
67
1.61k
        const B* __restrict b_pos = b.data();
68
1.61k
        UInt8* __restrict c_pos = c.data();
69
1.61k
        const A* __restrict a_end = a_pos + size;
70
71
6.19M
        while (a_pos < a_end) {
72
6.19M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
6.19M
            ++a_pos;
74
6.19M
            ++b_pos;
75
6.19M
            ++c_pos;
76
6.19M
        }
77
1.61k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
156
                                        PaddedPODArray<UInt8>& c) {
65
156
        size_t size = a.size();
66
156
        const A* __restrict a_pos = a.data();
67
156
        const B* __restrict b_pos = b.data();
68
156
        UInt8* __restrict c_pos = c.data();
69
156
        const A* __restrict a_end = a_pos + size;
70
71
1.67k
        while (a_pos < a_end) {
72
1.51k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.51k
            ++a_pos;
74
1.51k
            ++b_pos;
75
1.51k
            ++c_pos;
76
1.51k
        }
77
156
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
96
        while (a_pos < a_end) {
72
76
            *c_pos = Op::apply(*a_pos, *b_pos);
73
76
            ++a_pos;
74
76
            ++b_pos;
75
76
            ++c_pos;
76
76
        }
77
20
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
50
                                        PaddedPODArray<UInt8>& c) {
65
50
        size_t size = a.size();
66
50
        const A* __restrict a_pos = a.data();
67
50
        const B* __restrict b_pos = b.data();
68
50
        UInt8* __restrict c_pos = c.data();
69
50
        const A* __restrict a_end = a_pos + size;
70
71
146
        while (a_pos < a_end) {
72
96
            *c_pos = Op::apply(*a_pos, *b_pos);
73
96
            ++a_pos;
74
96
            ++b_pos;
75
96
            ++c_pos;
76
96
        }
77
50
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
7
                                        PaddedPODArray<UInt8>& c) {
65
7
        size_t size = a.size();
66
7
        const A* __restrict a_pos = a.data();
67
7
        const B* __restrict b_pos = b.data();
68
7
        UInt8* __restrict c_pos = c.data();
69
7
        const A* __restrict a_end = a_pos + size;
70
71
38
        while (a_pos < a_end) {
72
31
            *c_pos = Op::apply(*a_pos, *b_pos);
73
31
            ++a_pos;
74
31
            ++b_pos;
75
31
            ++c_pos;
76
31
        }
77
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
6
                                        PaddedPODArray<UInt8>& c) {
65
6
        size_t size = a.size();
66
6
        const A* __restrict a_pos = a.data();
67
6
        const B* __restrict b_pos = b.data();
68
6
        UInt8* __restrict c_pos = c.data();
69
6
        const A* __restrict a_end = a_pos + size;
70
71
70
        while (a_pos < a_end) {
72
64
            *c_pos = Op::apply(*a_pos, *b_pos);
73
64
            ++a_pos;
74
64
            ++b_pos;
75
64
            ++c_pos;
76
64
        }
77
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
16
        while (a_pos < a_end) {
72
13
            *c_pos = Op::apply(*a_pos, *b_pos);
73
13
            ++a_pos;
74
13
            ++b_pos;
75
13
            ++c_pos;
76
13
        }
77
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
8
                                        PaddedPODArray<UInt8>& c) {
65
8
        size_t size = a.size();
66
8
        const A* __restrict a_pos = a.data();
67
8
        const B* __restrict b_pos = b.data();
68
8
        UInt8* __restrict c_pos = c.data();
69
8
        const A* __restrict a_end = a_pos + size;
70
71
62
        while (a_pos < a_end) {
72
54
            *c_pos = Op::apply(*a_pos, *b_pos);
73
54
            ++a_pos;
74
54
            ++b_pos;
75
54
            ++c_pos;
76
54
        }
77
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
50
                                        PaddedPODArray<UInt8>& c) {
65
50
        size_t size = a.size();
66
50
        const A* __restrict a_pos = a.data();
67
50
        const B* __restrict b_pos = b.data();
68
50
        UInt8* __restrict c_pos = c.data();
69
50
        const A* __restrict a_end = a_pos + size;
70
71
156
        while (a_pos < a_end) {
72
106
            *c_pos = Op::apply(*a_pos, *b_pos);
73
106
            ++a_pos;
74
106
            ++b_pos;
75
106
            ++c_pos;
76
106
        }
77
50
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
64
87
                                        PaddedPODArray<UInt8>& c) {
65
87
        size_t size = a.size();
66
87
        const A* __restrict a_pos = a.data();
67
87
        const B* __restrict b_pos = b.data();
68
87
        UInt8* __restrict c_pos = c.data();
69
87
        const A* __restrict a_end = a_pos + size;
70
71
348
        while (a_pos < a_end) {
72
261
            *c_pos = Op::apply(*a_pos, *b_pos);
73
261
            ++a_pos;
74
261
            ++b_pos;
75
261
            ++c_pos;
76
261
        }
77
87
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
1.63k
                                        PaddedPODArray<UInt8>& c) {
65
1.63k
        size_t size = a.size();
66
1.63k
        const A* __restrict a_pos = a.data();
67
1.63k
        const B* __restrict b_pos = b.data();
68
1.63k
        UInt8* __restrict c_pos = c.data();
69
1.63k
        const A* __restrict a_end = a_pos + size;
70
71
1.69M
        while (a_pos < a_end) {
72
1.69M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.69M
            ++a_pos;
74
1.69M
            ++b_pos;
75
1.69M
            ++c_pos;
76
1.69M
        }
77
1.63k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
282
                                        PaddedPODArray<UInt8>& c) {
65
282
        size_t size = a.size();
66
282
        const A* __restrict a_pos = a.data();
67
282
        const B* __restrict b_pos = b.data();
68
282
        UInt8* __restrict c_pos = c.data();
69
282
        const A* __restrict a_end = a_pos + size;
70
71
912
        while (a_pos < a_end) {
72
630
            *c_pos = Op::apply(*a_pos, *b_pos);
73
630
            ++a_pos;
74
630
            ++b_pos;
75
630
            ++c_pos;
76
630
        }
77
282
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
842
                                        PaddedPODArray<UInt8>& c) {
65
842
        size_t size = a.size();
66
842
        const A* __restrict a_pos = a.data();
67
842
        const B* __restrict b_pos = b.data();
68
842
        UInt8* __restrict c_pos = c.data();
69
842
        const A* __restrict a_end = a_pos + size;
70
71
4.91k
        while (a_pos < a_end) {
72
4.07k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4.07k
            ++a_pos;
74
4.07k
            ++b_pos;
75
4.07k
            ++c_pos;
76
4.07k
        }
77
842
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
137
                                        PaddedPODArray<UInt8>& c) {
65
137
        size_t size = a.size();
66
137
        const A* __restrict a_pos = a.data();
67
137
        const B* __restrict b_pos = b.data();
68
137
        UInt8* __restrict c_pos = c.data();
69
137
        const A* __restrict a_end = a_pos + size;
70
71
449
        while (a_pos < a_end) {
72
312
            *c_pos = Op::apply(*a_pos, *b_pos);
73
312
            ++a_pos;
74
312
            ++b_pos;
75
312
            ++c_pos;
76
312
        }
77
137
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
173
                                        PaddedPODArray<UInt8>& c) {
65
173
        size_t size = a.size();
66
173
        const A* __restrict a_pos = a.data();
67
173
        const B* __restrict b_pos = b.data();
68
173
        UInt8* __restrict c_pos = c.data();
69
173
        const A* __restrict a_end = a_pos + size;
70
71
1.01k
        while (a_pos < a_end) {
72
844
            *c_pos = Op::apply(*a_pos, *b_pos);
73
844
            ++a_pos;
74
844
            ++b_pos;
75
844
            ++c_pos;
76
844
        }
77
173
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
269
                                        PaddedPODArray<UInt8>& c) {
65
269
        size_t size = a.size();
66
269
        const A* __restrict a_pos = a.data();
67
269
        const B* __restrict b_pos = b.data();
68
269
        UInt8* __restrict c_pos = c.data();
69
269
        const A* __restrict a_end = a_pos + size;
70
71
5.95k
        while (a_pos < a_end) {
72
5.68k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
5.68k
            ++a_pos;
74
5.68k
            ++b_pos;
75
5.68k
            ++c_pos;
76
5.68k
        }
77
269
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
188
                                        PaddedPODArray<UInt8>& c) {
65
188
        size_t size = a.size();
66
188
        const A* __restrict a_pos = a.data();
67
188
        const B* __restrict b_pos = b.data();
68
188
        UInt8* __restrict c_pos = c.data();
69
188
        const A* __restrict a_end = a_pos + size;
70
71
648
        while (a_pos < a_end) {
72
460
            *c_pos = Op::apply(*a_pos, *b_pos);
73
460
            ++a_pos;
74
460
            ++b_pos;
75
460
            ++c_pos;
76
460
        }
77
188
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
16
                                        PaddedPODArray<UInt8>& c) {
65
16
        size_t size = a.size();
66
16
        const A* __restrict a_pos = a.data();
67
16
        const B* __restrict b_pos = b.data();
68
16
        UInt8* __restrict c_pos = c.data();
69
16
        const A* __restrict a_end = a_pos + size;
70
71
32
        while (a_pos < a_end) {
72
16
            *c_pos = Op::apply(*a_pos, *b_pos);
73
16
            ++a_pos;
74
16
            ++b_pos;
75
16
            ++c_pos;
76
16
        }
77
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
16
                                        PaddedPODArray<UInt8>& c) {
65
16
        size_t size = a.size();
66
16
        const A* __restrict a_pos = a.data();
67
16
        const B* __restrict b_pos = b.data();
68
16
        UInt8* __restrict c_pos = c.data();
69
16
        const A* __restrict a_end = a_pos + size;
70
71
32
        while (a_pos < a_end) {
72
16
            *c_pos = Op::apply(*a_pos, *b_pos);
73
16
            ++a_pos;
74
16
            ++b_pos;
75
16
            ++c_pos;
76
16
        }
77
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
151
                                        PaddedPODArray<UInt8>& c) {
65
151
        size_t size = a.size();
66
151
        const A* __restrict a_pos = a.data();
67
151
        const B* __restrict b_pos = b.data();
68
151
        UInt8* __restrict c_pos = c.data();
69
151
        const A* __restrict a_end = a_pos + size;
70
71
495
        while (a_pos < a_end) {
72
344
            *c_pos = Op::apply(*a_pos, *b_pos);
73
344
            ++a_pos;
74
344
            ++b_pos;
75
344
            ++c_pos;
76
344
        }
77
151
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
161
                                        PaddedPODArray<UInt8>& c) {
65
161
        size_t size = a.size();
66
161
        const A* __restrict a_pos = a.data();
67
161
        const B* __restrict b_pos = b.data();
68
161
        UInt8* __restrict c_pos = c.data();
69
161
        const A* __restrict a_end = a_pos + size;
70
71
544
        while (a_pos < a_end) {
72
383
            *c_pos = Op::apply(*a_pos, *b_pos);
73
383
            ++a_pos;
74
383
            ++b_pos;
75
383
            ++c_pos;
76
383
        }
77
161
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
430
                                        PaddedPODArray<UInt8>& c) {
65
430
        size_t size = a.size();
66
430
        const A* __restrict a_pos = a.data();
67
430
        const B* __restrict b_pos = b.data();
68
430
        UInt8* __restrict c_pos = c.data();
69
430
        const A* __restrict a_end = a_pos + size;
70
71
6.63k
        while (a_pos < a_end) {
72
6.20k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
6.20k
            ++a_pos;
74
6.20k
            ++b_pos;
75
6.20k
            ++c_pos;
76
6.20k
        }
77
430
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
5
        while (a_pos < a_end) {
72
4
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4
            ++a_pos;
74
4
            ++b_pos;
75
4
            ++c_pos;
76
4
        }
77
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
40
                                        PaddedPODArray<UInt8>& c) {
65
40
        size_t size = a.size();
66
40
        const A* __restrict a_pos = a.data();
67
40
        const B* __restrict b_pos = b.data();
68
40
        UInt8* __restrict c_pos = c.data();
69
40
        const A* __restrict a_end = a_pos + size;
70
71
941
        while (a_pos < a_end) {
72
901
            *c_pos = Op::apply(*a_pos, *b_pos);
73
901
            ++a_pos;
74
901
            ++b_pos;
75
901
            ++c_pos;
76
901
        }
77
40
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
39
                                        PaddedPODArray<UInt8>& c) {
65
39
        size_t size = a.size();
66
39
        const A* __restrict a_pos = a.data();
67
39
        const B* __restrict b_pos = b.data();
68
39
        UInt8* __restrict c_pos = c.data();
69
39
        const A* __restrict a_end = a_pos + size;
70
71
213
        while (a_pos < a_end) {
72
174
            *c_pos = Op::apply(*a_pos, *b_pos);
73
174
            ++a_pos;
74
174
            ++b_pos;
75
174
            ++c_pos;
76
174
        }
77
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
78
79
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
80
22.2k
                                          PaddedPODArray<UInt8>& c) {
81
22.2k
        size_t size = a.size();
82
22.2k
        const A* __restrict a_pos = a.data();
83
22.2k
        UInt8* __restrict c_pos = c.data();
84
22.2k
        const A* __restrict a_end = a_pos + size;
85
86
25.3M
        while (a_pos < a_end) {
87
25.3M
            *c_pos = Op::apply(*a_pos, b);
88
25.3M
            ++a_pos;
89
25.3M
            ++c_pos;
90
25.3M
        }
91
22.2k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
26
                                          PaddedPODArray<UInt8>& c) {
81
26
        size_t size = a.size();
82
26
        const A* __restrict a_pos = a.data();
83
26
        UInt8* __restrict c_pos = c.data();
84
26
        const A* __restrict a_end = a_pos + size;
85
86
164
        while (a_pos < a_end) {
87
138
            *c_pos = Op::apply(*a_pos, b);
88
138
            ++a_pos;
89
138
            ++c_pos;
90
138
        }
91
26
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
1.34k
                                          PaddedPODArray<UInt8>& c) {
81
1.34k
        size_t size = a.size();
82
1.34k
        const A* __restrict a_pos = a.data();
83
1.34k
        UInt8* __restrict c_pos = c.data();
84
1.34k
        const A* __restrict a_end = a_pos + size;
85
86
206k
        while (a_pos < a_end) {
87
205k
            *c_pos = Op::apply(*a_pos, b);
88
205k
            ++a_pos;
89
205k
            ++c_pos;
90
205k
        }
91
1.34k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
195
                                          PaddedPODArray<UInt8>& c) {
81
195
        size_t size = a.size();
82
195
        const A* __restrict a_pos = a.data();
83
195
        UInt8* __restrict c_pos = c.data();
84
195
        const A* __restrict a_end = a_pos + size;
85
86
100k
        while (a_pos < a_end) {
87
100k
            *c_pos = Op::apply(*a_pos, b);
88
100k
            ++a_pos;
89
100k
            ++c_pos;
90
100k
        }
91
195
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
2.62k
                                          PaddedPODArray<UInt8>& c) {
81
2.62k
        size_t size = a.size();
82
2.62k
        const A* __restrict a_pos = a.data();
83
2.62k
        UInt8* __restrict c_pos = c.data();
84
2.62k
        const A* __restrict a_end = a_pos + size;
85
86
8.78M
        while (a_pos < a_end) {
87
8.78M
            *c_pos = Op::apply(*a_pos, b);
88
8.78M
            ++a_pos;
89
8.78M
            ++c_pos;
90
8.78M
        }
91
2.62k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
167
                                          PaddedPODArray<UInt8>& c) {
81
167
        size_t size = a.size();
82
167
        const A* __restrict a_pos = a.data();
83
167
        UInt8* __restrict c_pos = c.data();
84
167
        const A* __restrict a_end = a_pos + size;
85
86
100k
        while (a_pos < a_end) {
87
100k
            *c_pos = Op::apply(*a_pos, b);
88
100k
            ++a_pos;
89
100k
            ++c_pos;
90
100k
        }
91
167
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.57k
                                          PaddedPODArray<UInt8>& c) {
81
1.57k
        size_t size = a.size();
82
1.57k
        const A* __restrict a_pos = a.data();
83
1.57k
        UInt8* __restrict c_pos = c.data();
84
1.57k
        const A* __restrict a_end = a_pos + size;
85
86
193k
        while (a_pos < a_end) {
87
191k
            *c_pos = Op::apply(*a_pos, b);
88
191k
            ++a_pos;
89
191k
            ++c_pos;
90
191k
        }
91
1.57k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
804
                                          PaddedPODArray<UInt8>& c) {
81
804
        size_t size = a.size();
82
804
        const A* __restrict a_pos = a.data();
83
804
        UInt8* __restrict c_pos = c.data();
84
804
        const A* __restrict a_end = a_pos + size;
85
86
372k
        while (a_pos < a_end) {
87
371k
            *c_pos = Op::apply(*a_pos, b);
88
371k
            ++a_pos;
89
371k
            ++c_pos;
90
371k
        }
91
804
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
24
                                          PaddedPODArray<UInt8>& c) {
81
24
        size_t size = a.size();
82
24
        const A* __restrict a_pos = a.data();
83
24
        UInt8* __restrict c_pos = c.data();
84
24
        const A* __restrict a_end = a_pos + size;
85
86
100k
        while (a_pos < a_end) {
87
100k
            *c_pos = Op::apply(*a_pos, b);
88
100k
            ++a_pos;
89
100k
            ++c_pos;
90
100k
        }
91
24
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
15
                                          PaddedPODArray<UInt8>& c) {
81
15
        size_t size = a.size();
82
15
        const A* __restrict a_pos = a.data();
83
15
        UInt8* __restrict c_pos = c.data();
84
15
        const A* __restrict a_end = a_pos + size;
85
86
129
        while (a_pos < a_end) {
87
114
            *c_pos = Op::apply(*a_pos, b);
88
114
            ++a_pos;
89
114
            ++c_pos;
90
114
        }
91
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
6
                                          PaddedPODArray<UInt8>& c) {
81
6
        size_t size = a.size();
82
6
        const A* __restrict a_pos = a.data();
83
6
        UInt8* __restrict c_pos = c.data();
84
6
        const A* __restrict a_end = a_pos + size;
85
86
12
        while (a_pos < a_end) {
87
6
            *c_pos = Op::apply(*a_pos, b);
88
6
            ++a_pos;
89
6
            ++c_pos;
90
6
        }
91
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
236
                                          PaddedPODArray<UInt8>& c) {
81
236
        size_t size = a.size();
82
236
        const A* __restrict a_pos = a.data();
83
236
        UInt8* __restrict c_pos = c.data();
84
236
        const A* __restrict a_end = a_pos + size;
85
86
700k
        while (a_pos < a_end) {
87
700k
            *c_pos = Op::apply(*a_pos, b);
88
700k
            ++a_pos;
89
700k
            ++c_pos;
90
700k
        }
91
236
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
2
                                          PaddedPODArray<UInt8>& c) {
81
2
        size_t size = a.size();
82
2
        const A* __restrict a_pos = a.data();
83
2
        UInt8* __restrict c_pos = c.data();
84
2
        const A* __restrict a_end = a_pos + size;
85
86
5
        while (a_pos < a_end) {
87
3
            *c_pos = Op::apply(*a_pos, b);
88
3
            ++a_pos;
89
3
            ++c_pos;
90
3
        }
91
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
28
                                          PaddedPODArray<UInt8>& c) {
81
28
        size_t size = a.size();
82
28
        const A* __restrict a_pos = a.data();
83
28
        UInt8* __restrict c_pos = c.data();
84
28
        const A* __restrict a_end = a_pos + size;
85
86
78
        while (a_pos < a_end) {
87
50
            *c_pos = Op::apply(*a_pos, b);
88
50
            ++a_pos;
89
50
            ++c_pos;
90
50
        }
91
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
151
                                          PaddedPODArray<UInt8>& c) {
81
151
        size_t size = a.size();
82
151
        const A* __restrict a_pos = a.data();
83
151
        UInt8* __restrict c_pos = c.data();
84
151
        const A* __restrict a_end = a_pos + size;
85
86
1.66k
        while (a_pos < a_end) {
87
1.51k
            *c_pos = Op::apply(*a_pos, b);
88
1.51k
            ++a_pos;
89
1.51k
            ++c_pos;
90
1.51k
        }
91
151
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
23
                                          PaddedPODArray<UInt8>& c) {
81
23
        size_t size = a.size();
82
23
        const A* __restrict a_pos = a.data();
83
23
        UInt8* __restrict c_pos = c.data();
84
23
        const A* __restrict a_end = a_pos + size;
85
86
1.04k
        while (a_pos < a_end) {
87
1.02k
            *c_pos = Op::apply(*a_pos, b);
88
1.02k
            ++a_pos;
89
1.02k
            ++c_pos;
90
1.02k
        }
91
23
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
28
                                          PaddedPODArray<UInt8>& c) {
81
28
        size_t size = a.size();
82
28
        const A* __restrict a_pos = a.data();
83
28
        UInt8* __restrict c_pos = c.data();
84
28
        const A* __restrict a_end = a_pos + size;
85
86
70
        while (a_pos < a_end) {
87
42
            *c_pos = Op::apply(*a_pos, b);
88
42
            ++a_pos;
89
42
            ++c_pos;
90
42
        }
91
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
40
                                          PaddedPODArray<UInt8>& c) {
81
40
        size_t size = a.size();
82
40
        const A* __restrict a_pos = a.data();
83
40
        UInt8* __restrict c_pos = c.data();
84
40
        const A* __restrict a_end = a_pos + size;
85
86
282
        while (a_pos < a_end) {
87
242
            *c_pos = Op::apply(*a_pos, b);
88
242
            ++a_pos;
89
242
            ++c_pos;
90
242
        }
91
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
12
                                          PaddedPODArray<UInt8>& c) {
81
12
        size_t size = a.size();
82
12
        const A* __restrict a_pos = a.data();
83
12
        UInt8* __restrict c_pos = c.data();
84
12
        const A* __restrict a_end = a_pos + size;
85
86
72
        while (a_pos < a_end) {
87
60
            *c_pos = Op::apply(*a_pos, b);
88
60
            ++a_pos;
89
60
            ++c_pos;
90
60
        }
91
12
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
340
                                          PaddedPODArray<UInt8>& c) {
81
340
        size_t size = a.size();
82
340
        const A* __restrict a_pos = a.data();
83
340
        UInt8* __restrict c_pos = c.data();
84
340
        const A* __restrict a_end = a_pos + size;
85
86
1.34M
        while (a_pos < a_end) {
87
1.34M
            *c_pos = Op::apply(*a_pos, b);
88
1.34M
            ++a_pos;
89
1.34M
            ++c_pos;
90
1.34M
        }
91
340
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
2
                                          PaddedPODArray<UInt8>& c) {
81
2
        size_t size = a.size();
82
2
        const A* __restrict a_pos = a.data();
83
2
        UInt8* __restrict c_pos = c.data();
84
2
        const A* __restrict a_end = a_pos + size;
85
86
6
        while (a_pos < a_end) {
87
4
            *c_pos = Op::apply(*a_pos, b);
88
4
            ++a_pos;
89
4
            ++c_pos;
90
4
        }
91
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
59
                                          PaddedPODArray<UInt8>& c) {
81
59
        size_t size = a.size();
82
59
        const A* __restrict a_pos = a.data();
83
59
        UInt8* __restrict c_pos = c.data();
84
59
        const A* __restrict a_end = a_pos + size;
85
86
269
        while (a_pos < a_end) {
87
210
            *c_pos = Op::apply(*a_pos, b);
88
210
            ++a_pos;
89
210
            ++c_pos;
90
210
        }
91
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
80
1
                                          PaddedPODArray<UInt8>& c) {
81
1
        size_t size = a.size();
82
1
        const A* __restrict a_pos = a.data();
83
1
        UInt8* __restrict c_pos = c.data();
84
1
        const A* __restrict a_end = a_pos + size;
85
86
8
        while (a_pos < a_end) {
87
7
            *c_pos = Op::apply(*a_pos, b);
88
7
            ++a_pos;
89
7
            ++c_pos;
90
7
        }
91
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
380
                                          PaddedPODArray<UInt8>& c) {
81
380
        size_t size = a.size();
82
380
        const A* __restrict a_pos = a.data();
83
380
        UInt8* __restrict c_pos = c.data();
84
380
        const A* __restrict a_end = a_pos + size;
85
86
4.00k
        while (a_pos < a_end) {
87
3.62k
            *c_pos = Op::apply(*a_pos, b);
88
3.62k
            ++a_pos;
89
3.62k
            ++c_pos;
90
3.62k
        }
91
380
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
27
                                          PaddedPODArray<UInt8>& c) {
81
27
        size_t size = a.size();
82
27
        const A* __restrict a_pos = a.data();
83
27
        UInt8* __restrict c_pos = c.data();
84
27
        const A* __restrict a_end = a_pos + size;
85
86
109
        while (a_pos < a_end) {
87
82
            *c_pos = Op::apply(*a_pos, b);
88
82
            ++a_pos;
89
82
            ++c_pos;
90
82
        }
91
27
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
403
                                          PaddedPODArray<UInt8>& c) {
81
403
        size_t size = a.size();
82
403
        const A* __restrict a_pos = a.data();
83
403
        UInt8* __restrict c_pos = c.data();
84
403
        const A* __restrict a_end = a_pos + size;
85
86
3.61k
        while (a_pos < a_end) {
87
3.21k
            *c_pos = Op::apply(*a_pos, b);
88
3.21k
            ++a_pos;
89
3.21k
            ++c_pos;
90
3.21k
        }
91
403
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
14
                                          PaddedPODArray<UInt8>& c) {
81
14
        size_t size = a.size();
82
14
        const A* __restrict a_pos = a.data();
83
14
        UInt8* __restrict c_pos = c.data();
84
14
        const A* __restrict a_end = a_pos + size;
85
86
35
        while (a_pos < a_end) {
87
21
            *c_pos = Op::apply(*a_pos, b);
88
21
            ++a_pos;
89
21
            ++c_pos;
90
21
        }
91
14
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.70k
                                          PaddedPODArray<UInt8>& c) {
81
1.70k
        size_t size = a.size();
82
1.70k
        const A* __restrict a_pos = a.data();
83
1.70k
        UInt8* __restrict c_pos = c.data();
84
1.70k
        const A* __restrict a_end = a_pos + size;
85
86
14.6k
        while (a_pos < a_end) {
87
12.9k
            *c_pos = Op::apply(*a_pos, b);
88
12.9k
            ++a_pos;
89
12.9k
            ++c_pos;
90
12.9k
        }
91
1.70k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
496
                                          PaddedPODArray<UInt8>& c) {
81
496
        size_t size = a.size();
82
496
        const A* __restrict a_pos = a.data();
83
496
        UInt8* __restrict c_pos = c.data();
84
496
        const A* __restrict a_end = a_pos + size;
85
86
3.21k
        while (a_pos < a_end) {
87
2.71k
            *c_pos = Op::apply(*a_pos, b);
88
2.71k
            ++a_pos;
89
2.71k
            ++c_pos;
90
2.71k
        }
91
496
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.08k
                                          PaddedPODArray<UInt8>& c) {
81
1.08k
        size_t size = a.size();
82
1.08k
        const A* __restrict a_pos = a.data();
83
1.08k
        UInt8* __restrict c_pos = c.data();
84
1.08k
        const A* __restrict a_end = a_pos + size;
85
86
122k
        while (a_pos < a_end) {
87
121k
            *c_pos = Op::apply(*a_pos, b);
88
121k
            ++a_pos;
89
121k
            ++c_pos;
90
121k
        }
91
1.08k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
516
                                          PaddedPODArray<UInt8>& c) {
81
516
        size_t size = a.size();
82
516
        const A* __restrict a_pos = a.data();
83
516
        UInt8* __restrict c_pos = c.data();
84
516
        const A* __restrict a_end = a_pos + size;
85
86
1.49k
        while (a_pos < a_end) {
87
975
            *c_pos = Op::apply(*a_pos, b);
88
975
            ++a_pos;
89
975
            ++c_pos;
90
975
        }
91
516
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
203
                                          PaddedPODArray<UInt8>& c) {
81
203
        size_t size = a.size();
82
203
        const A* __restrict a_pos = a.data();
83
203
        UInt8* __restrict c_pos = c.data();
84
203
        const A* __restrict a_end = a_pos + size;
85
86
1.74k
        while (a_pos < a_end) {
87
1.54k
            *c_pos = Op::apply(*a_pos, b);
88
1.54k
            ++a_pos;
89
1.54k
            ++c_pos;
90
1.54k
        }
91
203
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
68
                                          PaddedPODArray<UInt8>& c) {
81
68
        size_t size = a.size();
82
68
        const A* __restrict a_pos = a.data();
83
68
        UInt8* __restrict c_pos = c.data();
84
68
        const A* __restrict a_end = a_pos + size;
85
86
86.1k
        while (a_pos < a_end) {
87
86.0k
            *c_pos = Op::apply(*a_pos, b);
88
86.0k
            ++a_pos;
89
86.0k
            ++c_pos;
90
86.0k
        }
91
68
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1
                                          PaddedPODArray<UInt8>& c) {
81
1
        size_t size = a.size();
82
1
        const A* __restrict a_pos = a.data();
83
1
        UInt8* __restrict c_pos = c.data();
84
1
        const A* __restrict a_end = a_pos + size;
85
86
9
        while (a_pos < a_end) {
87
8
            *c_pos = Op::apply(*a_pos, b);
88
8
            ++a_pos;
89
8
            ++c_pos;
90
8
        }
91
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
200
                                          PaddedPODArray<UInt8>& c) {
81
200
        size_t size = a.size();
82
200
        const A* __restrict a_pos = a.data();
83
200
        UInt8* __restrict c_pos = c.data();
84
200
        const A* __restrict a_end = a_pos + size;
85
86
2.61k
        while (a_pos < a_end) {
87
2.41k
            *c_pos = Op::apply(*a_pos, b);
88
2.41k
            ++a_pos;
89
2.41k
            ++c_pos;
90
2.41k
        }
91
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
498
                                          PaddedPODArray<UInt8>& c) {
81
498
        size_t size = a.size();
82
498
        const A* __restrict a_pos = a.data();
83
498
        UInt8* __restrict c_pos = c.data();
84
498
        const A* __restrict a_end = a_pos + size;
85
86
7.40k
        while (a_pos < a_end) {
87
6.90k
            *c_pos = Op::apply(*a_pos, b);
88
6.90k
            ++a_pos;
89
6.90k
            ++c_pos;
90
6.90k
        }
91
498
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
165
                                          PaddedPODArray<UInt8>& c) {
81
165
        size_t size = a.size();
82
165
        const A* __restrict a_pos = a.data();
83
165
        UInt8* __restrict c_pos = c.data();
84
165
        const A* __restrict a_end = a_pos + size;
85
86
282k
        while (a_pos < a_end) {
87
282k
            *c_pos = Op::apply(*a_pos, b);
88
282k
            ++a_pos;
89
282k
            ++c_pos;
90
282k
        }
91
165
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
36
                                          PaddedPODArray<UInt8>& c) {
81
36
        size_t size = a.size();
82
36
        const A* __restrict a_pos = a.data();
83
36
        UInt8* __restrict c_pos = c.data();
84
36
        const A* __restrict a_end = a_pos + size;
85
86
167k
        while (a_pos < a_end) {
87
167k
            *c_pos = Op::apply(*a_pos, b);
88
167k
            ++a_pos;
89
167k
            ++c_pos;
90
167k
        }
91
36
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
36
                                          PaddedPODArray<UInt8>& c) {
81
36
        size_t size = a.size();
82
36
        const A* __restrict a_pos = a.data();
83
36
        UInt8* __restrict c_pos = c.data();
84
36
        const A* __restrict a_end = a_pos + size;
85
86
167k
        while (a_pos < a_end) {
87
167k
            *c_pos = Op::apply(*a_pos, b);
88
167k
            ++a_pos;
89
167k
            ++c_pos;
90
167k
        }
91
36
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
489
                                          PaddedPODArray<UInt8>& c) {
81
489
        size_t size = a.size();
82
489
        const A* __restrict a_pos = a.data();
83
489
        UInt8* __restrict c_pos = c.data();
84
489
        const A* __restrict a_end = a_pos + size;
85
86
1.52M
        while (a_pos < a_end) {
87
1.52M
            *c_pos = Op::apply(*a_pos, b);
88
1.52M
            ++a_pos;
89
1.52M
            ++c_pos;
90
1.52M
        }
91
489
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
151
                                          PaddedPODArray<UInt8>& c) {
81
151
        size_t size = a.size();
82
151
        const A* __restrict a_pos = a.data();
83
151
        UInt8* __restrict c_pos = c.data();
84
151
        const A* __restrict a_end = a_pos + size;
85
86
768k
        while (a_pos < a_end) {
87
768k
            *c_pos = Op::apply(*a_pos, b);
88
768k
            ++a_pos;
89
768k
            ++c_pos;
90
768k
        }
91
151
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
135
                                          PaddedPODArray<UInt8>& c) {
81
135
        size_t size = a.size();
82
135
        const A* __restrict a_pos = a.data();
83
135
        UInt8* __restrict c_pos = c.data();
84
135
        const A* __restrict a_end = a_pos + size;
85
86
509
        while (a_pos < a_end) {
87
374
            *c_pos = Op::apply(*a_pos, b);
88
374
            ++a_pos;
89
374
            ++c_pos;
90
374
        }
91
135
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
42
                                          PaddedPODArray<UInt8>& c) {
81
42
        size_t size = a.size();
82
42
        const A* __restrict a_pos = a.data();
83
42
        UInt8* __restrict c_pos = c.data();
84
42
        const A* __restrict a_end = a_pos + size;
85
86
88
        while (a_pos < a_end) {
87
46
            *c_pos = Op::apply(*a_pos, b);
88
46
            ++a_pos;
89
46
            ++c_pos;
90
46
        }
91
42
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
86
                                          PaddedPODArray<UInt8>& c) {
81
86
        size_t size = a.size();
82
86
        const A* __restrict a_pos = a.data();
83
86
        UInt8* __restrict c_pos = c.data();
84
86
        const A* __restrict a_end = a_pos + size;
85
86
183k
        while (a_pos < a_end) {
87
183k
            *c_pos = Op::apply(*a_pos, b);
88
183k
            ++a_pos;
89
183k
            ++c_pos;
90
183k
        }
91
86
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
83
                                          PaddedPODArray<UInt8>& c) {
81
83
        size_t size = a.size();
82
83
        const A* __restrict a_pos = a.data();
83
83
        UInt8* __restrict c_pos = c.data();
84
83
        const A* __restrict a_end = a_pos + size;
85
86
167k
        while (a_pos < a_end) {
87
167k
            *c_pos = Op::apply(*a_pos, b);
88
167k
            ++a_pos;
89
167k
            ++c_pos;
90
167k
        }
91
83
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
88
                                          PaddedPODArray<UInt8>& c) {
81
88
        size_t size = a.size();
82
88
        const A* __restrict a_pos = a.data();
83
88
        UInt8* __restrict c_pos = c.data();
84
88
        const A* __restrict a_end = a_pos + size;
85
86
118k
        while (a_pos < a_end) {
87
118k
            *c_pos = Op::apply(*a_pos, b);
88
118k
            ++a_pos;
89
118k
            ++c_pos;
90
118k
        }
91
88
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
118
                                          PaddedPODArray<UInt8>& c) {
81
118
        size_t size = a.size();
82
118
        const A* __restrict a_pos = a.data();
83
118
        UInt8* __restrict c_pos = c.data();
84
118
        const A* __restrict a_end = a_pos + size;
85
86
175k
        while (a_pos < a_end) {
87
175k
            *c_pos = Op::apply(*a_pos, b);
88
175k
            ++a_pos;
89
175k
            ++c_pos;
90
175k
        }
91
118
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
855
                                          PaddedPODArray<UInt8>& c) {
81
855
        size_t size = a.size();
82
855
        const A* __restrict a_pos = a.data();
83
855
        UInt8* __restrict c_pos = c.data();
84
855
        const A* __restrict a_end = a_pos + size;
85
86
2.44M
        while (a_pos < a_end) {
87
2.44M
            *c_pos = Op::apply(*a_pos, b);
88
2.44M
            ++a_pos;
89
2.44M
            ++c_pos;
90
2.44M
        }
91
855
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
5.98k
                                          PaddedPODArray<UInt8>& c) {
81
5.98k
        size_t size = a.size();
82
5.98k
        const A* __restrict a_pos = a.data();
83
5.98k
        UInt8* __restrict c_pos = c.data();
84
5.98k
        const A* __restrict a_end = a_pos + size;
85
86
6.39M
        while (a_pos < a_end) {
87
6.38M
            *c_pos = Op::apply(*a_pos, b);
88
6.38M
            ++a_pos;
89
6.38M
            ++c_pos;
90
6.38M
        }
91
5.98k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
151
                                          PaddedPODArray<UInt8>& c) {
81
151
        size_t size = a.size();
82
151
        const A* __restrict a_pos = a.data();
83
151
        UInt8* __restrict c_pos = c.data();
84
151
        const A* __restrict a_end = a_pos + size;
85
86
5.43k
        while (a_pos < a_end) {
87
5.27k
            *c_pos = Op::apply(*a_pos, b);
88
5.27k
            ++a_pos;
89
5.27k
            ++c_pos;
90
5.27k
        }
91
151
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
235
                                          PaddedPODArray<UInt8>& c) {
81
235
        size_t size = a.size();
82
235
        const A* __restrict a_pos = a.data();
83
235
        UInt8* __restrict c_pos = c.data();
84
235
        const A* __restrict a_end = a_pos + size;
85
86
2.17k
        while (a_pos < a_end) {
87
1.94k
            *c_pos = Op::apply(*a_pos, b);
88
1.94k
            ++a_pos;
89
1.94k
            ++c_pos;
90
1.94k
        }
91
235
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
32
                                          PaddedPODArray<UInt8>& c) {
81
32
        size_t size = a.size();
82
32
        const A* __restrict a_pos = a.data();
83
32
        UInt8* __restrict c_pos = c.data();
84
32
        const A* __restrict a_end = a_pos + size;
85
86
110k
        while (a_pos < a_end) {
87
110k
            *c_pos = Op::apply(*a_pos, b);
88
110k
            ++a_pos;
89
110k
            ++c_pos;
90
110k
        }
91
32
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
38
                                          PaddedPODArray<UInt8>& c) {
81
38
        size_t size = a.size();
82
38
        const A* __restrict a_pos = a.data();
83
38
        UInt8* __restrict c_pos = c.data();
84
38
        const A* __restrict a_end = a_pos + size;
85
86
159k
        while (a_pos < a_end) {
87
159k
            *c_pos = Op::apply(*a_pos, b);
88
159k
            ++a_pos;
89
159k
            ++c_pos;
90
159k
        }
91
38
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
10
                                          PaddedPODArray<UInt8>& c) {
81
10
        size_t size = a.size();
82
10
        const A* __restrict a_pos = a.data();
83
10
        UInt8* __restrict c_pos = c.data();
84
10
        const A* __restrict a_end = a_pos + size;
85
86
110
        while (a_pos < a_end) {
87
100
            *c_pos = Op::apply(*a_pos, b);
88
100
            ++a_pos;
89
100
            ++c_pos;
90
100
        }
91
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
10
                                          PaddedPODArray<UInt8>& c) {
81
10
        size_t size = a.size();
82
10
        const A* __restrict a_pos = a.data();
83
10
        UInt8* __restrict c_pos = c.data();
84
10
        const A* __restrict a_end = a_pos + size;
85
86
110
        while (a_pos < a_end) {
87
100
            *c_pos = Op::apply(*a_pos, b);
88
100
            ++a_pos;
89
100
            ++c_pos;
90
100
        }
91
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
4
                                          PaddedPODArray<UInt8>& c) {
81
4
        size_t size = a.size();
82
4
        const A* __restrict a_pos = a.data();
83
4
        UInt8* __restrict c_pos = c.data();
84
4
        const A* __restrict a_end = a_pos + size;
85
86
10
        while (a_pos < a_end) {
87
6
            *c_pos = Op::apply(*a_pos, b);
88
6
            ++a_pos;
89
6
            ++c_pos;
90
6
        }
91
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
95
                                          PaddedPODArray<UInt8>& c) {
81
95
        size_t size = a.size();
82
95
        const A* __restrict a_pos = a.data();
83
95
        UInt8* __restrict c_pos = c.data();
84
95
        const A* __restrict a_end = a_pos + size;
85
86
275k
        while (a_pos < a_end) {
87
275k
            *c_pos = Op::apply(*a_pos, b);
88
275k
            ++a_pos;
89
275k
            ++c_pos;
90
275k
        }
91
95
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
106
                                          PaddedPODArray<UInt8>& c) {
81
106
        size_t size = a.size();
82
106
        const A* __restrict a_pos = a.data();
83
106
        UInt8* __restrict c_pos = c.data();
84
106
        const A* __restrict a_end = a_pos + size;
85
86
275k
        while (a_pos < a_end) {
87
275k
            *c_pos = Op::apply(*a_pos, b);
88
275k
            ++a_pos;
89
275k
            ++c_pos;
90
275k
        }
91
106
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
92
93
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
94
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
95
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
93
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
94
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
95
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
96
};
97
98
/// Generic version, implemented for columns of same type.
99
template <typename Op>
100
struct GenericComparisonImpl {
101
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
11
        }
105
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
6
        }
105
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
1
        }
105
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
1
        }
105
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
3
        }
105
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
106
107
184
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
184
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
670k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
670k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
670k
        }
112
184
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
18
        }
112
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
74
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
74
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
351k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
351k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
351k
        }
112
74
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
73
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
73
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
319k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
319k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
319k
        }
112
73
    }
113
114
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
116
0
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
117
};
118
119
template <typename Op>
120
struct StringComparisonImpl {
121
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
122
                                                      const ColumnString::Offsets& a_offsets,
123
                                                      const ColumnString::Chars& b_data,
124
                                                      const ColumnString::Offsets& b_offsets,
125
501
                                                      PaddedPODArray<UInt8>& c) {
126
501
        size_t size = a_offsets.size();
127
501
        ColumnString::Offset prev_a_offset = 0;
128
501
        ColumnString::Offset prev_b_offset = 0;
129
501
        const auto* a_pos = a_data.data();
130
501
        const auto* b_pos = b_data.data();
131
132
1.79k
        for (size_t i = 0; i < size; ++i) {
133
1.29k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
1.29k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
1.29k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
1.29k
                             0);
137
138
1.29k
            prev_a_offset = a_offsets[i];
139
1.29k
            prev_b_offset = b_offsets[i];
140
1.29k
        }
141
501
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
2
                                                      PaddedPODArray<UInt8>& c) {
126
2
        size_t size = a_offsets.size();
127
2
        ColumnString::Offset prev_a_offset = 0;
128
2
        ColumnString::Offset prev_b_offset = 0;
129
2
        const auto* a_pos = a_data.data();
130
2
        const auto* b_pos = b_data.data();
131
132
49
        for (size_t i = 0; i < size; ++i) {
133
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
47
                             0);
137
138
47
            prev_a_offset = a_offsets[i];
139
47
            prev_b_offset = b_offsets[i];
140
47
        }
141
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
43
                                                      PaddedPODArray<UInt8>& c) {
126
43
        size_t size = a_offsets.size();
127
43
        ColumnString::Offset prev_a_offset = 0;
128
43
        ColumnString::Offset prev_b_offset = 0;
129
43
        const auto* a_pos = a_data.data();
130
43
        const auto* b_pos = b_data.data();
131
132
307
        for (size_t i = 0; i < size; ++i) {
133
264
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
264
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
264
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
264
                             0);
137
138
264
            prev_a_offset = a_offsets[i];
139
264
            prev_b_offset = b_offsets[i];
140
264
        }
141
43
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
456
                                                      PaddedPODArray<UInt8>& c) {
126
456
        size_t size = a_offsets.size();
127
456
        ColumnString::Offset prev_a_offset = 0;
128
456
        ColumnString::Offset prev_b_offset = 0;
129
456
        const auto* a_pos = a_data.data();
130
456
        const auto* b_pos = b_data.data();
131
132
1.43k
        for (size_t i = 0; i < size; ++i) {
133
982
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
982
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
982
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
982
                             0);
137
138
982
            prev_a_offset = a_offsets[i];
139
982
            prev_b_offset = b_offsets[i];
140
982
        }
141
456
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
142
143
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
144
                                                 const ColumnString::Offsets& a_offsets,
145
                                                 const ColumnString::Chars& b_data,
146
                                                 ColumnString::Offset b_size,
147
862
                                                 PaddedPODArray<UInt8>& c) {
148
862
        size_t size = a_offsets.size();
149
862
        ColumnString::Offset prev_a_offset = 0;
150
862
        const auto* a_pos = a_data.data();
151
862
        const auto* b_pos = b_data.data();
152
153
1.58M
        for (size_t i = 0; i < size; ++i) {
154
1.57M
            c[i] = Op::apply(
155
1.57M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
1.57M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
1.57M
                    0);
158
159
1.57M
            prev_a_offset = a_offsets[i];
160
1.57M
        }
161
862
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
212
                                                 PaddedPODArray<UInt8>& c) {
148
212
        size_t size = a_offsets.size();
149
212
        ColumnString::Offset prev_a_offset = 0;
150
212
        const auto* a_pos = a_data.data();
151
212
        const auto* b_pos = b_data.data();
152
153
325k
        for (size_t i = 0; i < size; ++i) {
154
325k
            c[i] = Op::apply(
155
325k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
325k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
325k
                    0);
158
159
325k
            prev_a_offset = a_offsets[i];
160
325k
        }
161
212
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
179
                                                 PaddedPODArray<UInt8>& c) {
148
179
        size_t size = a_offsets.size();
149
179
        ColumnString::Offset prev_a_offset = 0;
150
179
        const auto* a_pos = a_data.data();
151
179
        const auto* b_pos = b_data.data();
152
153
72.9k
        for (size_t i = 0; i < size; ++i) {
154
72.7k
            c[i] = Op::apply(
155
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
72.7k
                    0);
158
159
72.7k
            prev_a_offset = a_offsets[i];
160
72.7k
        }
161
179
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
244
                                                 PaddedPODArray<UInt8>& c) {
148
244
        size_t size = a_offsets.size();
149
244
        ColumnString::Offset prev_a_offset = 0;
150
244
        const auto* a_pos = a_data.data();
151
244
        const auto* b_pos = b_data.data();
152
153
595k
        for (size_t i = 0; i < size; ++i) {
154
595k
            c[i] = Op::apply(
155
595k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
595k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
595k
                    0);
158
159
595k
            prev_a_offset = a_offsets[i];
160
595k
        }
161
244
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
227
                                                 PaddedPODArray<UInt8>& c) {
148
227
        size_t size = a_offsets.size();
149
227
        ColumnString::Offset prev_a_offset = 0;
150
227
        const auto* a_pos = a_data.data();
151
227
        const auto* b_pos = b_data.data();
152
153
585k
        for (size_t i = 0; i < size; ++i) {
154
585k
            c[i] = Op::apply(
155
585k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
585k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
585k
                    0);
158
159
585k
            prev_a_offset = a_offsets[i];
160
585k
        }
161
227
    }
162
163
    static void constant_string_vector(const ColumnString::Chars& a_data,
164
                                       ColumnString::Offset a_size,
165
                                       const ColumnString::Chars& b_data,
166
                                       const ColumnString::Offsets& b_offsets,
167
0
                                       PaddedPODArray<UInt8>& c) {
168
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
169
0
                                                                               a_data, a_size, c);
170
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
171
};
172
173
template <bool positive>
174
struct StringEqualsImpl {
175
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
176
                                                      const ColumnString::Offsets& a_offsets,
177
                                                      const ColumnString::Chars& b_data,
178
                                                      const ColumnString::Offsets& b_offsets,
179
497
                                                      PaddedPODArray<UInt8>& c) {
180
497
        size_t size = a_offsets.size();
181
497
        ColumnString::Offset prev_a_offset = 0;
182
497
        ColumnString::Offset prev_b_offset = 0;
183
497
        const auto* a_pos = a_data.data();
184
497
        const auto* b_pos = b_data.data();
185
186
1.42k
        for (size_t i = 0; i < size; ++i) {
187
928
            auto a_size = a_offsets[i] - prev_a_offset;
188
928
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
928
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
928
                                                               b_pos + prev_b_offset, b_size);
192
193
928
            prev_a_offset = a_offsets[i];
194
928
            prev_b_offset = b_offsets[i];
195
928
        }
196
497
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
179
496
                                                      PaddedPODArray<UInt8>& c) {
180
496
        size_t size = a_offsets.size();
181
496
        ColumnString::Offset prev_a_offset = 0;
182
496
        ColumnString::Offset prev_b_offset = 0;
183
496
        const auto* a_pos = a_data.data();
184
496
        const auto* b_pos = b_data.data();
185
186
1.42k
        for (size_t i = 0; i < size; ++i) {
187
924
            auto a_size = a_offsets[i] - prev_a_offset;
188
924
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
924
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
924
                                                               b_pos + prev_b_offset, b_size);
192
193
924
            prev_a_offset = a_offsets[i];
194
924
            prev_b_offset = b_offsets[i];
195
924
        }
196
496
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
179
1
                                                      PaddedPODArray<UInt8>& c) {
180
1
        size_t size = a_offsets.size();
181
1
        ColumnString::Offset prev_a_offset = 0;
182
1
        ColumnString::Offset prev_b_offset = 0;
183
1
        const auto* a_pos = a_data.data();
184
1
        const auto* b_pos = b_data.data();
185
186
5
        for (size_t i = 0; i < size; ++i) {
187
4
            auto a_size = a_offsets[i] - prev_a_offset;
188
4
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
4
                                                               b_pos + prev_b_offset, b_size);
192
193
4
            prev_a_offset = a_offsets[i];
194
4
            prev_b_offset = b_offsets[i];
195
4
        }
196
1
    }
197
198
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
199
                                                 const ColumnString::Offsets& a_offsets,
200
                                                 const ColumnString::Chars& b_data,
201
                                                 ColumnString::Offset b_size,
202
9.83k
                                                 PaddedPODArray<UInt8>& c) {
203
9.83k
        size_t size = a_offsets.size();
204
9.83k
        if (b_size == 0) {
205
1
            auto* __restrict data = c.data();
206
1
            auto* __restrict offsets = a_offsets.data();
207
208
1
            ColumnString::Offset prev_a_offset = 0;
209
4
            for (size_t i = 0; i < size; ++i) {
210
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
3
                prev_a_offset = offsets[i];
212
3
            }
213
9.83k
        } else {
214
9.83k
            ColumnString::Offset prev_a_offset = 0;
215
9.83k
            const auto* a_pos = a_data.data();
216
9.83k
            const auto* b_pos = b_data.data();
217
1.29M
            for (size_t i = 0; i < size; ++i) {
218
1.28M
                auto a_size = a_offsets[i] - prev_a_offset;
219
1.28M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
1.28M
                                                                   b_pos, b_size);
221
1.28M
                prev_a_offset = a_offsets[i];
222
1.28M
            }
223
9.83k
        }
224
9.83k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
202
9.73k
                                                 PaddedPODArray<UInt8>& c) {
203
9.73k
        size_t size = a_offsets.size();
204
9.73k
        if (b_size == 0) {
205
0
            auto* __restrict data = c.data();
206
0
            auto* __restrict offsets = a_offsets.data();
207
208
0
            ColumnString::Offset prev_a_offset = 0;
209
0
            for (size_t i = 0; i < size; ++i) {
210
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
0
                prev_a_offset = offsets[i];
212
0
            }
213
9.73k
        } else {
214
9.73k
            ColumnString::Offset prev_a_offset = 0;
215
9.73k
            const auto* a_pos = a_data.data();
216
9.73k
            const auto* b_pos = b_data.data();
217
1.24M
            for (size_t i = 0; i < size; ++i) {
218
1.23M
                auto a_size = a_offsets[i] - prev_a_offset;
219
1.23M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
1.23M
                                                                   b_pos, b_size);
221
1.23M
                prev_a_offset = a_offsets[i];
222
1.23M
            }
223
9.73k
        }
224
9.73k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
202
99
                                                 PaddedPODArray<UInt8>& c) {
203
99
        size_t size = a_offsets.size();
204
99
        if (b_size == 0) {
205
1
            auto* __restrict data = c.data();
206
1
            auto* __restrict offsets = a_offsets.data();
207
208
1
            ColumnString::Offset prev_a_offset = 0;
209
4
            for (size_t i = 0; i < size; ++i) {
210
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
3
                prev_a_offset = offsets[i];
212
3
            }
213
98
        } else {
214
98
            ColumnString::Offset prev_a_offset = 0;
215
98
            const auto* a_pos = a_data.data();
216
98
            const auto* b_pos = b_data.data();
217
44.2k
            for (size_t i = 0; i < size; ++i) {
218
44.1k
                auto a_size = a_offsets[i] - prev_a_offset;
219
44.1k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
44.1k
                                                                   b_pos, b_size);
221
44.1k
                prev_a_offset = a_offsets[i];
222
44.1k
            }
223
98
        }
224
99
    }
225
226
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
227
                                                 ColumnString::Offset a_size,
228
                                                 const ColumnString::Chars& b_data,
229
                                                 const ColumnString::Offsets& b_offsets,
230
0
                                                 PaddedPODArray<UInt8>& c) {
231
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
232
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
233
};
234
235
template <PrimitiveType PT>
236
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
237
238
template <PrimitiveType PT>
239
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
240
241
struct NameEquals {
242
    static constexpr auto name = "eq";
243
};
244
struct NameNotEquals {
245
    static constexpr auto name = "ne";
246
};
247
struct NameLess {
248
    static constexpr auto name = "lt";
249
};
250
struct NameGreater {
251
    static constexpr auto name = "gt";
252
};
253
struct NameLessOrEquals {
254
    static constexpr auto name = "le";
255
};
256
struct NameGreaterOrEquals {
257
    static constexpr auto name = "ge";
258
};
259
260
template <template <PrimitiveType> class Op, typename Name>
261
class FunctionComparison : public IFunction {
262
public:
263
    static constexpr auto name = Name::name;
264
277k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
264
241k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
264
1.12k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
264
4.81k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
264
13.1k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
264
2.60k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
264
14.8k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
265
266
277k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
266
241k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
266
1.12k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
266
4.81k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
266
13.1k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
266
2.60k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
266
14.8k
    FunctionComparison() = default;
267
268
666k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
268
651k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
268
658
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
268
3.34k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
268
5.27k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
268
1.79k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
268
3.86k
    double execute_cost() const override { return 0.5; }
269
270
private:
271
    template <PrimitiveType PT>
272
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
273
34.6k
                            const ColumnPtr& col_right_ptr) const {
274
34.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
34.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
34.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
34.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
34.6k
        DCHECK(!(left_is_const && right_is_const));
281
282
34.6k
        if (!left_is_const && !right_is_const) {
283
12.4k
            auto col_res = ColumnUInt8::create();
284
285
12.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
12.4k
            vec_res.resize(col_left->get_data().size());
287
12.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
12.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
12.4k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
12.4k
                                                     vec_res);
291
292
12.4k
            block.replace_by_position(result, std::move(col_res));
293
22.2k
        } else if (!left_is_const && right_is_const) {
294
22.2k
            auto col_res = ColumnUInt8::create();
295
296
22.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
22.2k
            vec_res.resize(col_left->size());
298
22.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
22.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
22.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
22.2k
                                                       col_right->get_element(0), vec_res);
302
303
22.2k
            block.replace_by_position(result, std::move(col_res));
304
22.2k
        } else if (left_is_const && !right_is_const) {
305
3
            auto col_res = ColumnUInt8::create();
306
307
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
3
            vec_res.resize(col_right->size());
309
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
3
                              typename PrimitiveTypeTraits<PT>::CppType,
311
3
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
3
                                                       col_right->get_data(), vec_res);
313
314
3
            block.replace_by_position(result, std::move(col_res));
315
3
        }
316
34.6k
        return Status::OK();
317
34.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
87
                            const ColumnPtr& col_right_ptr) const {
274
87
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
87
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
87
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
87
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
87
        DCHECK(!(left_is_const && right_is_const));
281
282
87
        if (!left_is_const && !right_is_const) {
283
61
            auto col_res = ColumnUInt8::create();
284
285
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
61
            vec_res.resize(col_left->get_data().size());
287
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
61
                              typename PrimitiveTypeTraits<PT>::CppType,
289
61
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
61
                                                     vec_res);
291
292
61
            block.replace_by_position(result, std::move(col_res));
293
61
        } else if (!left_is_const && right_is_const) {
294
26
            auto col_res = ColumnUInt8::create();
295
296
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
26
            vec_res.resize(col_left->size());
298
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
26
                              typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              Op<PT>>::vector_constant(col_left->get_data(),
301
26
                                                       col_right->get_element(0), vec_res);
302
303
26
            block.replace_by_position(result, std::move(col_res));
304
26
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
87
        return Status::OK();
317
87
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.70k
                            const ColumnPtr& col_right_ptr) const {
274
1.70k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.70k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.70k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.70k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.70k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.70k
        if (!left_is_const && !right_is_const) {
283
365
            auto col_res = ColumnUInt8::create();
284
285
365
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
365
            vec_res.resize(col_left->get_data().size());
287
365
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
365
                              typename PrimitiveTypeTraits<PT>::CppType,
289
365
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
365
                                                     vec_res);
291
292
365
            block.replace_by_position(result, std::move(col_res));
293
1.34k
        } else if (!left_is_const && right_is_const) {
294
1.34k
            auto col_res = ColumnUInt8::create();
295
296
1.34k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.34k
            vec_res.resize(col_left->size());
298
1.34k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.34k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.34k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.34k
                                                       col_right->get_element(0), vec_res);
302
303
1.34k
            block.replace_by_position(result, std::move(col_res));
304
1.34k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.70k
        return Status::OK();
317
1.70k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
495
                            const ColumnPtr& col_right_ptr) const {
274
495
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
495
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
495
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
495
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
495
        DCHECK(!(left_is_const && right_is_const));
281
282
495
        if (!left_is_const && !right_is_const) {
283
300
            auto col_res = ColumnUInt8::create();
284
285
300
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
300
            vec_res.resize(col_left->get_data().size());
287
300
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
300
                              typename PrimitiveTypeTraits<PT>::CppType,
289
300
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
300
                                                     vec_res);
291
292
300
            block.replace_by_position(result, std::move(col_res));
293
300
        } else if (!left_is_const && right_is_const) {
294
195
            auto col_res = ColumnUInt8::create();
295
296
195
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
195
            vec_res.resize(col_left->size());
298
195
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
195
                              typename PrimitiveTypeTraits<PT>::CppType,
300
195
                              Op<PT>>::vector_constant(col_left->get_data(),
301
195
                                                       col_right->get_element(0), vec_res);
302
303
195
            block.replace_by_position(result, std::move(col_res));
304
195
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
495
        return Status::OK();
317
495
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3.53k
                            const ColumnPtr& col_right_ptr) const {
274
3.53k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3.53k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3.53k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3.53k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3.53k
        DCHECK(!(left_is_const && right_is_const));
281
282
3.53k
        if (!left_is_const && !right_is_const) {
283
912
            auto col_res = ColumnUInt8::create();
284
285
912
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
912
            vec_res.resize(col_left->get_data().size());
287
912
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
912
                              typename PrimitiveTypeTraits<PT>::CppType,
289
912
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
912
                                                     vec_res);
291
292
912
            block.replace_by_position(result, std::move(col_res));
293
2.62k
        } else if (!left_is_const && right_is_const) {
294
2.62k
            auto col_res = ColumnUInt8::create();
295
296
2.62k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2.62k
            vec_res.resize(col_left->size());
298
2.62k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2.62k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2.62k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2.62k
                                                       col_right->get_element(0), vec_res);
302
303
2.62k
            block.replace_by_position(result, std::move(col_res));
304
2.62k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3.53k
        return Status::OK();
317
3.53k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
311
                            const ColumnPtr& col_right_ptr) const {
274
311
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
311
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
311
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
311
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
311
        DCHECK(!(left_is_const && right_is_const));
281
282
311
        if (!left_is_const && !right_is_const) {
283
144
            auto col_res = ColumnUInt8::create();
284
285
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
144
            vec_res.resize(col_left->get_data().size());
287
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
144
                              typename PrimitiveTypeTraits<PT>::CppType,
289
144
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
144
                                                     vec_res);
291
292
144
            block.replace_by_position(result, std::move(col_res));
293
167
        } else if (!left_is_const && right_is_const) {
294
167
            auto col_res = ColumnUInt8::create();
295
296
167
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
167
            vec_res.resize(col_left->size());
298
167
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
167
                              typename PrimitiveTypeTraits<PT>::CppType,
300
167
                              Op<PT>>::vector_constant(col_left->get_data(),
301
167
                                                       col_right->get_element(0), vec_res);
302
303
167
            block.replace_by_position(result, std::move(col_res));
304
167
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
311
        return Status::OK();
317
311
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.81k
                            const ColumnPtr& col_right_ptr) const {
274
1.81k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.81k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.81k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.81k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.81k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.81k
        if (!left_is_const && !right_is_const) {
283
265
            auto col_res = ColumnUInt8::create();
284
285
265
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
265
            vec_res.resize(col_left->get_data().size());
287
265
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
265
                              typename PrimitiveTypeTraits<PT>::CppType,
289
265
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
265
                                                     vec_res);
291
292
265
            block.replace_by_position(result, std::move(col_res));
293
1.55k
        } else if (!left_is_const && right_is_const) {
294
1.54k
            auto col_res = ColumnUInt8::create();
295
296
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.54k
            vec_res.resize(col_left->size());
298
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.54k
                                                       col_right->get_element(0), vec_res);
302
303
1.54k
            block.replace_by_position(result, std::move(col_res));
304
1.54k
        } else if (left_is_const && !right_is_const) {
305
3
            auto col_res = ColumnUInt8::create();
306
307
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
3
            vec_res.resize(col_right->size());
309
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
3
                              typename PrimitiveTypeTraits<PT>::CppType,
311
3
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
3
                                                       col_right->get_data(), vec_res);
313
314
3
            block.replace_by_position(result, std::move(col_res));
315
3
        }
316
1.81k
        return Status::OK();
317
1.81k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.10k
                            const ColumnPtr& col_right_ptr) const {
274
1.10k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.10k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.10k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.10k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.10k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.10k
        if (!left_is_const && !right_is_const) {
283
301
            auto col_res = ColumnUInt8::create();
284
285
301
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
301
            vec_res.resize(col_left->get_data().size());
287
301
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
301
                              typename PrimitiveTypeTraits<PT>::CppType,
289
301
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
301
                                                     vec_res);
291
292
301
            block.replace_by_position(result, std::move(col_res));
293
804
        } else if (!left_is_const && right_is_const) {
294
804
            auto col_res = ColumnUInt8::create();
295
296
804
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
804
            vec_res.resize(col_left->size());
298
804
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
804
                              typename PrimitiveTypeTraits<PT>::CppType,
300
804
                              Op<PT>>::vector_constant(col_left->get_data(),
301
804
                                                       col_right->get_element(0), vec_res);
302
303
804
            block.replace_by_position(result, std::move(col_res));
304
804
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.10k
        return Status::OK();
317
1.10k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
124
                            const ColumnPtr& col_right_ptr) const {
274
124
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
124
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
124
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
124
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
124
        DCHECK(!(left_is_const && right_is_const));
281
282
124
        if (!left_is_const && !right_is_const) {
283
100
            auto col_res = ColumnUInt8::create();
284
285
100
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
100
            vec_res.resize(col_left->get_data().size());
287
100
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
100
                              typename PrimitiveTypeTraits<PT>::CppType,
289
100
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
100
                                                     vec_res);
291
292
100
            block.replace_by_position(result, std::move(col_res));
293
100
        } else if (!left_is_const && right_is_const) {
294
24
            auto col_res = ColumnUInt8::create();
295
296
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
24
            vec_res.resize(col_left->size());
298
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
24
                              typename PrimitiveTypeTraits<PT>::CppType,
300
24
                              Op<PT>>::vector_constant(col_left->get_data(),
301
24
                                                       col_right->get_element(0), vec_res);
302
303
24
            block.replace_by_position(result, std::move(col_res));
304
24
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
124
        return Status::OK();
317
124
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
31
                            const ColumnPtr& col_right_ptr) const {
274
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
31
        DCHECK(!(left_is_const && right_is_const));
281
282
31
        if (!left_is_const && !right_is_const) {
283
16
            auto col_res = ColumnUInt8::create();
284
285
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
16
            vec_res.resize(col_left->get_data().size());
287
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
16
                              typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
16
                                                     vec_res);
291
292
16
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
15
            auto col_res = ColumnUInt8::create();
295
296
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
15
            vec_res.resize(col_left->size());
298
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
15
                              typename PrimitiveTypeTraits<PT>::CppType,
300
15
                              Op<PT>>::vector_constant(col_left->get_data(),
301
15
                                                       col_right->get_element(0), vec_res);
302
303
15
            block.replace_by_position(result, std::move(col_res));
304
15
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
31
        return Status::OK();
317
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
30
                            const ColumnPtr& col_right_ptr) const {
274
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
30
        DCHECK(!(left_is_const && right_is_const));
281
282
30
        if (!left_is_const && !right_is_const) {
283
24
            auto col_res = ColumnUInt8::create();
284
285
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
24
            vec_res.resize(col_left->get_data().size());
287
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
24
                              typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
24
                                                     vec_res);
291
292
24
            block.replace_by_position(result, std::move(col_res));
293
24
        } else if (!left_is_const && right_is_const) {
294
6
            auto col_res = ColumnUInt8::create();
295
296
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
6
            vec_res.resize(col_left->size());
298
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
6
                              typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              Op<PT>>::vector_constant(col_left->get_data(),
301
6
                                                       col_right->get_element(0), vec_res);
302
303
6
            block.replace_by_position(result, std::move(col_res));
304
6
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
30
        return Status::OK();
317
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
115
                            const ColumnPtr& col_right_ptr) const {
274
115
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
115
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
115
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
115
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
115
        DCHECK(!(left_is_const && right_is_const));
281
282
115
        if (!left_is_const && !right_is_const) {
283
115
            auto col_res = ColumnUInt8::create();
284
285
115
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
115
            vec_res.resize(col_left->get_data().size());
287
115
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
115
                              typename PrimitiveTypeTraits<PT>::CppType,
289
115
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
115
                                                     vec_res);
291
292
115
            block.replace_by_position(result, std::move(col_res));
293
115
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
115
        return Status::OK();
317
115
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
355
                            const ColumnPtr& col_right_ptr) const {
274
355
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
355
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
355
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
355
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
355
        DCHECK(!(left_is_const && right_is_const));
281
282
355
        if (!left_is_const && !right_is_const) {
283
119
            auto col_res = ColumnUInt8::create();
284
285
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
119
            vec_res.resize(col_left->get_data().size());
287
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
119
                              typename PrimitiveTypeTraits<PT>::CppType,
289
119
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
119
                                                     vec_res);
291
292
119
            block.replace_by_position(result, std::move(col_res));
293
236
        } else if (!left_is_const && right_is_const) {
294
236
            auto col_res = ColumnUInt8::create();
295
296
236
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
236
            vec_res.resize(col_left->size());
298
236
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
236
                              typename PrimitiveTypeTraits<PT>::CppType,
300
236
                              Op<PT>>::vector_constant(col_left->get_data(),
301
236
                                                       col_right->get_element(0), vec_res);
302
303
236
            block.replace_by_position(result, std::move(col_res));
304
236
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
355
        return Status::OK();
317
355
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
4
            auto col_res = ColumnUInt8::create();
284
285
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
4
            vec_res.resize(col_left->get_data().size());
287
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
4
                              typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
4
                                                     vec_res);
291
292
4
            block.replace_by_position(result, std::move(col_res));
293
4
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
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
273
41
                            const ColumnPtr& col_right_ptr) const {
274
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
41
        DCHECK(!(left_is_const && right_is_const));
281
282
41
        if (!left_is_const && !right_is_const) {
283
39
            auto col_res = ColumnUInt8::create();
284
285
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
39
            vec_res.resize(col_left->get_data().size());
287
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
39
                              typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
39
                                                     vec_res);
291
292
39
            block.replace_by_position(result, std::move(col_res));
293
39
        } else if (!left_is_const && right_is_const) {
294
2
            auto col_res = ColumnUInt8::create();
295
296
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2
            vec_res.resize(col_left->size());
298
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2
                                                       col_right->get_element(0), vec_res);
302
303
2
            block.replace_by_position(result, std::move(col_res));
304
2
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
41
        return Status::OK();
317
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
273
84
                            const ColumnPtr& col_right_ptr) const {
274
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
84
        DCHECK(!(left_is_const && right_is_const));
281
282
84
        if (!left_is_const && !right_is_const) {
283
56
            auto col_res = ColumnUInt8::create();
284
285
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
56
            vec_res.resize(col_left->get_data().size());
287
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
56
                              typename PrimitiveTypeTraits<PT>::CppType,
289
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
56
                                                     vec_res);
291
292
56
            block.replace_by_position(result, std::move(col_res));
293
56
        } else if (!left_is_const && right_is_const) {
294
28
            auto col_res = ColumnUInt8::create();
295
296
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
28
            vec_res.resize(col_left->size());
298
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
28
                              typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              Op<PT>>::vector_constant(col_left->get_data(),
301
28
                                                       col_right->get_element(0), vec_res);
302
303
28
            block.replace_by_position(result, std::move(col_res));
304
28
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
84
        return Status::OK();
317
84
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
751
                            const ColumnPtr& col_right_ptr) const {
274
751
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
751
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
751
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
751
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
751
        DCHECK(!(left_is_const && right_is_const));
281
282
751
        if (!left_is_const && !right_is_const) {
283
600
            auto col_res = ColumnUInt8::create();
284
285
600
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
600
            vec_res.resize(col_left->get_data().size());
287
600
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
600
                              typename PrimitiveTypeTraits<PT>::CppType,
289
600
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
600
                                                     vec_res);
291
292
600
            block.replace_by_position(result, std::move(col_res));
293
600
        } else if (!left_is_const && right_is_const) {
294
151
            auto col_res = ColumnUInt8::create();
295
296
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
151
            vec_res.resize(col_left->size());
298
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
151
                              typename PrimitiveTypeTraits<PT>::CppType,
300
151
                              Op<PT>>::vector_constant(col_left->get_data(),
301
151
                                                       col_right->get_element(0), vec_res);
302
303
151
            block.replace_by_position(result, std::move(col_res));
304
151
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
751
        return Status::OK();
317
751
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
536
                            const ColumnPtr& col_right_ptr) const {
274
536
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
536
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
536
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
536
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
536
        DCHECK(!(left_is_const && right_is_const));
281
282
536
        if (!left_is_const && !right_is_const) {
283
513
            auto col_res = ColumnUInt8::create();
284
285
513
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
513
            vec_res.resize(col_left->get_data().size());
287
513
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
513
                              typename PrimitiveTypeTraits<PT>::CppType,
289
513
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
513
                                                     vec_res);
291
292
513
            block.replace_by_position(result, std::move(col_res));
293
513
        } else if (!left_is_const && right_is_const) {
294
23
            auto col_res = ColumnUInt8::create();
295
296
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
23
            vec_res.resize(col_left->size());
298
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
23
                              typename PrimitiveTypeTraits<PT>::CppType,
300
23
                              Op<PT>>::vector_constant(col_left->get_data(),
301
23
                                                       col_right->get_element(0), vec_res);
302
303
23
            block.replace_by_position(result, std::move(col_res));
304
23
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
536
        return Status::OK();
317
536
    }
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
273
48
                            const ColumnPtr& col_right_ptr) const {
274
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
48
        DCHECK(!(left_is_const && right_is_const));
281
282
48
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
28
        } else if (!left_is_const && right_is_const) {
294
28
            auto col_res = ColumnUInt8::create();
295
296
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
28
            vec_res.resize(col_left->size());
298
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
28
                              typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              Op<PT>>::vector_constant(col_left->get_data(),
301
28
                                                       col_right->get_element(0), vec_res);
302
303
28
            block.replace_by_position(result, std::move(col_res));
304
28
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
48
        return Status::OK();
317
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
60
                            const ColumnPtr& col_right_ptr) const {
274
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
60
        DCHECK(!(left_is_const && right_is_const));
281
282
60
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
40
        } else if (!left_is_const && right_is_const) {
294
40
            auto col_res = ColumnUInt8::create();
295
296
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
40
            vec_res.resize(col_left->size());
298
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
40
                              typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              Op<PT>>::vector_constant(col_left->get_data(),
301
40
                                                       col_right->get_element(0), vec_res);
302
303
40
            block.replace_by_position(result, std::move(col_res));
304
40
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
60
        return Status::OK();
317
60
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
986
                            const ColumnPtr& col_right_ptr) const {
274
986
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
986
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
986
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
986
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
986
        DCHECK(!(left_is_const && right_is_const));
281
282
986
        if (!left_is_const && !right_is_const) {
283
974
            auto col_res = ColumnUInt8::create();
284
285
974
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
974
            vec_res.resize(col_left->get_data().size());
287
974
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
974
                              typename PrimitiveTypeTraits<PT>::CppType,
289
974
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
974
                                                     vec_res);
291
292
974
            block.replace_by_position(result, std::move(col_res));
293
974
        } else if (!left_is_const && right_is_const) {
294
12
            auto col_res = ColumnUInt8::create();
295
296
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
12
            vec_res.resize(col_left->size());
298
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
12
                              typename PrimitiveTypeTraits<PT>::CppType,
300
12
                              Op<PT>>::vector_constant(col_left->get_data(),
301
12
                                                       col_right->get_element(0), vec_res);
302
303
12
            block.replace_by_position(result, std::move(col_res));
304
12
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
986
        return Status::OK();
317
986
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2
                            const ColumnPtr& col_right_ptr) const {
274
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2
        DCHECK(!(left_is_const && right_is_const));
281
282
2
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
2
        } else if (!left_is_const && right_is_const) {
294
2
            auto col_res = ColumnUInt8::create();
295
296
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2
            vec_res.resize(col_left->size());
298
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2
                                                       col_right->get_element(0), vec_res);
302
303
2
            block.replace_by_position(result, std::move(col_res));
304
2
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2
        return Status::OK();
317
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
769
                            const ColumnPtr& col_right_ptr) const {
274
769
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
769
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
769
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
769
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
769
        DCHECK(!(left_is_const && right_is_const));
281
282
769
        if (!left_is_const && !right_is_const) {
283
389
            auto col_res = ColumnUInt8::create();
284
285
389
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
389
            vec_res.resize(col_left->get_data().size());
287
389
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
389
                              typename PrimitiveTypeTraits<PT>::CppType,
289
389
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
389
                                                     vec_res);
291
292
389
            block.replace_by_position(result, std::move(col_res));
293
389
        } else if (!left_is_const && right_is_const) {
294
380
            auto col_res = ColumnUInt8::create();
295
296
380
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
380
            vec_res.resize(col_left->size());
298
380
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
380
                              typename PrimitiveTypeTraits<PT>::CppType,
300
380
                              Op<PT>>::vector_constant(col_left->get_data(),
301
380
                                                       col_right->get_element(0), vec_res);
302
303
380
            block.replace_by_position(result, std::move(col_res));
304
380
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
769
        return Status::OK();
317
769
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.03k
                            const ColumnPtr& col_right_ptr) const {
274
1.03k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.03k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.03k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.03k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.03k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.03k
        if (!left_is_const && !right_is_const) {
283
634
            auto col_res = ColumnUInt8::create();
284
285
634
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
634
            vec_res.resize(col_left->get_data().size());
287
634
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
634
                              typename PrimitiveTypeTraits<PT>::CppType,
289
634
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
634
                                                     vec_res);
291
292
634
            block.replace_by_position(result, std::move(col_res));
293
634
        } else if (!left_is_const && right_is_const) {
294
403
            auto col_res = ColumnUInt8::create();
295
296
403
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
403
            vec_res.resize(col_left->size());
298
403
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
403
                              typename PrimitiveTypeTraits<PT>::CppType,
300
403
                              Op<PT>>::vector_constant(col_left->get_data(),
301
403
                                                       col_right->get_element(0), vec_res);
302
303
403
            block.replace_by_position(result, std::move(col_res));
304
403
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.03k
        return Status::OK();
317
1.03k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3.30k
                            const ColumnPtr& col_right_ptr) const {
274
3.30k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3.30k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3.30k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3.30k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3.30k
        DCHECK(!(left_is_const && right_is_const));
281
282
3.30k
        if (!left_is_const && !right_is_const) {
283
1.61k
            auto col_res = ColumnUInt8::create();
284
285
1.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1.61k
            vec_res.resize(col_left->get_data().size());
287
1.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1.61k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1.61k
                                                     vec_res);
291
292
1.61k
            block.replace_by_position(result, std::move(col_res));
293
1.69k
        } else if (!left_is_const && right_is_const) {
294
1.69k
            auto col_res = ColumnUInt8::create();
295
296
1.69k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.69k
            vec_res.resize(col_left->size());
298
1.69k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.69k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.69k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.69k
                                                       col_right->get_element(0), vec_res);
302
303
1.69k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3.30k
        return Status::OK();
317
3.30k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.23k
                            const ColumnPtr& col_right_ptr) const {
274
1.23k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.23k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.23k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.23k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.23k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.23k
        if (!left_is_const && !right_is_const) {
283
156
            auto col_res = ColumnUInt8::create();
284
285
156
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
156
            vec_res.resize(col_left->get_data().size());
287
156
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
156
                              typename PrimitiveTypeTraits<PT>::CppType,
289
156
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
156
                                                     vec_res);
291
292
156
            block.replace_by_position(result, std::move(col_res));
293
1.08k
        } else if (!left_is_const && right_is_const) {
294
1.08k
            auto col_res = ColumnUInt8::create();
295
296
1.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.08k
            vec_res.resize(col_left->size());
298
1.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.08k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.08k
                                                       col_right->get_element(0), vec_res);
302
303
1.08k
            block.replace_by_position(result, std::move(col_res));
304
1.08k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.23k
        return Status::OK();
317
1.23k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
223
                            const ColumnPtr& col_right_ptr) const {
274
223
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
223
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
223
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
223
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
223
        DCHECK(!(left_is_const && right_is_const));
281
282
223
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
203
        } else if (!left_is_const && right_is_const) {
294
203
            auto col_res = ColumnUInt8::create();
295
296
203
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
203
            vec_res.resize(col_left->size());
298
203
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
203
                              typename PrimitiveTypeTraits<PT>::CppType,
300
203
                              Op<PT>>::vector_constant(col_left->get_data(),
301
203
                                                       col_right->get_element(0), vec_res);
302
303
203
            block.replace_by_position(result, std::move(col_res));
304
203
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
223
        return Status::OK();
317
223
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2
                            const ColumnPtr& col_right_ptr) const {
274
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2
        DCHECK(!(left_is_const && right_is_const));
281
282
2
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
1
            auto col_res = ColumnUInt8::create();
295
296
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1
            vec_res.resize(col_left->size());
298
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1
                                                       col_right->get_element(0), vec_res);
302
303
1
            block.replace_by_position(result, std::move(col_res));
304
1
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2
        return Status::OK();
317
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1
                            const ColumnPtr& col_right_ptr) const {
274
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1
        DCHECK(!(left_is_const && right_is_const));
281
282
1
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1
        return Status::OK();
317
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
220
                            const ColumnPtr& col_right_ptr) const {
274
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
220
        DCHECK(!(left_is_const && right_is_const));
281
282
220
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
200
        } else if (!left_is_const && right_is_const) {
294
200
            auto col_res = ColumnUInt8::create();
295
296
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
200
            vec_res.resize(col_left->size());
298
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
200
                              typename PrimitiveTypeTraits<PT>::CppType,
300
200
                              Op<PT>>::vector_constant(col_left->get_data(),
301
200
                                                       col_right->get_element(0), vec_res);
302
303
200
            block.replace_by_position(result, std::move(col_res));
304
200
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
220
        return Status::OK();
317
220
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
548
                            const ColumnPtr& col_right_ptr) const {
274
548
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
548
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
548
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
548
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
548
        DCHECK(!(left_is_const && right_is_const));
281
282
548
        if (!left_is_const && !right_is_const) {
283
50
            auto col_res = ColumnUInt8::create();
284
285
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
50
            vec_res.resize(col_left->get_data().size());
287
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
50
                              typename PrimitiveTypeTraits<PT>::CppType,
289
50
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
50
                                                     vec_res);
291
292
50
            block.replace_by_position(result, std::move(col_res));
293
498
        } else if (!left_is_const && right_is_const) {
294
498
            auto col_res = ColumnUInt8::create();
295
296
498
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
498
            vec_res.resize(col_left->size());
298
498
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
498
                              typename PrimitiveTypeTraits<PT>::CppType,
300
498
                              Op<PT>>::vector_constant(col_left->get_data(),
301
498
                                                       col_right->get_element(0), vec_res);
302
303
498
            block.replace_by_position(result, std::move(col_res));
304
498
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
548
        return Status::OK();
317
548
    }
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
273
36
                            const ColumnPtr& col_right_ptr) const {
274
36
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
36
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
36
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
36
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
36
        DCHECK(!(left_is_const && right_is_const));
281
282
36
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
36
        } else if (!left_is_const && right_is_const) {
294
36
            auto col_res = ColumnUInt8::create();
295
296
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
36
            vec_res.resize(col_left->size());
298
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
36
                              typename PrimitiveTypeTraits<PT>::CppType,
300
36
                              Op<PT>>::vector_constant(col_left->get_data(),
301
36
                                                       col_right->get_element(0), vec_res);
302
303
36
            block.replace_by_position(result, std::move(col_res));
304
36
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
36
        return Status::OK();
317
36
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
496
                            const ColumnPtr& col_right_ptr) const {
274
496
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
496
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
496
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
496
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
496
        DCHECK(!(left_is_const && right_is_const));
281
282
496
        if (!left_is_const && !right_is_const) {
283
7
            auto col_res = ColumnUInt8::create();
284
285
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
7
            vec_res.resize(col_left->get_data().size());
287
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
7
                              typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
7
                                                     vec_res);
291
292
7
            block.replace_by_position(result, std::move(col_res));
293
489
        } else if (!left_is_const && right_is_const) {
294
489
            auto col_res = ColumnUInt8::create();
295
296
489
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
489
            vec_res.resize(col_left->size());
298
489
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
489
                              typename PrimitiveTypeTraits<PT>::CppType,
300
489
                              Op<PT>>::vector_constant(col_left->get_data(),
301
489
                                                       col_right->get_element(0), vec_res);
302
303
489
            block.replace_by_position(result, std::move(col_res));
304
489
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
496
        return Status::OK();
317
496
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
141
                            const ColumnPtr& col_right_ptr) const {
274
141
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
141
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
141
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
141
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
141
        DCHECK(!(left_is_const && right_is_const));
281
282
141
        if (!left_is_const && !right_is_const) {
283
6
            auto col_res = ColumnUInt8::create();
284
285
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
6
            vec_res.resize(col_left->get_data().size());
287
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
6
                              typename PrimitiveTypeTraits<PT>::CppType,
289
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
6
                                                     vec_res);
291
292
6
            block.replace_by_position(result, std::move(col_res));
293
135
        } else if (!left_is_const && right_is_const) {
294
135
            auto col_res = ColumnUInt8::create();
295
296
135
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
135
            vec_res.resize(col_left->size());
298
135
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
135
                              typename PrimitiveTypeTraits<PT>::CppType,
300
135
                              Op<PT>>::vector_constant(col_left->get_data(),
301
135
                                                       col_right->get_element(0), vec_res);
302
303
135
            block.replace_by_position(result, std::move(col_res));
304
135
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
141
        return Status::OK();
317
141
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
86
                            const ColumnPtr& col_right_ptr) const {
274
86
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
86
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
86
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
86
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
86
        DCHECK(!(left_is_const && right_is_const));
281
282
86
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
86
        } else if (!left_is_const && right_is_const) {
294
86
            auto col_res = ColumnUInt8::create();
295
296
86
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
86
            vec_res.resize(col_left->size());
298
86
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
86
                              typename PrimitiveTypeTraits<PT>::CppType,
300
86
                              Op<PT>>::vector_constant(col_left->get_data(),
301
86
                                                       col_right->get_element(0), vec_res);
302
303
86
            block.replace_by_position(result, std::move(col_res));
304
86
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
86
        return Status::OK();
317
86
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
88
                            const ColumnPtr& col_right_ptr) const {
274
88
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
88
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
88
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
88
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
88
        DCHECK(!(left_is_const && right_is_const));
281
282
88
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
88
        } else if (!left_is_const && right_is_const) {
294
88
            auto col_res = ColumnUInt8::create();
295
296
88
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
88
            vec_res.resize(col_left->size());
298
88
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
88
                              typename PrimitiveTypeTraits<PT>::CppType,
300
88
                              Op<PT>>::vector_constant(col_left->get_data(),
301
88
                                                       col_right->get_element(0), vec_res);
302
303
88
            block.replace_by_position(result, std::move(col_res));
304
88
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
88
        return Status::OK();
317
88
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
858
                            const ColumnPtr& col_right_ptr) const {
274
858
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
858
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
858
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
858
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
858
        DCHECK(!(left_is_const && right_is_const));
281
282
858
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
855
        } else if (!left_is_const && right_is_const) {
294
855
            auto col_res = ColumnUInt8::create();
295
296
855
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
855
            vec_res.resize(col_left->size());
298
855
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
855
                              typename PrimitiveTypeTraits<PT>::CppType,
300
855
                              Op<PT>>::vector_constant(col_left->get_data(),
301
855
                                                       col_right->get_element(0), vec_res);
302
303
855
            block.replace_by_position(result, std::move(col_res));
304
855
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
858
        return Status::OK();
317
858
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
159
                            const ColumnPtr& col_right_ptr) const {
274
159
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
159
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
159
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
159
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
159
        DCHECK(!(left_is_const && right_is_const));
281
282
159
        if (!left_is_const && !right_is_const) {
283
8
            auto col_res = ColumnUInt8::create();
284
285
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
8
            vec_res.resize(col_left->get_data().size());
287
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
8
                              typename PrimitiveTypeTraits<PT>::CppType,
289
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
8
                                                     vec_res);
291
292
8
            block.replace_by_position(result, std::move(col_res));
293
151
        } else if (!left_is_const && right_is_const) {
294
151
            auto col_res = ColumnUInt8::create();
295
296
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
151
            vec_res.resize(col_left->size());
298
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
151
                              typename PrimitiveTypeTraits<PT>::CppType,
300
151
                              Op<PT>>::vector_constant(col_left->get_data(),
301
151
                                                       col_right->get_element(0), vec_res);
302
303
151
            block.replace_by_position(result, std::move(col_res));
304
151
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
159
        return Status::OK();
317
159
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
32
                            const ColumnPtr& col_right_ptr) const {
274
32
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
32
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
32
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
32
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
32
        DCHECK(!(left_is_const && right_is_const));
281
282
32
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
32
        } else if (!left_is_const && right_is_const) {
294
32
            auto col_res = ColumnUInt8::create();
295
296
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
32
            vec_res.resize(col_left->size());
298
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
32
                              typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              Op<PT>>::vector_constant(col_left->get_data(),
301
32
                                                       col_right->get_element(0), vec_res);
302
303
32
            block.replace_by_position(result, std::move(col_res));
304
32
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
32
        return Status::OK();
317
32
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
11
                            const ColumnPtr& col_right_ptr) const {
274
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
11
        DCHECK(!(left_is_const && right_is_const));
281
282
11
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
10
        } else if (!left_is_const && right_is_const) {
294
10
            auto col_res = ColumnUInt8::create();
295
296
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10
            vec_res.resize(col_left->size());
298
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10
                                                       col_right->get_element(0), vec_res);
302
303
10
            block.replace_by_position(result, std::move(col_res));
304
10
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
11
        return Status::OK();
317
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1
                            const ColumnPtr& col_right_ptr) const {
274
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1
        DCHECK(!(left_is_const && right_is_const));
281
282
1
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1
        return Status::OK();
317
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
24
                            const ColumnPtr& col_right_ptr) const {
274
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
24
        DCHECK(!(left_is_const && right_is_const));
281
282
24
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
20
        } else if (!left_is_const && right_is_const) {
294
4
            auto col_res = ColumnUInt8::create();
295
296
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
4
            vec_res.resize(col_left->size());
298
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
4
                              typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              Op<PT>>::vector_constant(col_left->get_data(),
301
4
                                                       col_right->get_element(0), vec_res);
302
303
4
            block.replace_by_position(result, std::move(col_res));
304
4
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
24
        return Status::OK();
317
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
145
                            const ColumnPtr& col_right_ptr) const {
274
145
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
145
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
145
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
145
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
145
        DCHECK(!(left_is_const && right_is_const));
281
282
145
        if (!left_is_const && !right_is_const) {
283
50
            auto col_res = ColumnUInt8::create();
284
285
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
50
            vec_res.resize(col_left->get_data().size());
287
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
50
                              typename PrimitiveTypeTraits<PT>::CppType,
289
50
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
50
                                                     vec_res);
291
292
50
            block.replace_by_position(result, std::move(col_res));
293
95
        } else if (!left_is_const && right_is_const) {
294
95
            auto col_res = ColumnUInt8::create();
295
296
95
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
95
            vec_res.resize(col_left->size());
298
95
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
95
                              typename PrimitiveTypeTraits<PT>::CppType,
300
95
                              Op<PT>>::vector_constant(col_left->get_data(),
301
95
                                                       col_right->get_element(0), vec_res);
302
303
95
            block.replace_by_position(result, std::move(col_res));
304
95
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
145
        return Status::OK();
317
145
    }
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
273
87
                            const ColumnPtr& col_right_ptr) const {
274
87
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
87
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
87
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
87
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
87
        DCHECK(!(left_is_const && right_is_const));
281
282
87
        if (!left_is_const && !right_is_const) {
283
87
            auto col_res = ColumnUInt8::create();
284
285
87
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
87
            vec_res.resize(col_left->get_data().size());
287
87
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
87
                              typename PrimitiveTypeTraits<PT>::CppType,
289
87
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
87
                                                     vec_res);
291
292
87
            block.replace_by_position(result, std::move(col_res));
293
87
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
87
        return Status::OK();
317
87
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.97k
                            const ColumnPtr& col_right_ptr) const {
274
1.97k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.97k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.97k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.97k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.97k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.97k
        if (!left_is_const && !right_is_const) {
283
1.63k
            auto col_res = ColumnUInt8::create();
284
285
1.63k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1.63k
            vec_res.resize(col_left->get_data().size());
287
1.63k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1.63k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1.63k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1.63k
                                                     vec_res);
291
292
1.63k
            block.replace_by_position(result, std::move(col_res));
293
1.63k
        } else if (!left_is_const && right_is_const) {
294
340
            auto col_res = ColumnUInt8::create();
295
296
340
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
340
            vec_res.resize(col_left->size());
298
340
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
340
                              typename PrimitiveTypeTraits<PT>::CppType,
300
340
                              Op<PT>>::vector_constant(col_left->get_data(),
301
340
                                                       col_right->get_element(0), vec_res);
302
303
340
            block.replace_by_position(result, std::move(col_res));
304
340
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.97k
        return Status::OK();
317
1.97k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
341
                            const ColumnPtr& col_right_ptr) const {
274
341
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
341
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
341
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
341
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
341
        DCHECK(!(left_is_const && right_is_const));
281
282
341
        if (!left_is_const && !right_is_const) {
283
282
            auto col_res = ColumnUInt8::create();
284
285
282
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
282
            vec_res.resize(col_left->get_data().size());
287
282
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
282
                              typename PrimitiveTypeTraits<PT>::CppType,
289
282
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
282
                                                     vec_res);
291
292
282
            block.replace_by_position(result, std::move(col_res));
293
282
        } else if (!left_is_const && right_is_const) {
294
59
            auto col_res = ColumnUInt8::create();
295
296
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
59
            vec_res.resize(col_left->size());
298
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
59
                              typename PrimitiveTypeTraits<PT>::CppType,
300
59
                              Op<PT>>::vector_constant(col_left->get_data(),
301
59
                                                       col_right->get_element(0), vec_res);
302
303
59
            block.replace_by_position(result, std::move(col_res));
304
59
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
341
        return Status::OK();
317
341
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
1
            auto col_res = ColumnUInt8::create();
295
296
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1
            vec_res.resize(col_left->size());
298
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1
                                                       col_right->get_element(0), vec_res);
302
303
1
            block.replace_by_position(result, std::move(col_res));
304
1
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
868
                            const ColumnPtr& col_right_ptr) const {
274
868
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
868
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
868
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
868
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
868
        DCHECK(!(left_is_const && right_is_const));
281
282
868
        if (!left_is_const && !right_is_const) {
283
841
            auto col_res = ColumnUInt8::create();
284
285
841
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
841
            vec_res.resize(col_left->get_data().size());
287
841
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
841
                              typename PrimitiveTypeTraits<PT>::CppType,
289
841
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
841
                                                     vec_res);
291
292
841
            block.replace_by_position(result, std::move(col_res));
293
841
        } else if (!left_is_const && right_is_const) {
294
27
            auto col_res = ColumnUInt8::create();
295
296
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
27
            vec_res.resize(col_left->size());
298
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
27
                              typename PrimitiveTypeTraits<PT>::CppType,
300
27
                              Op<PT>>::vector_constant(col_left->get_data(),
301
27
                                                       col_right->get_element(0), vec_res);
302
303
27
            block.replace_by_position(result, std::move(col_res));
304
27
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
868
        return Status::OK();
317
868
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
151
                            const ColumnPtr& col_right_ptr) const {
274
151
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
151
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
151
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
151
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
151
        DCHECK(!(left_is_const && right_is_const));
281
282
151
        if (!left_is_const && !right_is_const) {
283
137
            auto col_res = ColumnUInt8::create();
284
285
137
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
137
            vec_res.resize(col_left->get_data().size());
287
137
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
137
                              typename PrimitiveTypeTraits<PT>::CppType,
289
137
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
137
                                                     vec_res);
291
292
137
            block.replace_by_position(result, std::move(col_res));
293
137
        } else if (!left_is_const && right_is_const) {
294
14
            auto col_res = ColumnUInt8::create();
295
296
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
14
            vec_res.resize(col_left->size());
298
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
14
                              typename PrimitiveTypeTraits<PT>::CppType,
300
14
                              Op<PT>>::vector_constant(col_left->get_data(),
301
14
                                                       col_right->get_element(0), vec_res);
302
303
14
            block.replace_by_position(result, std::move(col_res));
304
14
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
151
        return Status::OK();
317
151
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
669
                            const ColumnPtr& col_right_ptr) const {
274
669
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
669
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
669
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
669
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
669
        DCHECK(!(left_is_const && right_is_const));
281
282
669
        if (!left_is_const && !right_is_const) {
283
173
            auto col_res = ColumnUInt8::create();
284
285
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
173
            vec_res.resize(col_left->get_data().size());
287
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
173
                              typename PrimitiveTypeTraits<PT>::CppType,
289
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
173
                                                     vec_res);
291
292
173
            block.replace_by_position(result, std::move(col_res));
293
496
        } else if (!left_is_const && right_is_const) {
294
496
            auto col_res = ColumnUInt8::create();
295
296
496
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
496
            vec_res.resize(col_left->size());
298
496
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
496
                              typename PrimitiveTypeTraits<PT>::CppType,
300
496
                              Op<PT>>::vector_constant(col_left->get_data(),
301
496
                                                       col_right->get_element(0), vec_res);
302
303
496
            block.replace_by_position(result, std::move(col_res));
304
496
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
669
        return Status::OK();
317
669
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
785
                            const ColumnPtr& col_right_ptr) const {
274
785
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
785
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
785
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
785
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
785
        DCHECK(!(left_is_const && right_is_const));
281
282
785
        if (!left_is_const && !right_is_const) {
283
269
            auto col_res = ColumnUInt8::create();
284
285
269
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
269
            vec_res.resize(col_left->get_data().size());
287
269
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
269
                              typename PrimitiveTypeTraits<PT>::CppType,
289
269
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
269
                                                     vec_res);
291
292
269
            block.replace_by_position(result, std::move(col_res));
293
516
        } else if (!left_is_const && right_is_const) {
294
516
            auto col_res = ColumnUInt8::create();
295
296
516
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
516
            vec_res.resize(col_left->size());
298
516
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
516
                              typename PrimitiveTypeTraits<PT>::CppType,
300
516
                              Op<PT>>::vector_constant(col_left->get_data(),
301
516
                                                       col_right->get_element(0), vec_res);
302
303
516
            block.replace_by_position(result, std::move(col_res));
304
516
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
785
        return Status::OK();
317
785
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
256
                            const ColumnPtr& col_right_ptr) const {
274
256
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
256
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
256
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
256
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
256
        DCHECK(!(left_is_const && right_is_const));
281
282
256
        if (!left_is_const && !right_is_const) {
283
188
            auto col_res = ColumnUInt8::create();
284
285
188
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
188
            vec_res.resize(col_left->get_data().size());
287
188
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
188
                              typename PrimitiveTypeTraits<PT>::CppType,
289
188
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
188
                                                     vec_res);
291
292
188
            block.replace_by_position(result, std::move(col_res));
293
188
        } else if (!left_is_const && right_is_const) {
294
68
            auto col_res = ColumnUInt8::create();
295
296
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
68
            vec_res.resize(col_left->size());
298
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
68
                              typename PrimitiveTypeTraits<PT>::CppType,
300
68
                              Op<PT>>::vector_constant(col_left->get_data(),
301
68
                                                       col_right->get_element(0), vec_res);
302
303
68
            block.replace_by_position(result, std::move(col_res));
304
68
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
256
        return Status::OK();
317
256
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
16
            auto col_res = ColumnUInt8::create();
284
285
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
16
            vec_res.resize(col_left->get_data().size());
287
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
16
                              typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
16
                                                     vec_res);
291
292
16
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
16
            auto col_res = ColumnUInt8::create();
284
285
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
16
            vec_res.resize(col_left->get_data().size());
287
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
16
                              typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
16
                                                     vec_res);
291
292
16
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
151
                            const ColumnPtr& col_right_ptr) const {
274
151
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
151
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
151
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
151
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
151
        DCHECK(!(left_is_const && right_is_const));
281
282
151
        if (!left_is_const && !right_is_const) {
283
151
            auto col_res = ColumnUInt8::create();
284
285
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
151
            vec_res.resize(col_left->get_data().size());
287
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
151
                              typename PrimitiveTypeTraits<PT>::CppType,
289
151
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
151
                                                     vec_res);
291
292
151
            block.replace_by_position(result, std::move(col_res));
293
151
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
151
        return Status::OK();
317
151
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
325
                            const ColumnPtr& col_right_ptr) const {
274
325
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
325
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
325
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
325
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
325
        DCHECK(!(left_is_const && right_is_const));
281
282
325
        if (!left_is_const && !right_is_const) {
283
161
            auto col_res = ColumnUInt8::create();
284
285
161
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
161
            vec_res.resize(col_left->get_data().size());
287
161
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
161
                              typename PrimitiveTypeTraits<PT>::CppType,
289
161
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
161
                                                     vec_res);
291
292
161
            block.replace_by_position(result, std::move(col_res));
293
164
        } else if (!left_is_const && right_is_const) {
294
164
            auto col_res = ColumnUInt8::create();
295
296
164
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
164
            vec_res.resize(col_left->size());
298
164
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
164
                              typename PrimitiveTypeTraits<PT>::CppType,
300
164
                              Op<PT>>::vector_constant(col_left->get_data(),
301
164
                                                       col_right->get_element(0), vec_res);
302
303
164
            block.replace_by_position(result, std::move(col_res));
304
164
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
325
        return Status::OK();
317
325
    }
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
273
36
                            const ColumnPtr& col_right_ptr) const {
274
36
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
36
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
36
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
36
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
36
        DCHECK(!(left_is_const && right_is_const));
281
282
36
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
36
        } else if (!left_is_const && right_is_const) {
294
36
            auto col_res = ColumnUInt8::create();
295
296
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
36
            vec_res.resize(col_left->size());
298
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
36
                              typename PrimitiveTypeTraits<PT>::CppType,
300
36
                              Op<PT>>::vector_constant(col_left->get_data(),
301
36
                                                       col_right->get_element(0), vec_res);
302
303
36
            block.replace_by_position(result, std::move(col_res));
304
36
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
36
        return Status::OK();
317
36
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
581
                            const ColumnPtr& col_right_ptr) const {
274
581
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
581
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
581
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
581
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
581
        DCHECK(!(left_is_const && right_is_const));
281
282
581
        if (!left_is_const && !right_is_const) {
283
430
            auto col_res = ColumnUInt8::create();
284
285
430
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
430
            vec_res.resize(col_left->get_data().size());
287
430
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
430
                              typename PrimitiveTypeTraits<PT>::CppType,
289
430
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
430
                                                     vec_res);
291
292
430
            block.replace_by_position(result, std::move(col_res));
293
430
        } else if (!left_is_const && right_is_const) {
294
151
            auto col_res = ColumnUInt8::create();
295
296
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
151
            vec_res.resize(col_left->size());
298
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
151
                              typename PrimitiveTypeTraits<PT>::CppType,
300
151
                              Op<PT>>::vector_constant(col_left->get_data(),
301
151
                                                       col_right->get_element(0), vec_res);
302
303
151
            block.replace_by_position(result, std::move(col_res));
304
151
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
581
        return Status::OK();
317
581
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
42
                            const ColumnPtr& col_right_ptr) const {
274
42
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
42
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
42
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
42
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
42
        DCHECK(!(left_is_const && right_is_const));
281
282
42
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
42
        } else if (!left_is_const && right_is_const) {
294
42
            auto col_res = ColumnUInt8::create();
295
296
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
42
            vec_res.resize(col_left->size());
298
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
42
                              typename PrimitiveTypeTraits<PT>::CppType,
300
42
                              Op<PT>>::vector_constant(col_left->get_data(),
301
42
                                                       col_right->get_element(0), vec_res);
302
303
42
            block.replace_by_position(result, std::move(col_res));
304
42
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
42
        return Status::OK();
317
42
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
84
                            const ColumnPtr& col_right_ptr) const {
274
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
84
        DCHECK(!(left_is_const && right_is_const));
281
282
84
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
83
        } else if (!left_is_const && right_is_const) {
294
83
            auto col_res = ColumnUInt8::create();
295
296
83
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
83
            vec_res.resize(col_left->size());
298
83
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
83
                              typename PrimitiveTypeTraits<PT>::CppType,
300
83
                              Op<PT>>::vector_constant(col_left->get_data(),
301
83
                                                       col_right->get_element(0), vec_res);
302
303
83
            block.replace_by_position(result, std::move(col_res));
304
83
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
84
        return Status::OK();
317
84
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
118
                            const ColumnPtr& col_right_ptr) const {
274
118
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
118
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
118
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
118
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
118
        DCHECK(!(left_is_const && right_is_const));
281
282
118
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
118
        } else if (!left_is_const && right_is_const) {
294
118
            auto col_res = ColumnUInt8::create();
295
296
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
118
            vec_res.resize(col_left->size());
298
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
118
                              typename PrimitiveTypeTraits<PT>::CppType,
300
118
                              Op<PT>>::vector_constant(col_left->get_data(),
301
118
                                                       col_right->get_element(0), vec_res);
302
303
118
            block.replace_by_position(result, std::move(col_res));
304
118
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
118
        return Status::OK();
317
118
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
6.02k
                            const ColumnPtr& col_right_ptr) const {
274
6.02k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
6.02k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
6.02k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
6.02k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
6.02k
        DCHECK(!(left_is_const && right_is_const));
281
282
6.02k
        if (!left_is_const && !right_is_const) {
283
40
            auto col_res = ColumnUInt8::create();
284
285
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
40
            vec_res.resize(col_left->get_data().size());
287
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
40
                              typename PrimitiveTypeTraits<PT>::CppType,
289
40
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
40
                                                     vec_res);
291
292
40
            block.replace_by_position(result, std::move(col_res));
293
5.98k
        } else if (!left_is_const && right_is_const) {
294
5.98k
            auto col_res = ColumnUInt8::create();
295
296
5.98k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
5.98k
            vec_res.resize(col_left->size());
298
5.98k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
5.98k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
5.98k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
5.98k
                                                       col_right->get_element(0), vec_res);
302
303
5.98k
            block.replace_by_position(result, std::move(col_res));
304
5.98k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
6.02k
        return Status::OK();
317
6.02k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
274
                            const ColumnPtr& col_right_ptr) const {
274
274
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
274
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
274
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
274
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
274
        DCHECK(!(left_is_const && right_is_const));
281
282
274
        if (!left_is_const && !right_is_const) {
283
39
            auto col_res = ColumnUInt8::create();
284
285
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
39
            vec_res.resize(col_left->get_data().size());
287
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
39
                              typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
39
                                                     vec_res);
291
292
39
            block.replace_by_position(result, std::move(col_res));
293
235
        } else if (!left_is_const && right_is_const) {
294
235
            auto col_res = ColumnUInt8::create();
295
296
235
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
235
            vec_res.resize(col_left->size());
298
235
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
235
                              typename PrimitiveTypeTraits<PT>::CppType,
300
235
                              Op<PT>>::vector_constant(col_left->get_data(),
301
235
                                                       col_right->get_element(0), vec_res);
302
303
235
            block.replace_by_position(result, std::move(col_res));
304
235
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
274
        return Status::OK();
317
274
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
38
                            const ColumnPtr& col_right_ptr) const {
274
38
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
38
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
38
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
38
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
38
        DCHECK(!(left_is_const && right_is_const));
281
282
38
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
38
        } else if (!left_is_const && right_is_const) {
294
38
            auto col_res = ColumnUInt8::create();
295
296
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
38
            vec_res.resize(col_left->size());
298
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
38
                              typename PrimitiveTypeTraits<PT>::CppType,
300
38
                              Op<PT>>::vector_constant(col_left->get_data(),
301
38
                                                       col_right->get_element(0), vec_res);
302
303
38
            block.replace_by_position(result, std::move(col_res));
304
38
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
38
        return Status::OK();
317
38
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
10
                            const ColumnPtr& col_right_ptr) const {
274
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
10
        DCHECK(!(left_is_const && right_is_const));
281
282
10
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
10
        } else if (!left_is_const && right_is_const) {
294
10
            auto col_res = ColumnUInt8::create();
295
296
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10
            vec_res.resize(col_left->size());
298
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10
                                                       col_right->get_element(0), vec_res);
302
303
10
            block.replace_by_position(result, std::move(col_res));
304
10
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
10
        return Status::OK();
317
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
273
20
                            const ColumnPtr& col_right_ptr) const {
274
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
20
        DCHECK(!(left_is_const && right_is_const));
281
282
20
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
20
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
20
        return Status::OK();
317
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
126
                            const ColumnPtr& col_right_ptr) const {
274
126
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
126
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
126
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
126
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
126
        DCHECK(!(left_is_const && right_is_const));
281
282
126
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
106
        } else if (!left_is_const && right_is_const) {
294
106
            auto col_res = ColumnUInt8::create();
295
296
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
106
            vec_res.resize(col_left->size());
298
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
106
                              typename PrimitiveTypeTraits<PT>::CppType,
300
106
                              Op<PT>>::vector_constant(col_left->get_data(),
301
106
                                                       col_right->get_element(0), vec_res);
302
303
106
            block.replace_by_position(result, std::move(col_res));
304
106
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
126
        return Status::OK();
317
126
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
318
319
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
320
3.83k
                           const ColumnWithTypeAndName& col_right) const {
321
3.83k
        auto call = [&](const auto& type) -> bool {
322
3.83k
            using DispatchType = std::decay_t<decltype(type)>;
323
3.83k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
3.83k
                    block, result, col_left, col_right);
325
3.83k
            return true;
326
3.83k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
170
        auto call = [&](const auto& type) -> bool {
322
170
            using DispatchType = std::decay_t<decltype(type)>;
323
170
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
170
                    block, result, col_left, col_right);
325
170
            return true;
326
170
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
200
        auto call = [&](const auto& type) -> bool {
322
200
            using DispatchType = std::decay_t<decltype(type)>;
323
200
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
200
                    block, result, col_left, col_right);
325
200
            return true;
326
200
        };
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
321
986
        auto call = [&](const auto& type) -> bool {
322
986
            using DispatchType = std::decay_t<decltype(type)>;
323
986
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
986
                    block, result, col_left, col_right);
325
986
            return true;
326
986
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
30
        auto call = [&](const auto& type) -> bool {
322
30
            using DispatchType = std::decay_t<decltype(type)>;
323
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
30
                    block, result, col_left, col_right);
325
30
            return true;
326
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
321
61
        auto call = [&](const auto& type) -> bool {
322
61
            using DispatchType = std::decay_t<decltype(type)>;
323
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
61
                    block, result, col_left, col_right);
325
61
            return true;
326
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
321
28
        auto call = [&](const auto& type) -> bool {
322
28
            using DispatchType = std::decay_t<decltype(type)>;
323
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
28
                    block, result, col_left, col_right);
325
28
            return true;
326
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
30
        auto call = [&](const auto& type) -> bool {
322
30
            using DispatchType = std::decay_t<decltype(type)>;
323
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
30
                    block, result, col_left, col_right);
325
30
            return true;
326
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
8
        auto call = [&](const auto& type) -> bool {
322
8
            using DispatchType = std::decay_t<decltype(type)>;
323
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
8
                    block, result, col_left, col_right);
325
8
            return true;
326
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
56
        auto call = [&](const auto& type) -> bool {
322
56
            using DispatchType = std::decay_t<decltype(type)>;
323
56
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
56
                    block, result, col_left, col_right);
325
56
            return true;
326
56
        };
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
321
1.28k
        auto call = [&](const auto& type) -> bool {
322
1.28k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.28k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.28k
                    block, result, col_left, col_right);
325
1.28k
            return true;
326
1.28k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
2
        auto call = [&](const auto& type) -> bool {
322
2
            using DispatchType = std::decay_t<decltype(type)>;
323
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
2
                    block, result, col_left, col_right);
325
2
            return true;
326
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
1
        auto call = [&](const auto& type) -> bool {
322
1
            using DispatchType = std::decay_t<decltype(type)>;
323
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1
                    block, result, col_left, col_right);
325
1
            return true;
326
1
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
28
        auto call = [&](const auto& type) -> bool {
322
28
            using DispatchType = std::decay_t<decltype(type)>;
323
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
28
                    block, result, col_left, col_right);
325
28
            return true;
326
28
        };
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
321
73
        auto call = [&](const auto& type) -> bool {
322
73
            using DispatchType = std::decay_t<decltype(type)>;
323
73
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
73
                    block, result, col_left, col_right);
325
73
            return true;
326
73
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
21
        auto call = [&](const auto& type) -> bool {
322
21
            using DispatchType = std::decay_t<decltype(type)>;
323
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
21
                    block, result, col_left, col_right);
325
21
            return true;
326
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
207
        auto call = [&](const auto& type) -> bool {
322
207
            using DispatchType = std::decay_t<decltype(type)>;
323
207
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
207
                    block, result, col_left, col_right);
325
207
            return true;
326
207
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
234
        auto call = [&](const auto& type) -> bool {
322
234
            using DispatchType = std::decay_t<decltype(type)>;
323
234
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
234
                    block, result, col_left, col_right);
325
234
            return true;
326
234
        };
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
321
320
        auto call = [&](const auto& type) -> bool {
322
320
            using DispatchType = std::decay_t<decltype(type)>;
323
320
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
320
                    block, result, col_left, col_right);
325
320
            return true;
326
320
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
1
        auto call = [&](const auto& type) -> bool {
322
1
            using DispatchType = std::decay_t<decltype(type)>;
323
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1
                    block, result, col_left, col_right);
325
1
            return true;
326
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
4
        auto call = [&](const auto& type) -> bool {
322
4
            using DispatchType = std::decay_t<decltype(type)>;
323
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
4
                    block, result, col_left, col_right);
325
4
            return true;
326
4
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
30
        auto call = [&](const auto& type) -> bool {
322
30
            using DispatchType = std::decay_t<decltype(type)>;
323
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
30
                    block, result, col_left, col_right);
325
30
            return true;
326
30
        };
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
321
47
        auto call = [&](const auto& type) -> bool {
322
47
            using DispatchType = std::decay_t<decltype(type)>;
323
47
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
47
                    block, result, col_left, col_right);
325
47
            return true;
326
47
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
16
        auto call = [&](const auto& type) -> bool {
322
16
            using DispatchType = std::decay_t<decltype(type)>;
323
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
16
                    block, result, col_left, col_right);
325
16
            return true;
326
16
        };
327
328
3.83k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
3.83k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
3.83k
        return Status::OK();
339
3.83k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
1.38k
                           const ColumnWithTypeAndName& col_right) const {
321
1.38k
        auto call = [&](const auto& type) -> bool {
322
1.38k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.38k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.38k
                    block, result, col_left, col_right);
325
1.38k
            return true;
326
1.38k
        };
327
328
1.38k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
1.38k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
1.38k
        return Status::OK();
339
1.38k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
119
                           const ColumnWithTypeAndName& col_right) const {
321
119
        auto call = [&](const auto& type) -> bool {
322
119
            using DispatchType = std::decay_t<decltype(type)>;
323
119
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
119
                    block, result, col_left, col_right);
325
119
            return true;
326
119
        };
327
328
119
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
119
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
119
        return Status::OK();
339
119
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
1.34k
                           const ColumnWithTypeAndName& col_right) const {
321
1.34k
        auto call = [&](const auto& type) -> bool {
322
1.34k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.34k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.34k
                    block, result, col_left, col_right);
325
1.34k
            return true;
326
1.34k
        };
327
328
1.34k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
1.34k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
1.34k
        return Status::OK();
339
1.34k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
123
                           const ColumnWithTypeAndName& col_right) const {
321
123
        auto call = [&](const auto& type) -> bool {
322
123
            using DispatchType = std::decay_t<decltype(type)>;
323
123
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
123
                    block, result, col_left, col_right);
325
123
            return true;
326
123
        };
327
328
123
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
123
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
123
        return Status::OK();
339
123
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
762
                           const ColumnWithTypeAndName& col_right) const {
321
762
        auto call = [&](const auto& type) -> bool {
322
762
            using DispatchType = std::decay_t<decltype(type)>;
323
762
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
762
                    block, result, col_left, col_right);
325
762
            return true;
326
762
        };
327
328
762
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
762
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
762
        return Status::OK();
339
762
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
97
                           const ColumnWithTypeAndName& col_right) const {
321
97
        auto call = [&](const auto& type) -> bool {
322
97
            using DispatchType = std::decay_t<decltype(type)>;
323
97
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
97
                    block, result, col_left, col_right);
325
97
            return true;
326
97
        };
327
328
97
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
97
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
97
        return Status::OK();
339
97
    }
340
341
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
342
11.6k
                          const IColumn* c1) const {
343
11.6k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
11.6k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
11.6k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
11.6k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
11.6k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
11.6k
        DCHECK(!(c0_const && c1_const));
352
11.6k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
11.6k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
11.6k
        ColumnString::Offset c0_const_size = 0;
355
11.6k
        ColumnString::Offset c1_const_size = 0;
356
357
11.6k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
11.6k
        if (c1_const) {
371
10.6k
            const ColumnString* c1_const_string =
372
10.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
10.6k
            if (c1_const_string) {
375
10.6k
                c1_const_chars = &c1_const_string->get_chars();
376
10.6k
                c1_const_size = c1_const_string->get_offsets()[0];
377
10.6k
            } else {
378
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
1
                                            c1->get_name(), name);
380
1
            }
381
10.6k
        }
382
383
11.6k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
11.6k
        auto c_res = ColumnUInt8::create();
386
11.6k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
11.6k
        vec_res.resize(c0->size());
388
389
11.6k
        if (c0_string && c1_string) {
390
998
            StringImpl::string_vector_string_vector(
391
998
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
998
                    c1_string->get_offsets(), vec_res);
393
10.6k
        } else if (c0_string && c1_const) {
394
10.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
10.6k
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
11.6k
        block.replace_by_position(result, std::move(c_res));
405
11.6k
        return Status::OK();
406
11.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
10.2k
                          const IColumn* c1) const {
343
10.2k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
10.2k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
10.2k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
10.2k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
10.2k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
10.2k
        DCHECK(!(c0_const && c1_const));
352
10.2k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
10.2k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
10.2k
        ColumnString::Offset c0_const_size = 0;
355
10.2k
        ColumnString::Offset c1_const_size = 0;
356
357
10.2k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
10.2k
        if (c1_const) {
371
9.73k
            const ColumnString* c1_const_string =
372
9.73k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
9.73k
            if (c1_const_string) {
375
9.73k
                c1_const_chars = &c1_const_string->get_chars();
376
9.73k
                c1_const_size = c1_const_string->get_offsets()[0];
377
9.73k
            } else {
378
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
1
                                            c1->get_name(), name);
380
1
            }
381
9.73k
        }
382
383
10.2k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
10.2k
        auto c_res = ColumnUInt8::create();
386
10.2k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
10.2k
        vec_res.resize(c0->size());
388
389
10.2k
        if (c0_string && c1_string) {
390
496
            StringImpl::string_vector_string_vector(
391
496
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
496
                    c1_string->get_offsets(), vec_res);
393
9.73k
        } else if (c0_string && c1_const) {
394
9.73k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
9.73k
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
10.2k
        block.replace_by_position(result, std::move(c_res));
405
10.2k
        return Status::OK();
406
10.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
100
                          const IColumn* c1) const {
343
100
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
100
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
100
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
100
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
100
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
100
        DCHECK(!(c0_const && c1_const));
352
100
        const ColumnString::Chars* c0_const_chars = nullptr;
353
100
        const ColumnString::Chars* c1_const_chars = nullptr;
354
100
        ColumnString::Offset c0_const_size = 0;
355
100
        ColumnString::Offset c1_const_size = 0;
356
357
100
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
100
        if (c1_const) {
371
99
            const ColumnString* c1_const_string =
372
99
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
99
            if (c1_const_string) {
375
99
                c1_const_chars = &c1_const_string->get_chars();
376
99
                c1_const_size = c1_const_string->get_offsets()[0];
377
99
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
99
        }
382
383
100
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
100
        auto c_res = ColumnUInt8::create();
386
100
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
100
        vec_res.resize(c0->size());
388
389
100
        if (c0_string && c1_string) {
390
1
            StringImpl::string_vector_string_vector(
391
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
1
                    c1_string->get_offsets(), vec_res);
393
99
        } else if (c0_string && c1_const) {
394
99
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
99
                                               *c1_const_chars, c1_const_size, vec_res);
396
99
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
100
        block.replace_by_position(result, std::move(c_res));
405
100
        return Status::OK();
406
100
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
214
                          const IColumn* c1) const {
343
214
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
214
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
214
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
214
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
214
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
214
        DCHECK(!(c0_const && c1_const));
352
214
        const ColumnString::Chars* c0_const_chars = nullptr;
353
214
        const ColumnString::Chars* c1_const_chars = nullptr;
354
214
        ColumnString::Offset c0_const_size = 0;
355
214
        ColumnString::Offset c1_const_size = 0;
356
357
214
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
214
        if (c1_const) {
371
212
            const ColumnString* c1_const_string =
372
212
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
212
            if (c1_const_string) {
375
212
                c1_const_chars = &c1_const_string->get_chars();
376
212
                c1_const_size = c1_const_string->get_offsets()[0];
377
212
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
212
        }
382
383
214
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
214
        auto c_res = ColumnUInt8::create();
386
214
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
214
        vec_res.resize(c0->size());
388
389
214
        if (c0_string && c1_string) {
390
2
            StringImpl::string_vector_string_vector(
391
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
2
                    c1_string->get_offsets(), vec_res);
393
212
        } else if (c0_string && c1_const) {
394
212
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
212
                                               *c1_const_chars, c1_const_size, vec_res);
396
212
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
214
        block.replace_by_position(result, std::move(c_res));
405
214
        return Status::OK();
406
214
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
287
                          const IColumn* c1) const {
343
287
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
287
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
287
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
287
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
287
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
287
        DCHECK(!(c0_const && c1_const));
352
287
        const ColumnString::Chars* c0_const_chars = nullptr;
353
287
        const ColumnString::Chars* c1_const_chars = nullptr;
354
287
        ColumnString::Offset c0_const_size = 0;
355
287
        ColumnString::Offset c1_const_size = 0;
356
357
287
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
287
        if (c1_const) {
371
244
            const ColumnString* c1_const_string =
372
244
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
244
            if (c1_const_string) {
375
244
                c1_const_chars = &c1_const_string->get_chars();
376
244
                c1_const_size = c1_const_string->get_offsets()[0];
377
244
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
244
        }
382
383
287
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
287
        auto c_res = ColumnUInt8::create();
386
287
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
287
        vec_res.resize(c0->size());
388
389
287
        if (c0_string && c1_string) {
390
43
            StringImpl::string_vector_string_vector(
391
43
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
43
                    c1_string->get_offsets(), vec_res);
393
244
        } else if (c0_string && c1_const) {
394
244
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
244
                                               *c1_const_chars, c1_const_size, vec_res);
396
244
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
287
        block.replace_by_position(result, std::move(c_res));
405
287
        return Status::OK();
406
287
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
635
                          const IColumn* c1) const {
343
635
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
635
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
635
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
635
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
635
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
635
        DCHECK(!(c0_const && c1_const));
352
635
        const ColumnString::Chars* c0_const_chars = nullptr;
353
635
        const ColumnString::Chars* c1_const_chars = nullptr;
354
635
        ColumnString::Offset c0_const_size = 0;
355
635
        ColumnString::Offset c1_const_size = 0;
356
357
635
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
635
        if (c1_const) {
371
179
            const ColumnString* c1_const_string =
372
179
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
179
            if (c1_const_string) {
375
179
                c1_const_chars = &c1_const_string->get_chars();
376
179
                c1_const_size = c1_const_string->get_offsets()[0];
377
179
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
179
        }
382
383
635
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
635
        auto c_res = ColumnUInt8::create();
386
635
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
635
        vec_res.resize(c0->size());
388
389
635
        if (c0_string && c1_string) {
390
456
            StringImpl::string_vector_string_vector(
391
456
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
456
                    c1_string->get_offsets(), vec_res);
393
456
        } else if (c0_string && c1_const) {
394
179
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
179
                                               *c1_const_chars, c1_const_size, vec_res);
396
179
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
635
        block.replace_by_position(result, std::move(c_res));
405
635
        return Status::OK();
406
635
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
227
                          const IColumn* c1) const {
343
227
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
227
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
227
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
227
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
227
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
227
        DCHECK(!(c0_const && c1_const));
352
227
        const ColumnString::Chars* c0_const_chars = nullptr;
353
227
        const ColumnString::Chars* c1_const_chars = nullptr;
354
227
        ColumnString::Offset c0_const_size = 0;
355
227
        ColumnString::Offset c1_const_size = 0;
356
357
227
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
227
        if (c1_const) {
371
227
            const ColumnString* c1_const_string =
372
227
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
227
            if (c1_const_string) {
375
227
                c1_const_chars = &c1_const_string->get_chars();
376
227
                c1_const_size = c1_const_string->get_offsets()[0];
377
227
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
227
        }
382
383
227
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
227
        auto c_res = ColumnUInt8::create();
386
227
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
227
        vec_res.resize(c0->size());
388
389
227
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
227
        } else if (c0_string && c1_const) {
394
227
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
227
                                               *c1_const_chars, c1_const_size, vec_res);
396
227
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
227
        block.replace_by_position(result, std::move(c_res));
405
227
        return Status::OK();
406
227
    }
407
408
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
409
192
                                         const IColumn* c1) const {
410
192
        bool c0_const = is_column_const(*c0);
411
192
        bool c1_const = is_column_const(*c1);
412
413
192
        DCHECK(!(c0_const && c1_const));
414
415
192
        auto c_res = ColumnUInt8::create();
416
192
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
192
        vec_res.resize(c0->size());
418
419
192
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
192
        } else if (c1_const) {
422
184
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
184
        } else {
424
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
8
        }
426
427
192
        block.replace_by_position(result, std::move(c_res));
428
192
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
16
                                         const IColumn* c1) const {
410
16
        bool c0_const = is_column_const(*c0);
411
16
        bool c1_const = is_column_const(*c1);
412
413
16
        DCHECK(!(c0_const && c1_const));
414
415
16
        auto c_res = ColumnUInt8::create();
416
16
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
16
        vec_res.resize(c0->size());
418
419
16
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
16
        } else if (c1_const) {
422
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
13
        } else {
424
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
3
        }
426
427
16
        block.replace_by_position(result, std::move(c_res));
428
16
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
8
                                         const IColumn* c1) const {
410
8
        bool c0_const = is_column_const(*c0);
411
8
        bool c1_const = is_column_const(*c1);
412
413
8
        DCHECK(!(c0_const && c1_const));
414
415
8
        auto c_res = ColumnUInt8::create();
416
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
8
        vec_res.resize(c0->size());
418
419
8
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
8
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
0
        }
426
427
8
        block.replace_by_position(result, std::move(c_res));
428
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
9
                                         const IColumn* c1) const {
410
9
        bool c0_const = is_column_const(*c0);
411
9
        bool c1_const = is_column_const(*c1);
412
413
9
        DCHECK(!(c0_const && c1_const));
414
415
9
        auto c_res = ColumnUInt8::create();
416
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
9
        vec_res.resize(c0->size());
418
419
9
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
9
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
1
        }
426
427
9
        block.replace_by_position(result, std::move(c_res));
428
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
74
                                         const IColumn* c1) const {
410
74
        bool c0_const = is_column_const(*c0);
411
74
        bool c1_const = is_column_const(*c1);
412
413
74
        DCHECK(!(c0_const && c1_const));
414
415
74
        auto c_res = ColumnUInt8::create();
416
74
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
74
        vec_res.resize(c0->size());
418
419
74
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
74
        } else if (c1_const) {
422
73
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
73
        } else {
424
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
1
        }
426
427
74
        block.replace_by_position(result, std::move(c_res));
428
74
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
11
                                         const IColumn* c1) const {
410
11
        bool c0_const = is_column_const(*c0);
411
11
        bool c1_const = is_column_const(*c1);
412
413
11
        DCHECK(!(c0_const && c1_const));
414
415
11
        auto c_res = ColumnUInt8::create();
416
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
11
        vec_res.resize(c0->size());
418
419
11
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
11
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
3
        }
426
427
11
        block.replace_by_position(result, std::move(c_res));
428
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
74
                                         const IColumn* c1) const {
410
74
        bool c0_const = is_column_const(*c0);
411
74
        bool c1_const = is_column_const(*c1);
412
413
74
        DCHECK(!(c0_const && c1_const));
414
415
74
        auto c_res = ColumnUInt8::create();
416
74
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
74
        vec_res.resize(c0->size());
418
419
74
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
74
        } else if (c1_const) {
422
74
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
74
        } else {
424
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
0
        }
426
427
74
        block.replace_by_position(result, std::move(c_res));
428
74
    }
429
430
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
431
193
                           const ColumnWithTypeAndName& c1) const {
432
193
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
193
        return Status::OK();
434
193
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
17
                           const ColumnWithTypeAndName& c1) const {
432
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
17
        return Status::OK();
434
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
8
                           const ColumnWithTypeAndName& c1) const {
432
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
8
        return Status::OK();
434
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
9
                           const ColumnWithTypeAndName& c1) const {
432
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
9
        return Status::OK();
434
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
74
                           const ColumnWithTypeAndName& c1) const {
432
74
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
74
        return Status::OK();
434
74
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
11
                           const ColumnWithTypeAndName& c1) const {
432
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
11
        return Status::OK();
434
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
74
                           const ColumnWithTypeAndName& c1) const {
432
74
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
74
        return Status::OK();
434
74
    }
435
436
public:
437
222
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
437
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
438
439
277k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
241k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
1.11k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
439
4.80k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
13.1k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
439
2.59k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
14.8k
    size_t get_number_of_arguments() const override { return 2; }
440
441
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
442
277k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
277k
        return std::make_shared<DataTypeUInt8>();
444
277k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
241k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
241k
        return std::make_shared<DataTypeUInt8>();
444
241k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
1.11k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
1.11k
        return std::make_shared<DataTypeUInt8>();
444
1.11k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
4.80k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
4.80k
        return std::make_shared<DataTypeUInt8>();
444
4.80k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
13.1k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
13.1k
        return std::make_shared<DataTypeUInt8>();
444
13.1k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
2.59k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
2.59k
        return std::make_shared<DataTypeUInt8>();
444
2.59k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
14.8k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
14.8k
        return std::make_shared<DataTypeUInt8>();
444
14.8k
    }
445
446
    Status evaluate_inverted_index(
447
            const ColumnsWithTypeAndName& arguments,
448
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
449
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
450
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
451
1.74k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
1.74k
        DCHECK(arguments.size() == 1);
453
1.74k
        DCHECK(data_type_with_names.size() == 1);
454
1.74k
        DCHECK(iterators.size() == 1);
455
1.74k
        auto* iter = iterators[0];
456
1.74k
        auto data_type_with_name = data_type_with_names[0];
457
1.74k
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
1.74k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
436
            return Status::OK();
462
436
        }
463
1.30k
        segment_v2::InvertedIndexQueryType query_type;
464
1.30k
        std::string_view name_view(name);
465
1.30k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
849
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
849
        } else if (name_view == NameLess::name) {
468
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
346
        } else if (name_view == NameLessOrEquals::name) {
470
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
248
        } else if (name_view == NameGreater::name) {
472
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
135
        } else if (name_view == NameGreaterOrEquals::name) {
474
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
135
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
1.30k
        if (segment_v2::is_range_query(query_type) &&
480
1.30k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
171
            return Status::OK();
483
171
        }
484
1.13k
        Field param_value;
485
1.13k
        arguments[0].column->get(0, param_value);
486
1.13k
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
1.13k
        auto param_type = arguments[0].type->get_primitive_type();
490
1.13k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
1.13k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
1.13k
                param_type, &param_value, query_param));
493
494
1.13k
        segment_v2::InvertedIndexParam param;
495
1.13k
        param.column_name = data_type_with_name.first;
496
1.13k
        param.column_type = data_type_with_name.second;
497
1.13k
        param.query_value = query_param->get_value();
498
1.13k
        param.query_type = query_type;
499
1.13k
        param.num_rows = num_rows;
500
1.13k
        param.roaring = std::make_shared<roaring::Roaring>();
501
1.13k
        param.analyzer_ctx = analyzer_ctx;
502
1.13k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
978
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
978
        if (iter->has_null()) {
505
978
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
978
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
978
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
978
        }
509
978
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
978
        bitmap_result = result;
511
978
        bitmap_result.mask_out_null();
512
513
978
        if (name_view == NameNotEquals::name) {
514
63
            roaring::Roaring full_result;
515
63
            full_result.addRange(0, num_rows);
516
63
            bitmap_result.op_not(&full_result);
517
63
        }
518
519
978
        return Status::OK();
520
978
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
857
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
857
        DCHECK(arguments.size() == 1);
453
857
        DCHECK(data_type_with_names.size() == 1);
454
857
        DCHECK(iterators.size() == 1);
455
857
        auto* iter = iterators[0];
456
857
        auto data_type_with_name = data_type_with_names[0];
457
857
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
857
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
78
            return Status::OK();
462
78
        }
463
779
        segment_v2::InvertedIndexQueryType query_type;
464
779
        std::string_view name_view(name);
465
779
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
779
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
779
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
0
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
0
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
779
        if (segment_v2::is_range_query(query_type) &&
480
779
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
0
            return Status::OK();
483
0
        }
484
779
        Field param_value;
485
779
        arguments[0].column->get(0, param_value);
486
779
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
779
        auto param_type = arguments[0].type->get_primitive_type();
490
779
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
779
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
779
                param_type, &param_value, query_param));
493
494
778
        segment_v2::InvertedIndexParam param;
495
778
        param.column_name = data_type_with_name.first;
496
778
        param.column_type = data_type_with_name.second;
497
778
        param.query_value = query_param->get_value();
498
778
        param.query_type = query_type;
499
778
        param.num_rows = num_rows;
500
778
        param.roaring = std::make_shared<roaring::Roaring>();
501
778
        param.analyzer_ctx = analyzer_ctx;
502
778
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
730
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
730
        if (iter->has_null()) {
505
730
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
730
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
730
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
730
        }
509
730
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
730
        bitmap_result = result;
511
730
        bitmap_result.mask_out_null();
512
513
730
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
730
        return Status::OK();
520
730
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
78
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
78
        DCHECK(arguments.size() == 1);
453
78
        DCHECK(data_type_with_names.size() == 1);
454
78
        DCHECK(iterators.size() == 1);
455
78
        auto* iter = iterators[0];
456
78
        auto data_type_with_name = data_type_with_names[0];
457
78
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
78
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
8
            return Status::OK();
462
8
        }
463
70
        segment_v2::InvertedIndexQueryType query_type;
464
70
        std::string_view name_view(name);
465
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
70
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
0
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
0
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
70
        if (segment_v2::is_range_query(query_type) &&
480
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
0
            return Status::OK();
483
0
        }
484
70
        Field param_value;
485
70
        arguments[0].column->get(0, param_value);
486
70
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
70
        auto param_type = arguments[0].type->get_primitive_type();
490
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
70
                param_type, &param_value, query_param));
493
494
70
        segment_v2::InvertedIndexParam param;
495
70
        param.column_name = data_type_with_name.first;
496
70
        param.column_type = data_type_with_name.second;
497
70
        param.query_value = query_param->get_value();
498
70
        param.query_type = query_type;
499
70
        param.num_rows = num_rows;
500
70
        param.roaring = std::make_shared<roaring::Roaring>();
501
70
        param.analyzer_ctx = analyzer_ctx;
502
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
63
        if (iter->has_null()) {
505
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
63
        }
509
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
63
        bitmap_result = result;
511
63
        bitmap_result.mask_out_null();
512
513
63
        if (name_view == NameNotEquals::name) {
514
63
            roaring::Roaring full_result;
515
63
            full_result.addRange(0, num_rows);
516
63
            bitmap_result.op_not(&full_result);
517
63
        }
518
519
63
        return Status::OK();
520
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
175
        DCHECK(arguments.size() == 1);
453
175
        DCHECK(data_type_with_names.size() == 1);
454
175
        DCHECK(iterators.size() == 1);
455
175
        auto* iter = iterators[0];
456
175
        auto data_type_with_name = data_type_with_names[0];
457
175
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
62
            return Status::OK();
462
62
        }
463
113
        segment_v2::InvertedIndexQueryType query_type;
464
113
        std::string_view name_view(name);
465
113
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
113
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
113
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
113
        } else if (name_view == NameGreater::name) {
472
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
113
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
113
        if (segment_v2::is_range_query(query_type) &&
480
113
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
28
            return Status::OK();
483
28
        }
484
85
        Field param_value;
485
85
        arguments[0].column->get(0, param_value);
486
85
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
85
        auto param_type = arguments[0].type->get_primitive_type();
490
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
85
                param_type, &param_value, query_param));
493
494
85
        segment_v2::InvertedIndexParam param;
495
85
        param.column_name = data_type_with_name.first;
496
85
        param.column_type = data_type_with_name.second;
497
85
        param.query_value = query_param->get_value();
498
85
        param.query_type = query_type;
499
85
        param.num_rows = num_rows;
500
85
        param.roaring = std::make_shared<roaring::Roaring>();
501
85
        param.analyzer_ctx = analyzer_ctx;
502
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
66
        if (iter->has_null()) {
505
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
66
        }
509
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
66
        bitmap_result = result;
511
66
        bitmap_result.mask_out_null();
512
513
66
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
66
        return Status::OK();
520
66
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
249
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
249
        DCHECK(arguments.size() == 1);
453
249
        DCHECK(data_type_with_names.size() == 1);
454
249
        DCHECK(iterators.size() == 1);
455
249
        auto* iter = iterators[0];
456
249
        auto data_type_with_name = data_type_with_names[0];
457
249
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
249
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
114
            return Status::OK();
462
114
        }
463
135
        segment_v2::InvertedIndexQueryType query_type;
464
135
        std::string_view name_view(name);
465
135
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
135
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
135
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
135
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
135
        } else if (name_view == NameGreaterOrEquals::name) {
474
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
135
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
135
        if (segment_v2::is_range_query(query_type) &&
480
135
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
59
            return Status::OK();
483
59
        }
484
76
        Field param_value;
485
76
        arguments[0].column->get(0, param_value);
486
76
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
76
        auto param_type = arguments[0].type->get_primitive_type();
490
76
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
76
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
76
                param_type, &param_value, query_param));
493
494
76
        segment_v2::InvertedIndexParam param;
495
76
        param.column_name = data_type_with_name.first;
496
76
        param.column_type = data_type_with_name.second;
497
76
        param.query_value = query_param->get_value();
498
76
        param.query_type = query_type;
499
76
        param.num_rows = num_rows;
500
76
        param.roaring = std::make_shared<roaring::Roaring>();
501
76
        param.analyzer_ctx = analyzer_ctx;
502
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
34
        if (iter->has_null()) {
505
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
34
        }
509
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
34
        bitmap_result = result;
511
34
        bitmap_result.mask_out_null();
512
513
34
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
34
        return Status::OK();
520
34
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
172
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
172
        DCHECK(arguments.size() == 1);
453
172
        DCHECK(data_type_with_names.size() == 1);
454
172
        DCHECK(iterators.size() == 1);
455
172
        auto* iter = iterators[0];
456
172
        auto data_type_with_name = data_type_with_names[0];
457
172
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
172
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
61
            return Status::OK();
462
61
        }
463
111
        segment_v2::InvertedIndexQueryType query_type;
464
111
        std::string_view name_view(name);
465
111
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
111
        } else if (name_view == NameLess::name) {
468
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
111
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
0
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
111
        if (segment_v2::is_range_query(query_type) &&
480
111
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
26
            return Status::OK();
483
26
        }
484
85
        Field param_value;
485
85
        arguments[0].column->get(0, param_value);
486
85
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
85
        auto param_type = arguments[0].type->get_primitive_type();
490
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
85
                param_type, &param_value, query_param));
493
494
85
        segment_v2::InvertedIndexParam param;
495
85
        param.column_name = data_type_with_name.first;
496
85
        param.column_type = data_type_with_name.second;
497
85
        param.query_value = query_param->get_value();
498
85
        param.query_type = query_type;
499
85
        param.num_rows = num_rows;
500
85
        param.roaring = std::make_shared<roaring::Roaring>();
501
85
        param.analyzer_ctx = analyzer_ctx;
502
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
66
        if (iter->has_null()) {
505
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
66
        }
509
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
66
        bitmap_result = result;
511
66
        bitmap_result.mask_out_null();
512
513
66
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
66
        return Status::OK();
520
66
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
211
        DCHECK(arguments.size() == 1);
453
211
        DCHECK(data_type_with_names.size() == 1);
454
211
        DCHECK(iterators.size() == 1);
455
211
        auto* iter = iterators[0];
456
211
        auto data_type_with_name = data_type_with_names[0];
457
211
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
113
            return Status::OK();
462
113
        }
463
98
        segment_v2::InvertedIndexQueryType query_type;
464
98
        std::string_view name_view(name);
465
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
98
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
98
        } else if (name_view == NameLessOrEquals::name) {
470
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
98
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
98
        if (segment_v2::is_range_query(query_type) &&
480
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
58
            return Status::OK();
483
58
        }
484
40
        Field param_value;
485
40
        arguments[0].column->get(0, param_value);
486
40
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
40
        auto param_type = arguments[0].type->get_primitive_type();
490
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
40
                param_type, &param_value, query_param));
493
494
40
        segment_v2::InvertedIndexParam param;
495
40
        param.column_name = data_type_with_name.first;
496
40
        param.column_type = data_type_with_name.second;
497
40
        param.query_value = query_param->get_value();
498
40
        param.query_type = query_type;
499
40
        param.num_rows = num_rows;
500
40
        param.roaring = std::make_shared<roaring::Roaring>();
501
40
        param.analyzer_ctx = analyzer_ctx;
502
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
19
        if (iter->has_null()) {
505
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
19
        }
509
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
19
        bitmap_result = result;
511
19
        bitmap_result.mask_out_null();
512
513
19
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
19
        return Status::OK();
520
19
    }
521
522
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
523
50.4k
                        uint32_t result, size_t input_rows_count) const override {
524
50.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
50.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
50.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
50.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
50.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
50.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
50.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
50.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
50.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
50.4k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
85.2k
        auto can_compare = [](PrimitiveType t) -> bool {
562
85.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
85.2k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
31.1k
        auto can_compare = [](PrimitiveType t) -> bool {
562
31.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
31.1k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
3.26k
        auto can_compare = [](PrimitiveType t) -> bool {
562
3.26k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
3.26k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
18.2k
        auto can_compare = [](PrimitiveType t) -> bool {
562
18.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
18.2k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
4.71k
        auto can_compare = [](PrimitiveType t) -> bool {
562
4.71k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
4.71k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
12.6k
        auto can_compare = [](PrimitiveType t) -> bool {
562
12.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
12.6k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
15.1k
        auto can_compare = [](PrimitiveType t) -> bool {
562
15.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
15.1k
        };
564
565
50.4k
        if (can_compare(left_type->get_primitive_type()) &&
566
50.4k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
34.8k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
34.8k
        }
574
575
50.4k
        auto compare_type = left_type->get_primitive_type();
576
50.4k
        switch (compare_type) {
577
246
        case TYPE_BOOLEAN:
578
246
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
5.78k
        case TYPE_DATEV2:
580
5.78k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
1.02k
        case TYPE_DATETIMEV2:
582
1.02k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
16
        case TYPE_TIMESTAMPTZ:
584
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
5.43k
        case TYPE_TINYINT:
586
5.43k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
1.70k
        case TYPE_SMALLINT:
588
1.70k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
13.4k
        case TYPE_INT:
590
13.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
4.09k
        case TYPE_BIGINT:
592
4.09k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
673
        case TYPE_LARGEINT:
594
673
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
70
        case TYPE_IPV4:
596
70
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
48
        case TYPE_IPV6:
598
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
578
        case TYPE_FLOAT:
600
578
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
1.56k
        case TYPE_DOUBLE:
602
1.56k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
4
        case TYPE_TIMEV2:
604
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
390
        case TYPE_DECIMAL32:
607
999
        case TYPE_DECIMAL64:
608
3.73k
        case TYPE_DECIMAL128I:
609
3.83k
        case TYPE_DECIMAL256:
610
3.83k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
3.83k
                                   col_with_type_and_name_right);
612
745
        case TYPE_CHAR:
613
6.86k
        case TYPE_VARCHAR:
614
11.6k
        case TYPE_STRING:
615
11.6k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
193
        default:
617
193
            return execute_generic(block, result, col_with_type_and_name_left,
618
193
                                   col_with_type_and_name_right);
619
50.4k
        }
620
0
        return Status::OK();
621
50.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
21.3k
                        uint32_t result, size_t input_rows_count) const override {
524
21.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
21.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
21.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
21.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
21.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
21.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
21.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
21.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
21.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
21.3k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
21.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
21.3k
        };
564
565
21.3k
        if (can_compare(left_type->get_primitive_type()) &&
566
21.3k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
9.75k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
9.75k
        }
574
575
21.3k
        auto compare_type = left_type->get_primitive_type();
576
21.3k
        switch (compare_type) {
577
87
        case TYPE_BOOLEAN:
578
87
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.70k
        case TYPE_DATEV2:
580
1.70k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
495
        case TYPE_DATETIMEV2:
582
495
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
3.53k
        case TYPE_TINYINT:
586
3.53k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
311
        case TYPE_SMALLINT:
588
311
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
1.85k
        case TYPE_INT:
590
1.85k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
1.10k
        case TYPE_BIGINT:
592
1.10k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
124
        case TYPE_LARGEINT:
594
124
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
31
        case TYPE_IPV4:
596
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
30
        case TYPE_IPV6:
598
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
115
        case TYPE_FLOAT:
600
115
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
356
        case TYPE_DOUBLE:
602
356
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
4
        case TYPE_TIMEV2:
604
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
170
        case TYPE_DECIMAL32:
607
370
        case TYPE_DECIMAL64:
608
1.35k
        case TYPE_DECIMAL128I:
609
1.38k
        case TYPE_DECIMAL256:
610
1.38k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
1.38k
                                   col_with_type_and_name_right);
612
425
        case TYPE_CHAR:
613
6.01k
        case TYPE_VARCHAR:
614
10.2k
        case TYPE_STRING:
615
10.2k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
17
        default:
617
17
            return execute_generic(block, result, col_with_type_and_name_left,
618
17
                                   col_with_type_and_name_right);
619
21.3k
        }
620
0
        return Status::OK();
621
21.3k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
1.74k
                        uint32_t result, size_t input_rows_count) const override {
524
1.74k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
1.74k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
1.74k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
1.74k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
1.74k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
1.74k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
1.74k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
1.74k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
1.74k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
1.74k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
1.74k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
1.74k
        };
564
565
1.74k
        if (can_compare(left_type->get_primitive_type()) &&
566
1.74k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
1.52k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
1.52k
        }
574
575
1.74k
        auto compare_type = left_type->get_primitive_type();
576
1.74k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
41
        case TYPE_DATEV2:
580
41
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
0
        case TYPE_DATETIMEV2:
582
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
84
        case TYPE_TINYINT:
586
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
0
        case TYPE_SMALLINT:
588
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
751
        case TYPE_INT:
590
751
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
536
        case TYPE_BIGINT:
592
536
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_LARGEINT:
594
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
48
        case TYPE_FLOAT:
600
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
60
        case TYPE_DOUBLE:
602
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
0
        case TYPE_DECIMAL32:
607
61
        case TYPE_DECIMAL64:
608
89
        case TYPE_DECIMAL128I:
609
119
        case TYPE_DECIMAL256:
610
119
            return execute_decimal(block, result, col_with_type_and_name_left,
611
119
                                   col_with_type_and_name_right);
612
1
        case TYPE_CHAR:
613
27
        case TYPE_VARCHAR:
614
100
        case TYPE_STRING:
615
100
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
8
        default:
617
8
            return execute_generic(block, result, col_with_type_and_name_left,
618
8
                                   col_with_type_and_name_right);
619
1.74k
        }
620
0
        return Status::OK();
621
1.74k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
9.90k
                        uint32_t result, size_t input_rows_count) const override {
524
9.90k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
9.90k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
9.90k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
9.90k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
9.90k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
9.90k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
9.90k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
9.90k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
9.90k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
9.90k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
9.90k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
9.90k
        };
564
565
9.90k
        if (can_compare(left_type->get_primitive_type()) &&
566
9.90k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
8.33k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
8.33k
        }
574
575
9.90k
        auto compare_type = left_type->get_primitive_type();
576
9.90k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
986
        case TYPE_DATEV2:
580
986
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
2
        case TYPE_DATETIMEV2:
582
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
769
        case TYPE_TINYINT:
586
769
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
1.03k
        case TYPE_SMALLINT:
588
1.03k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
3.31k
        case TYPE_INT:
590
3.31k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
1.23k
        case TYPE_BIGINT:
592
1.23k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
223
        case TYPE_LARGEINT:
594
223
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
2
        case TYPE_IPV4:
596
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
1
        case TYPE_IPV6:
598
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
220
        case TYPE_FLOAT:
600
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
548
        case TYPE_DOUBLE:
602
548
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
8
        case TYPE_DECIMAL32:
607
64
        case TYPE_DECIMAL64:
608
1.34k
        case TYPE_DECIMAL128I:
609
1.34k
        case TYPE_DECIMAL256:
610
1.34k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
1.34k
                                   col_with_type_and_name_right);
612
21
        case TYPE_CHAR:
613
83
        case TYPE_VARCHAR:
614
214
        case TYPE_STRING:
615
214
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
9
        default:
617
9
            return execute_generic(block, result, col_with_type_and_name_left,
618
9
                                   col_with_type_and_name_right);
619
9.90k
        }
620
0
        return Status::OK();
621
9.90k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
2.56k
                        uint32_t result, size_t input_rows_count) const override {
524
2.56k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
2.56k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
2.56k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
2.56k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
2.56k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
2.56k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
2.56k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
2.56k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
2.56k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
2.56k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
2.56k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
2.56k
        };
564
565
2.56k
        if (can_compare(left_type->get_primitive_type()) &&
566
2.56k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
2.15k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
2.15k
        }
574
575
2.56k
        auto compare_type = left_type->get_primitive_type();
576
2.56k
        switch (compare_type) {
577
36
        case TYPE_BOOLEAN:
578
36
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
496
        case TYPE_DATEV2:
580
496
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
141
        case TYPE_DATETIMEV2:
582
141
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
86
        case TYPE_TINYINT:
586
86
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
88
        case TYPE_SMALLINT:
588
88
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
858
        case TYPE_INT:
590
858
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
159
        case TYPE_BIGINT:
592
159
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
32
        case TYPE_LARGEINT:
594
32
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
11
        case TYPE_IPV4:
596
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
1
        case TYPE_IPV6:
598
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
24
        case TYPE_FLOAT:
600
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
145
        case TYPE_DOUBLE:
602
145
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
1
        case TYPE_DECIMAL32:
607
29
        case TYPE_DECIMAL64:
608
102
        case TYPE_DECIMAL128I:
609
123
        case TYPE_DECIMAL256:
610
123
            return execute_decimal(block, result, col_with_type_and_name_left,
611
123
                                   col_with_type_and_name_right);
612
51
        case TYPE_CHAR:
613
210
        case TYPE_VARCHAR:
614
287
        case TYPE_STRING:
615
287
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
74
        default:
617
74
            return execute_generic(block, result, col_with_type_and_name_left,
618
74
                                   col_with_type_and_name_right);
619
2.56k
        }
620
0
        return Status::OK();
621
2.56k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
7.05k
                        uint32_t result, size_t input_rows_count) const override {
524
7.05k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
7.05k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
7.05k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
7.05k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
7.05k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
7.05k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
7.05k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
7.05k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
7.05k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
7.05k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
7.05k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
7.05k
        };
564
565
7.05k
        if (can_compare(left_type->get_primitive_type()) &&
566
7.05k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
5.64k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
5.64k
        }
574
575
7.05k
        auto compare_type = left_type->get_primitive_type();
576
7.05k
        switch (compare_type) {
577
87
        case TYPE_BOOLEAN:
578
87
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.97k
        case TYPE_DATEV2:
580
1.97k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
341
        case TYPE_DATETIMEV2:
582
341
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
4
        case TYPE_TIMESTAMPTZ:
584
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
868
        case TYPE_TINYINT:
586
868
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
151
        case TYPE_SMALLINT:
588
151
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
669
        case TYPE_INT:
590
669
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
785
        case TYPE_BIGINT:
592
785
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
256
        case TYPE_LARGEINT:
594
256
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
16
        case TYPE_IPV4:
596
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
16
        case TYPE_IPV6:
598
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
151
        case TYPE_FLOAT:
600
151
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
325
        case TYPE_DOUBLE:
602
325
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
207
        case TYPE_DECIMAL32:
607
441
        case TYPE_DECIMAL64:
608
761
        case TYPE_DECIMAL128I:
609
762
        case TYPE_DECIMAL256:
610
762
            return execute_decimal(block, result, col_with_type_and_name_left,
611
762
                                   col_with_type_and_name_right);
612
201
        case TYPE_CHAR:
613
380
        case TYPE_VARCHAR:
614
635
        case TYPE_STRING:
615
635
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
11
        default:
617
11
            return execute_generic(block, result, col_with_type_and_name_left,
618
11
                                   col_with_type_and_name_right);
619
7.05k
        }
620
0
        return Status::OK();
621
7.05k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
7.75k
                        uint32_t result, size_t input_rows_count) const override {
524
7.75k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
7.75k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
7.75k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
7.75k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
7.75k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
7.75k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
7.75k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
7.75k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
7.75k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
7.75k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
7.75k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
7.75k
        };
564
565
7.75k
        if (can_compare(left_type->get_primitive_type()) &&
566
7.75k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
7.42k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
7.42k
        }
574
575
7.75k
        auto compare_type = left_type->get_primitive_type();
576
7.75k
        switch (compare_type) {
577
36
        case TYPE_BOOLEAN:
578
36
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
581
        case TYPE_DATEV2:
580
581
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
42
        case TYPE_DATETIMEV2:
582
42
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
84
        case TYPE_TINYINT:
586
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
118
        case TYPE_SMALLINT:
588
118
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
6.02k
        case TYPE_INT:
590
6.02k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
274
        case TYPE_BIGINT:
592
274
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
38
        case TYPE_LARGEINT:
594
38
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
10
        case TYPE_IPV4:
596
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
20
        case TYPE_FLOAT:
600
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
126
        case TYPE_DOUBLE:
602
126
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
4
        case TYPE_DECIMAL32:
607
34
        case TYPE_DECIMAL64:
608
81
        case TYPE_DECIMAL128I:
609
97
        case TYPE_DECIMAL256:
610
97
            return execute_decimal(block, result, col_with_type_and_name_left,
611
97
                                   col_with_type_and_name_right);
612
46
        case TYPE_CHAR:
613
148
        case TYPE_VARCHAR:
614
227
        case TYPE_STRING:
615
227
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
74
        default:
617
74
            return execute_generic(block, result, col_with_type_and_name_left,
618
74
                                   col_with_type_and_name_right);
619
7.75k
        }
620
0
        return Status::OK();
621
7.75k
    }
622
};
623
624
} // namespace doris