Coverage Report

Created: 2026-03-15 22:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/memcmp_small.h"
38
#include "core/value/vdatetime_value.h"
39
#include "exprs/function/function.h"
40
#include "exprs/function/function_helpers.h"
41
#include "exprs/function/functions_logical.h"
42
#include "storage/index/index_reader_helper.h"
43
44
namespace doris {
45
#include "common/compile_check_begin.h"
46
47
/** Comparison functions: ==, !=, <, >, <=, >=.
48
  * The comparison functions always return 0 or 1 (UInt8).
49
  *
50
  * You can compare the following types:
51
  * - numbers and decimals;
52
  * - strings and fixed strings;
53
  * - dates;
54
  * - datetimes;
55
  *   within each group, but not from different groups;
56
  * - tuples (lexicographic comparison).
57
  *
58
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
59
  */
60
61
template <typename A, typename B, typename Op>
62
struct NumComparisonImpl {
63
    /// If you don't specify NO_INLINE, the compiler will inline this function, but we don't need this as this function contains tight loop inside.
64
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
65
11.4k
                                        PaddedPODArray<UInt8>& c) {
66
11.4k
        size_t size = a.size();
67
11.4k
        const A* __restrict a_pos = a.data();
68
11.4k
        const B* __restrict b_pos = b.data();
69
11.4k
        UInt8* __restrict c_pos = c.data();
70
11.4k
        const A* __restrict a_end = a_pos + size;
71
72
13.8M
        while (a_pos < a_end) {
73
13.8M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13.8M
            ++a_pos;
75
13.8M
            ++b_pos;
76
13.8M
            ++c_pos;
77
13.8M
        }
78
11.4k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
65
                                        PaddedPODArray<UInt8>& c) {
66
65
        size_t size = a.size();
67
65
        const A* __restrict a_pos = a.data();
68
65
        const B* __restrict b_pos = b.data();
69
65
        UInt8* __restrict c_pos = c.data();
70
65
        const A* __restrict a_end = a_pos + size;
71
72
130
        while (a_pos < a_end) {
73
65
            *c_pos = Op::apply(*a_pos, *b_pos);
74
65
            ++a_pos;
75
65
            ++b_pos;
76
65
            ++c_pos;
77
65
        }
78
65
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
248
                                        PaddedPODArray<UInt8>& c) {
66
248
        size_t size = a.size();
67
248
        const A* __restrict a_pos = a.data();
68
248
        const B* __restrict b_pos = b.data();
69
248
        UInt8* __restrict c_pos = c.data();
70
248
        const A* __restrict a_end = a_pos + size;
71
72
502
        while (a_pos < a_end) {
73
254
            *c_pos = Op::apply(*a_pos, *b_pos);
74
254
            ++a_pos;
75
254
            ++b_pos;
76
254
            ++c_pos;
77
254
        }
78
248
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
299
                                        PaddedPODArray<UInt8>& c) {
66
299
        size_t size = a.size();
67
299
        const A* __restrict a_pos = a.data();
68
299
        const B* __restrict b_pos = b.data();
69
299
        UInt8* __restrict c_pos = c.data();
70
299
        const A* __restrict a_end = a_pos + size;
71
72
620
        while (a_pos < a_end) {
73
321
            *c_pos = Op::apply(*a_pos, *b_pos);
74
321
            ++a_pos;
75
321
            ++b_pos;
76
321
            ++c_pos;
77
321
        }
78
299
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
578
                                        PaddedPODArray<UInt8>& c) {
66
578
        size_t size = a.size();
67
578
        const A* __restrict a_pos = a.data();
68
578
        const B* __restrict b_pos = b.data();
69
578
        UInt8* __restrict c_pos = c.data();
70
578
        const A* __restrict a_end = a_pos + size;
71
72
5.38k
        while (a_pos < a_end) {
73
4.80k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.80k
            ++a_pos;
75
4.80k
            ++b_pos;
76
4.80k
            ++c_pos;
77
4.80k
        }
78
578
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
127
                                        PaddedPODArray<UInt8>& c) {
66
127
        size_t size = a.size();
67
127
        const A* __restrict a_pos = a.data();
68
127
        const B* __restrict b_pos = b.data();
69
127
        UInt8* __restrict c_pos = c.data();
70
127
        const A* __restrict a_end = a_pos + size;
71
72
574
        while (a_pos < a_end) {
73
447
            *c_pos = Op::apply(*a_pos, *b_pos);
74
447
            ++a_pos;
75
447
            ++b_pos;
76
447
            ++c_pos;
77
447
        }
78
127
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
279
                                        PaddedPODArray<UInt8>& c) {
66
279
        size_t size = a.size();
67
279
        const A* __restrict a_pos = a.data();
68
279
        const B* __restrict b_pos = b.data();
69
279
        UInt8* __restrict c_pos = c.data();
70
279
        const A* __restrict a_end = a_pos + size;
71
72
1.95k
        while (a_pos < a_end) {
73
1.67k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.67k
            ++a_pos;
75
1.67k
            ++b_pos;
76
1.67k
            ++c_pos;
77
1.67k
        }
78
279
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
265
                                        PaddedPODArray<UInt8>& c) {
66
265
        size_t size = a.size();
67
265
        const A* __restrict a_pos = a.data();
68
265
        const B* __restrict b_pos = b.data();
69
265
        UInt8* __restrict c_pos = c.data();
70
265
        const A* __restrict a_end = a_pos + size;
71
72
11.7k
        while (a_pos < a_end) {
73
11.4k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.4k
            ++a_pos;
75
11.4k
            ++b_pos;
76
11.4k
            ++c_pos;
77
11.4k
        }
78
265
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
106
                                        PaddedPODArray<UInt8>& c) {
66
106
        size_t size = a.size();
67
106
        const A* __restrict a_pos = a.data();
68
106
        const B* __restrict b_pos = b.data();
69
106
        UInt8* __restrict c_pos = c.data();
70
106
        const A* __restrict a_end = a_pos + size;
71
72
237
        while (a_pos < a_end) {
73
131
            *c_pos = Op::apply(*a_pos, *b_pos);
74
131
            ++a_pos;
75
131
            ++b_pos;
76
131
            ++c_pos;
77
131
        }
78
106
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
48
        while (a_pos < a_end) {
73
24
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24
            ++a_pos;
75
24
            ++b_pos;
76
24
            ++c_pos;
77
24
        }
78
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
112
                                        PaddedPODArray<UInt8>& c) {
66
112
        size_t size = a.size();
67
112
        const A* __restrict a_pos = a.data();
68
112
        const B* __restrict b_pos = b.data();
69
112
        UInt8* __restrict c_pos = c.data();
70
112
        const A* __restrict a_end = a_pos + size;
71
72
243
        while (a_pos < a_end) {
73
131
            *c_pos = Op::apply(*a_pos, *b_pos);
74
131
            ++a_pos;
75
131
            ++b_pos;
76
131
            ++c_pos;
77
131
        }
78
112
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
113
                                        PaddedPODArray<UInt8>& c) {
66
113
        size_t size = a.size();
67
113
        const A* __restrict a_pos = a.data();
68
113
        const B* __restrict b_pos = b.data();
69
113
        UInt8* __restrict c_pos = c.data();
70
113
        const A* __restrict a_end = a_pos + size;
71
72
247
        while (a_pos < a_end) {
73
134
            *c_pos = Op::apply(*a_pos, *b_pos);
74
134
            ++a_pos;
75
134
            ++b_pos;
76
134
            ++c_pos;
77
134
        }
78
113
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
4
                                        PaddedPODArray<UInt8>& c) {
66
4
        size_t size = a.size();
67
4
        const A* __restrict a_pos = a.data();
68
4
        const B* __restrict b_pos = b.data();
69
4
        UInt8* __restrict c_pos = c.data();
70
4
        const A* __restrict a_end = a_pos + size;
71
72
8
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
108
        while (a_pos < a_end) {
73
69
            *c_pos = Op::apply(*a_pos, *b_pos);
74
69
            ++a_pos;
75
69
            ++b_pos;
76
69
            ++c_pos;
77
69
        }
78
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
64
                                        PaddedPODArray<UInt8>& c) {
66
64
        size_t size = a.size();
67
64
        const A* __restrict a_pos = a.data();
68
64
        const B* __restrict b_pos = b.data();
69
64
        UInt8* __restrict c_pos = c.data();
70
64
        const A* __restrict a_end = a_pos + size;
71
72
288
        while (a_pos < a_end) {
73
224
            *c_pos = Op::apply(*a_pos, *b_pos);
74
224
            ++a_pos;
75
224
            ++b_pos;
76
224
            ++c_pos;
77
224
        }
78
64
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
820
                                        PaddedPODArray<UInt8>& c) {
66
820
        size_t size = a.size();
67
820
        const A* __restrict a_pos = a.data();
68
820
        const B* __restrict b_pos = b.data();
69
820
        UInt8* __restrict c_pos = c.data();
70
820
        const A* __restrict a_end = a_pos + size;
71
72
1.67M
        while (a_pos < a_end) {
73
1.67M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.67M
            ++a_pos;
75
1.67M
            ++b_pos;
76
1.67M
            ++c_pos;
77
1.67M
        }
78
820
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
375
                                        PaddedPODArray<UInt8>& c) {
66
375
        size_t size = a.size();
67
375
        const A* __restrict a_pos = a.data();
68
375
        const B* __restrict b_pos = b.data();
69
375
        UInt8* __restrict c_pos = c.data();
70
375
        const A* __restrict a_end = a_pos + size;
71
72
39.4k
        while (a_pos < a_end) {
73
39.1k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39.1k
            ++a_pos;
75
39.1k
            ++b_pos;
76
39.1k
            ++c_pos;
77
39.1k
        }
78
375
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
932
                                        PaddedPODArray<UInt8>& c) {
66
932
        size_t size = a.size();
67
932
        const A* __restrict a_pos = a.data();
68
932
        const B* __restrict b_pos = b.data();
69
932
        UInt8* __restrict c_pos = c.data();
70
932
        const A* __restrict a_end = a_pos + size;
71
72
4.88M
        while (a_pos < a_end) {
73
4.88M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.88M
            ++a_pos;
75
4.88M
            ++b_pos;
76
4.88M
            ++c_pos;
77
4.88M
        }
78
932
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
209
                                        PaddedPODArray<UInt8>& c) {
66
209
        size_t size = a.size();
67
209
        const A* __restrict a_pos = a.data();
68
209
        const B* __restrict b_pos = b.data();
69
209
        UInt8* __restrict c_pos = c.data();
70
209
        const A* __restrict a_end = a_pos + size;
71
72
2.37k
        while (a_pos < a_end) {
73
2.16k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.16k
            ++a_pos;
75
2.16k
            ++b_pos;
76
2.16k
            ++c_pos;
77
2.16k
        }
78
209
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
425
                                        PaddedPODArray<UInt8>& c) {
66
425
        size_t size = a.size();
67
425
        const A* __restrict a_pos = a.data();
68
425
        const B* __restrict b_pos = b.data();
69
425
        UInt8* __restrict c_pos = c.data();
70
425
        const A* __restrict a_end = a_pos + size;
71
72
4.74k
        while (a_pos < a_end) {
73
4.32k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.32k
            ++a_pos;
75
4.32k
            ++b_pos;
76
4.32k
            ++c_pos;
77
4.32k
        }
78
425
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1.79k
                                        PaddedPODArray<UInt8>& c) {
66
1.79k
        size_t size = a.size();
67
1.79k
        const A* __restrict a_pos = a.data();
68
1.79k
        const B* __restrict b_pos = b.data();
69
1.79k
        UInt8* __restrict c_pos = c.data();
70
1.79k
        const A* __restrict a_end = a_pos + size;
71
72
5.40M
        while (a_pos < a_end) {
73
5.40M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.40M
            ++a_pos;
75
5.40M
            ++b_pos;
76
5.40M
            ++c_pos;
77
5.40M
        }
78
1.79k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
118
                                        PaddedPODArray<UInt8>& c) {
66
118
        size_t size = a.size();
67
118
        const A* __restrict a_pos = a.data();
68
118
        const B* __restrict b_pos = b.data();
69
118
        UInt8* __restrict c_pos = c.data();
70
118
        const A* __restrict a_end = a_pos + size;
71
72
1.60k
        while (a_pos < a_end) {
73
1.49k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.49k
            ++a_pos;
75
1.49k
            ++b_pos;
76
1.49k
            ++c_pos;
77
1.49k
        }
78
118
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
37
                                        PaddedPODArray<UInt8>& c) {
66
37
        size_t size = a.size();
67
37
        const A* __restrict a_pos = a.data();
68
37
        const B* __restrict b_pos = b.data();
69
37
        UInt8* __restrict c_pos = c.data();
70
37
        const A* __restrict a_end = a_pos + size;
71
72
195
        while (a_pos < a_end) {
73
158
            *c_pos = Op::apply(*a_pos, *b_pos);
74
158
            ++a_pos;
75
158
            ++b_pos;
76
158
            ++c_pos;
77
158
        }
78
37
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
42
                                        PaddedPODArray<UInt8>& c) {
66
42
        size_t size = a.size();
67
42
        const A* __restrict a_pos = a.data();
68
42
        const B* __restrict b_pos = b.data();
69
42
        UInt8* __restrict c_pos = c.data();
70
42
        const A* __restrict a_end = a_pos + size;
71
72
140
        while (a_pos < a_end) {
73
98
            *c_pos = Op::apply(*a_pos, *b_pos);
74
98
            ++a_pos;
75
98
            ++b_pos;
76
98
            ++c_pos;
77
98
        }
78
42
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
38
        while (a_pos < a_end) {
73
31
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31
            ++a_pos;
75
31
            ++b_pos;
76
31
            ++c_pos;
77
31
        }
78
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
101
        while (a_pos < a_end) {
73
91
            *c_pos = Op::apply(*a_pos, *b_pos);
74
91
            ++a_pos;
75
91
            ++b_pos;
76
91
            ++c_pos;
77
91
        }
78
10
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
5
                                        PaddedPODArray<UInt8>& c) {
66
5
        size_t size = a.size();
67
5
        const A* __restrict a_pos = a.data();
68
5
        const B* __restrict b_pos = b.data();
69
5
        UInt8* __restrict c_pos = c.data();
70
5
        const A* __restrict a_end = a_pos + size;
71
72
21
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
5
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
17
                                        PaddedPODArray<UInt8>& c) {
66
17
        size_t size = a.size();
67
17
        const A* __restrict a_pos = a.data();
68
17
        const B* __restrict b_pos = b.data();
69
17
        UInt8* __restrict c_pos = c.data();
70
17
        const A* __restrict a_end = a_pos + size;
71
72
127
        while (a_pos < a_end) {
73
110
            *c_pos = Op::apply(*a_pos, *b_pos);
74
110
            ++a_pos;
75
110
            ++b_pos;
76
110
            ++c_pos;
77
110
        }
78
17
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
35
                                        PaddedPODArray<UInt8>& c) {
66
35
        size_t size = a.size();
67
35
        const A* __restrict a_pos = a.data();
68
35
        const B* __restrict b_pos = b.data();
69
35
        UInt8* __restrict c_pos = c.data();
70
35
        const A* __restrict a_end = a_pos + size;
71
72
141
        while (a_pos < a_end) {
73
106
            *c_pos = Op::apply(*a_pos, *b_pos);
74
106
            ++a_pos;
75
106
            ++b_pos;
76
106
            ++c_pos;
77
106
        }
78
35
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
71
                                        PaddedPODArray<UInt8>& c) {
66
71
        size_t size = a.size();
67
71
        const A* __restrict a_pos = a.data();
68
71
        const B* __restrict b_pos = b.data();
69
71
        UInt8* __restrict c_pos = c.data();
70
71
        const A* __restrict a_end = a_pos + size;
71
72
142
        while (a_pos < a_end) {
73
71
            *c_pos = Op::apply(*a_pos, *b_pos);
74
71
            ++a_pos;
75
71
            ++b_pos;
76
71
            ++c_pos;
77
71
        }
78
71
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.73k
                                        PaddedPODArray<UInt8>& c) {
66
1.73k
        size_t size = a.size();
67
1.73k
        const A* __restrict a_pos = a.data();
68
1.73k
        const B* __restrict b_pos = b.data();
69
1.73k
        UInt8* __restrict c_pos = c.data();
70
1.73k
        const A* __restrict a_end = a_pos + size;
71
72
1.78M
        while (a_pos < a_end) {
73
1.77M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.77M
            ++a_pos;
75
1.77M
            ++b_pos;
76
1.77M
            ++c_pos;
77
1.77M
        }
78
1.73k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
238
                                        PaddedPODArray<UInt8>& c) {
66
238
        size_t size = a.size();
67
238
        const A* __restrict a_pos = a.data();
68
238
        const B* __restrict b_pos = b.data();
69
238
        UInt8* __restrict c_pos = c.data();
70
238
        const A* __restrict a_end = a_pos + size;
71
72
476
        while (a_pos < a_end) {
73
238
            *c_pos = Op::apply(*a_pos, *b_pos);
74
238
            ++a_pos;
75
238
            ++b_pos;
76
238
            ++c_pos;
77
238
        }
78
238
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
506
                                        PaddedPODArray<UInt8>& c) {
66
506
        size_t size = a.size();
67
506
        const A* __restrict a_pos = a.data();
68
506
        const B* __restrict b_pos = b.data();
69
506
        UInt8* __restrict c_pos = c.data();
70
506
        const A* __restrict a_end = a_pos + size;
71
72
4.75k
        while (a_pos < a_end) {
73
4.25k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.25k
            ++a_pos;
75
4.25k
            ++b_pos;
76
4.25k
            ++c_pos;
77
4.25k
        }
78
506
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
121
                                        PaddedPODArray<UInt8>& c) {
66
121
        size_t size = a.size();
67
121
        const A* __restrict a_pos = a.data();
68
121
        const B* __restrict b_pos = b.data();
69
121
        UInt8* __restrict c_pos = c.data();
70
121
        const A* __restrict a_end = a_pos + size;
71
72
244
        while (a_pos < a_end) {
73
123
            *c_pos = Op::apply(*a_pos, *b_pos);
74
123
            ++a_pos;
75
123
            ++b_pos;
76
123
            ++c_pos;
77
123
        }
78
121
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
179
                                        PaddedPODArray<UInt8>& c) {
66
179
        size_t size = a.size();
67
179
        const A* __restrict a_pos = a.data();
68
179
        const B* __restrict b_pos = b.data();
69
179
        UInt8* __restrict c_pos = c.data();
70
179
        const A* __restrict a_end = a_pos + size;
71
72
833
        while (a_pos < a_end) {
73
654
            *c_pos = Op::apply(*a_pos, *b_pos);
74
654
            ++a_pos;
75
654
            ++b_pos;
76
654
            ++c_pos;
77
654
        }
78
179
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
226
                                        PaddedPODArray<UInt8>& c) {
66
226
        size_t size = a.size();
67
226
        const A* __restrict a_pos = a.data();
68
226
        const B* __restrict b_pos = b.data();
69
226
        UInt8* __restrict c_pos = c.data();
70
226
        const A* __restrict a_end = a_pos + size;
71
72
5.73k
        while (a_pos < a_end) {
73
5.50k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.50k
            ++a_pos;
75
5.50k
            ++b_pos;
76
5.50k
            ++c_pos;
77
5.50k
        }
78
226
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
189
                                        PaddedPODArray<UInt8>& c) {
66
189
        size_t size = a.size();
67
189
        const A* __restrict a_pos = a.data();
68
189
        const B* __restrict b_pos = b.data();
69
189
        UInt8* __restrict c_pos = c.data();
70
189
        const A* __restrict a_end = a_pos + size;
71
72
526
        while (a_pos < a_end) {
73
337
            *c_pos = Op::apply(*a_pos, *b_pos);
74
337
            ++a_pos;
75
337
            ++b_pos;
76
337
            ++c_pos;
77
337
        }
78
189
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
128
                                        PaddedPODArray<UInt8>& c) {
66
128
        size_t size = a.size();
67
128
        const A* __restrict a_pos = a.data();
68
128
        const B* __restrict b_pos = b.data();
69
128
        UInt8* __restrict c_pos = c.data();
70
128
        const A* __restrict a_end = a_pos + size;
71
72
275
        while (a_pos < a_end) {
73
147
            *c_pos = Op::apply(*a_pos, *b_pos);
74
147
            ++a_pos;
75
147
            ++b_pos;
76
147
            ++c_pos;
77
147
        }
78
128
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
152
                                        PaddedPODArray<UInt8>& c) {
66
152
        size_t size = a.size();
67
152
        const A* __restrict a_pos = a.data();
68
152
        const B* __restrict b_pos = b.data();
69
152
        UInt8* __restrict c_pos = c.data();
70
152
        const A* __restrict a_end = a_pos + size;
71
72
341
        while (a_pos < a_end) {
73
189
            *c_pos = Op::apply(*a_pos, *b_pos);
74
189
            ++a_pos;
75
189
            ++b_pos;
76
189
            ++c_pos;
77
189
        }
78
152
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
421
                                        PaddedPODArray<UInt8>& c) {
66
421
        size_t size = a.size();
67
421
        const A* __restrict a_pos = a.data();
68
421
        const B* __restrict b_pos = b.data();
69
421
        UInt8* __restrict c_pos = c.data();
70
421
        const A* __restrict a_end = a_pos + size;
71
72
6.67k
        while (a_pos < a_end) {
73
6.25k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.25k
            ++a_pos;
75
6.25k
            ++b_pos;
76
6.25k
            ++c_pos;
77
6.25k
        }
78
421
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
5
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
50
                                        PaddedPODArray<UInt8>& c) {
66
50
        size_t size = a.size();
67
50
        const A* __restrict a_pos = a.data();
68
50
        const B* __restrict b_pos = b.data();
69
50
        UInt8* __restrict c_pos = c.data();
70
50
        const A* __restrict a_end = a_pos + size;
71
72
996
        while (a_pos < a_end) {
73
946
            *c_pos = Op::apply(*a_pos, *b_pos);
74
946
            ++a_pos;
75
946
            ++b_pos;
76
946
            ++c_pos;
77
946
        }
78
50
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
72
                                        PaddedPODArray<UInt8>& c) {
66
72
        size_t size = a.size();
67
72
        const A* __restrict a_pos = a.data();
68
72
        const B* __restrict b_pos = b.data();
69
72
        UInt8* __restrict c_pos = c.data();
70
72
        const A* __restrict a_end = a_pos + size;
71
72
338
        while (a_pos < a_end) {
73
266
            *c_pos = Op::apply(*a_pos, *b_pos);
74
266
            ++a_pos;
75
266
            ++b_pos;
76
266
            ++c_pos;
77
266
        }
78
72
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
79
80
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
81
16.1k
                                          PaddedPODArray<UInt8>& c) {
82
16.1k
        size_t size = a.size();
83
16.1k
        const A* __restrict a_pos = a.data();
84
16.1k
        UInt8* __restrict c_pos = c.data();
85
16.1k
        const A* __restrict a_end = a_pos + size;
86
87
22.8M
        while (a_pos < a_end) {
88
22.8M
            *c_pos = Op::apply(*a_pos, b);
89
22.8M
            ++a_pos;
90
22.8M
            ++c_pos;
91
22.8M
        }
92
16.1k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
24
                                          PaddedPODArray<UInt8>& c) {
82
24
        size_t size = a.size();
83
24
        const A* __restrict a_pos = a.data();
84
24
        UInt8* __restrict c_pos = c.data();
85
24
        const A* __restrict a_end = a_pos + size;
86
87
167
        while (a_pos < a_end) {
88
143
            *c_pos = Op::apply(*a_pos, b);
89
143
            ++a_pos;
90
143
            ++c_pos;
91
143
        }
92
24
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
328
                                          PaddedPODArray<UInt8>& c) {
82
328
        size_t size = a.size();
83
328
        const A* __restrict a_pos = a.data();
84
328
        UInt8* __restrict c_pos = c.data();
85
328
        const A* __restrict a_end = a_pos + size;
86
87
202k
        while (a_pos < a_end) {
88
201k
            *c_pos = Op::apply(*a_pos, b);
89
201k
            ++a_pos;
90
201k
            ++c_pos;
91
201k
        }
92
328
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
242
                                          PaddedPODArray<UInt8>& c) {
82
242
        size_t size = a.size();
83
242
        const A* __restrict a_pos = a.data();
84
242
        UInt8* __restrict c_pos = c.data();
85
242
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
242
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.60k
                                          PaddedPODArray<UInt8>& c) {
82
2.60k
        size_t size = a.size();
83
2.60k
        const A* __restrict a_pos = a.data();
84
2.60k
        UInt8* __restrict c_pos = c.data();
85
2.60k
        const A* __restrict a_end = a_pos + size;
86
87
8.98M
        while (a_pos < a_end) {
88
8.98M
            *c_pos = Op::apply(*a_pos, b);
89
8.98M
            ++a_pos;
90
8.98M
            ++c_pos;
91
8.98M
        }
92
2.60k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
301
                                          PaddedPODArray<UInt8>& c) {
82
301
        size_t size = a.size();
83
301
        const A* __restrict a_pos = a.data();
84
301
        UInt8* __restrict c_pos = c.data();
85
301
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
301
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.56k
                                          PaddedPODArray<UInt8>& c) {
82
1.56k
        size_t size = a.size();
83
1.56k
        const A* __restrict a_pos = a.data();
84
1.56k
        UInt8* __restrict c_pos = c.data();
85
1.56k
        const A* __restrict a_end = a_pos + size;
86
87
219k
        while (a_pos < a_end) {
88
217k
            *c_pos = Op::apply(*a_pos, b);
89
217k
            ++a_pos;
90
217k
            ++c_pos;
91
217k
        }
92
1.56k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
737
                                          PaddedPODArray<UInt8>& c) {
82
737
        size_t size = a.size();
83
737
        const A* __restrict a_pos = a.data();
84
737
        UInt8* __restrict c_pos = c.data();
85
737
        const A* __restrict a_end = a_pos + size;
86
87
351k
        while (a_pos < a_end) {
88
350k
            *c_pos = Op::apply(*a_pos, b);
89
350k
            ++a_pos;
90
350k
            ++c_pos;
91
350k
        }
92
737
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
24
                                          PaddedPODArray<UInt8>& c) {
82
24
        size_t size = a.size();
83
24
        const A* __restrict a_pos = a.data();
84
24
        UInt8* __restrict c_pos = c.data();
85
24
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
24
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
14
                                          PaddedPODArray<UInt8>& c) {
82
14
        size_t size = a.size();
83
14
        const A* __restrict a_pos = a.data();
84
14
        UInt8* __restrict c_pos = c.data();
85
14
        const A* __restrict a_end = a_pos + size;
86
87
128
        while (a_pos < a_end) {
88
114
            *c_pos = Op::apply(*a_pos, b);
89
114
            ++a_pos;
90
114
            ++c_pos;
91
114
        }
92
14
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
153
                                          PaddedPODArray<UInt8>& c) {
82
153
        size_t size = a.size();
83
153
        const A* __restrict a_pos = a.data();
84
153
        UInt8* __restrict c_pos = c.data();
85
153
        const A* __restrict a_end = a_pos + size;
86
87
700k
        while (a_pos < a_end) {
88
700k
            *c_pos = Op::apply(*a_pos, b);
89
700k
            ++a_pos;
90
700k
            ++c_pos;
91
700k
        }
92
153
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
5
        while (a_pos < a_end) {
88
3
            *c_pos = Op::apply(*a_pos, b);
89
3
            ++a_pos;
90
3
            ++c_pos;
91
3
        }
92
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
28
                                          PaddedPODArray<UInt8>& c) {
82
28
        size_t size = a.size();
83
28
        const A* __restrict a_pos = a.data();
84
28
        UInt8* __restrict c_pos = c.data();
85
28
        const A* __restrict a_end = a_pos + size;
86
87
78
        while (a_pos < a_end) {
88
50
            *c_pos = Op::apply(*a_pos, b);
89
50
            ++a_pos;
90
50
            ++c_pos;
91
50
        }
92
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
63
                                          PaddedPODArray<UInt8>& c) {
82
63
        size_t size = a.size();
83
63
        const A* __restrict a_pos = a.data();
84
63
        UInt8* __restrict c_pos = c.data();
85
63
        const A* __restrict a_end = a_pos + size;
86
87
425
        while (a_pos < a_end) {
88
362
            *c_pos = Op::apply(*a_pos, b);
89
362
            ++a_pos;
90
362
            ++c_pos;
91
362
        }
92
63
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
22
                                          PaddedPODArray<UInt8>& c) {
82
22
        size_t size = a.size();
83
22
        const A* __restrict a_pos = a.data();
84
22
        UInt8* __restrict c_pos = c.data();
85
22
        const A* __restrict a_end = a_pos + size;
86
87
1.06k
        while (a_pos < a_end) {
88
1.04k
            *c_pos = Op::apply(*a_pos, b);
89
1.04k
            ++a_pos;
90
1.04k
            ++c_pos;
91
1.04k
        }
92
22
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
80
        while (a_pos < a_end) {
88
48
            *c_pos = Op::apply(*a_pos, b);
89
48
            ++a_pos;
90
48
            ++c_pos;
91
48
        }
92
32
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
52
                                          PaddedPODArray<UInt8>& c) {
82
52
        size_t size = a.size();
83
52
        const A* __restrict a_pos = a.data();
84
52
        UInt8* __restrict c_pos = c.data();
85
52
        const A* __restrict a_end = a_pos + size;
86
87
312
        while (a_pos < a_end) {
88
260
            *c_pos = Op::apply(*a_pos, b);
89
260
            ++a_pos;
90
260
            ++c_pos;
91
260
        }
92
52
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
10
            *c_pos = Op::apply(*a_pos, b);
89
10
            ++a_pos;
90
10
            ++c_pos;
91
10
        }
92
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
328
                                          PaddedPODArray<UInt8>& c) {
82
328
        size_t size = a.size();
83
328
        const A* __restrict a_pos = a.data();
84
328
        UInt8* __restrict c_pos = c.data();
85
328
        const A* __restrict a_end = a_pos + size;
86
87
1.34M
        while (a_pos < a_end) {
88
1.34M
            *c_pos = Op::apply(*a_pos, b);
89
1.34M
            ++a_pos;
90
1.34M
            ++c_pos;
91
1.34M
        }
92
328
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
6
        while (a_pos < a_end) {
88
4
            *c_pos = Op::apply(*a_pos, b);
89
4
            ++a_pos;
90
4
            ++c_pos;
91
4
        }
92
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
59
                                          PaddedPODArray<UInt8>& c) {
82
59
        size_t size = a.size();
83
59
        const A* __restrict a_pos = a.data();
84
59
        UInt8* __restrict c_pos = c.data();
85
59
        const A* __restrict a_end = a_pos + size;
86
87
269
        while (a_pos < a_end) {
88
210
            *c_pos = Op::apply(*a_pos, b);
89
210
            ++a_pos;
90
210
            ++c_pos;
91
210
        }
92
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
8
        while (a_pos < a_end) {
88
7
            *c_pos = Op::apply(*a_pos, b);
89
7
            ++a_pos;
90
7
            ++c_pos;
91
7
        }
92
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
410
                                          PaddedPODArray<UInt8>& c) {
82
410
        size_t size = a.size();
83
410
        const A* __restrict a_pos = a.data();
84
410
        UInt8* __restrict c_pos = c.data();
85
410
        const A* __restrict a_end = a_pos + size;
86
87
4.20k
        while (a_pos < a_end) {
88
3.79k
            *c_pos = Op::apply(*a_pos, b);
89
3.79k
            ++a_pos;
90
3.79k
            ++c_pos;
91
3.79k
        }
92
410
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
34
                                          PaddedPODArray<UInt8>& c) {
82
34
        size_t size = a.size();
83
34
        const A* __restrict a_pos = a.data();
84
34
        UInt8* __restrict c_pos = c.data();
85
34
        const A* __restrict a_end = a_pos + size;
86
87
132
        while (a_pos < a_end) {
88
98
            *c_pos = Op::apply(*a_pos, b);
89
98
            ++a_pos;
90
98
            ++c_pos;
91
98
        }
92
34
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
413
                                          PaddedPODArray<UInt8>& c) {
82
413
        size_t size = a.size();
83
413
        const A* __restrict a_pos = a.data();
84
413
        UInt8* __restrict c_pos = c.data();
85
413
        const A* __restrict a_end = a_pos + size;
86
87
3.65k
        while (a_pos < a_end) {
88
3.24k
            *c_pos = Op::apply(*a_pos, b);
89
3.24k
            ++a_pos;
90
3.24k
            ++c_pos;
91
3.24k
        }
92
413
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20
                                          PaddedPODArray<UInt8>& c) {
82
20
        size_t size = a.size();
83
20
        const A* __restrict a_pos = a.data();
84
20
        UInt8* __restrict c_pos = c.data();
85
20
        const A* __restrict a_end = a_pos + size;
86
87
49
        while (a_pos < a_end) {
88
29
            *c_pos = Op::apply(*a_pos, b);
89
29
            ++a_pos;
90
29
            ++c_pos;
91
29
        }
92
20
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.77k
                                          PaddedPODArray<UInt8>& c) {
82
1.77k
        size_t size = a.size();
83
1.77k
        const A* __restrict a_pos = a.data();
84
1.77k
        UInt8* __restrict c_pos = c.data();
85
1.77k
        const A* __restrict a_end = a_pos + size;
86
87
14.7k
        while (a_pos < a_end) {
88
13.0k
            *c_pos = Op::apply(*a_pos, b);
89
13.0k
            ++a_pos;
90
13.0k
            ++c_pos;
91
13.0k
        }
92
1.77k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
535
                                          PaddedPODArray<UInt8>& c) {
82
535
        size_t size = a.size();
83
535
        const A* __restrict a_pos = a.data();
84
535
        UInt8* __restrict c_pos = c.data();
85
535
        const A* __restrict a_end = a_pos + size;
86
87
3.28k
        while (a_pos < a_end) {
88
2.75k
            *c_pos = Op::apply(*a_pos, b);
89
2.75k
            ++a_pos;
90
2.75k
            ++c_pos;
91
2.75k
        }
92
535
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.09k
                                          PaddedPODArray<UInt8>& c) {
82
1.09k
        size_t size = a.size();
83
1.09k
        const A* __restrict a_pos = a.data();
84
1.09k
        UInt8* __restrict c_pos = c.data();
85
1.09k
        const A* __restrict a_end = a_pos + size;
86
87
122k
        while (a_pos < a_end) {
88
121k
            *c_pos = Op::apply(*a_pos, b);
89
121k
            ++a_pos;
90
121k
            ++c_pos;
91
121k
        }
92
1.09k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
498
                                          PaddedPODArray<UInt8>& c) {
82
498
        size_t size = a.size();
83
498
        const A* __restrict a_pos = a.data();
84
498
        UInt8* __restrict c_pos = c.data();
85
498
        const A* __restrict a_end = a_pos + size;
86
87
1.49k
        while (a_pos < a_end) {
88
1.00k
            *c_pos = Op::apply(*a_pos, b);
89
1.00k
            ++a_pos;
90
1.00k
            ++c_pos;
91
1.00k
        }
92
498
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
206
                                          PaddedPODArray<UInt8>& c) {
82
206
        size_t size = a.size();
83
206
        const A* __restrict a_pos = a.data();
84
206
        UInt8* __restrict c_pos = c.data();
85
206
        const A* __restrict a_end = a_pos + size;
86
87
1.75k
        while (a_pos < a_end) {
88
1.54k
            *c_pos = Op::apply(*a_pos, b);
89
1.54k
            ++a_pos;
90
1.54k
            ++c_pos;
91
1.54k
        }
92
206
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
33
                                          PaddedPODArray<UInt8>& c) {
82
33
        size_t size = a.size();
83
33
        const A* __restrict a_pos = a.data();
84
33
        UInt8* __restrict c_pos = c.data();
85
33
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
33
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
9
        while (a_pos < a_end) {
88
8
            *c_pos = Op::apply(*a_pos, b);
89
8
            ++a_pos;
90
8
            ++c_pos;
91
8
        }
92
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
208
                                          PaddedPODArray<UInt8>& c) {
82
208
        size_t size = a.size();
83
208
        const A* __restrict a_pos = a.data();
84
208
        UInt8* __restrict c_pos = c.data();
85
208
        const A* __restrict a_end = a_pos + size;
86
87
2.62k
        while (a_pos < a_end) {
88
2.42k
            *c_pos = Op::apply(*a_pos, b);
89
2.42k
            ++a_pos;
90
2.42k
            ++c_pos;
91
2.42k
        }
92
208
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
11
        while (a_pos < a_end) {
88
10
            *c_pos = Op::apply(*a_pos, b);
89
10
            ++a_pos;
90
10
            ++c_pos;
91
10
        }
92
1
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
514
                                          PaddedPODArray<UInt8>& c) {
82
514
        size_t size = a.size();
83
514
        const A* __restrict a_pos = a.data();
84
514
        UInt8* __restrict c_pos = c.data();
85
514
        const A* __restrict a_end = a_pos + size;
86
87
7.50k
        while (a_pos < a_end) {
88
6.98k
            *c_pos = Op::apply(*a_pos, b);
89
6.98k
            ++a_pos;
90
6.98k
            ++c_pos;
91
6.98k
        }
92
514
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
184
                                          PaddedPODArray<UInt8>& c) {
82
184
        size_t size = a.size();
83
184
        const A* __restrict a_pos = a.data();
84
184
        UInt8* __restrict c_pos = c.data();
85
184
        const A* __restrict a_end = a_pos + size;
86
87
282k
        while (a_pos < a_end) {
88
282k
            *c_pos = Op::apply(*a_pos, b);
89
282k
            ++a_pos;
90
282k
            ++c_pos;
91
282k
        }
92
184
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
7
                                          PaddedPODArray<UInt8>& c) {
82
7
        size_t size = a.size();
83
7
        const A* __restrict a_pos = a.data();
84
7
        UInt8* __restrict c_pos = c.data();
85
7
        const A* __restrict a_end = a_pos + size;
86
87
13.2k
        while (a_pos < a_end) {
88
13.2k
            *c_pos = Op::apply(*a_pos, b);
89
13.2k
            ++a_pos;
90
13.2k
            ++c_pos;
91
13.2k
        }
92
7
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
13
                                          PaddedPODArray<UInt8>& c) {
82
13
        size_t size = a.size();
83
13
        const A* __restrict a_pos = a.data();
84
13
        UInt8* __restrict c_pos = c.data();
85
13
        const A* __restrict a_end = a_pos + size;
86
87
36.8k
        while (a_pos < a_end) {
88
36.8k
            *c_pos = Op::apply(*a_pos, b);
89
36.8k
            ++a_pos;
90
36.8k
            ++c_pos;
91
36.8k
        }
92
13
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
509
                                          PaddedPODArray<UInt8>& c) {
82
509
        size_t size = a.size();
83
509
        const A* __restrict a_pos = a.data();
84
509
        UInt8* __restrict c_pos = c.data();
85
509
        const A* __restrict a_end = a_pos + size;
86
87
1.42M
        while (a_pos < a_end) {
88
1.42M
            *c_pos = Op::apply(*a_pos, b);
89
1.42M
            ++a_pos;
90
1.42M
            ++c_pos;
91
1.42M
        }
92
509
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
124
                                          PaddedPODArray<UInt8>& c) {
82
124
        size_t size = a.size();
83
124
        const A* __restrict a_pos = a.data();
84
124
        UInt8* __restrict c_pos = c.data();
85
124
        const A* __restrict a_end = a_pos + size;
86
87
629k
        while (a_pos < a_end) {
88
629k
            *c_pos = Op::apply(*a_pos, b);
89
629k
            ++a_pos;
90
629k
            ++c_pos;
91
629k
        }
92
124
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
136
                                          PaddedPODArray<UInt8>& c) {
82
136
        size_t size = a.size();
83
136
        const A* __restrict a_pos = a.data();
84
136
        UInt8* __restrict c_pos = c.data();
85
136
        const A* __restrict a_end = a_pos + size;
86
87
511
        while (a_pos < a_end) {
88
375
            *c_pos = Op::apply(*a_pos, b);
89
375
            ++a_pos;
90
375
            ++c_pos;
91
375
        }
92
136
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
43
                                          PaddedPODArray<UInt8>& c) {
82
43
        size_t size = a.size();
83
43
        const A* __restrict a_pos = a.data();
84
43
        UInt8* __restrict c_pos = c.data();
85
43
        const A* __restrict a_end = a_pos + size;
86
87
90
        while (a_pos < a_end) {
88
47
            *c_pos = Op::apply(*a_pos, b);
89
47
            ++a_pos;
90
47
            ++c_pos;
91
47
        }
92
43
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
71
                                          PaddedPODArray<UInt8>& c) {
82
71
        size_t size = a.size();
83
71
        const A* __restrict a_pos = a.data();
84
71
        UInt8* __restrict c_pos = c.data();
85
71
        const A* __restrict a_end = a_pos + size;
86
87
16.7k
        while (a_pos < a_end) {
88
16.6k
            *c_pos = Op::apply(*a_pos, b);
89
16.6k
            ++a_pos;
90
16.6k
            ++c_pos;
91
16.6k
        }
92
71
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
126
                                          PaddedPODArray<UInt8>& c) {
82
126
        size_t size = a.size();
83
126
        const A* __restrict a_pos = a.data();
84
126
        UInt8* __restrict c_pos = c.data();
85
126
        const A* __restrict a_end = a_pos + size;
86
87
144k
        while (a_pos < a_end) {
88
144k
            *c_pos = Op::apply(*a_pos, b);
89
144k
            ++a_pos;
90
144k
            ++c_pos;
91
144k
        }
92
126
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
143
                                          PaddedPODArray<UInt8>& c) {
82
143
        size_t size = a.size();
83
143
        const A* __restrict a_pos = a.data();
84
143
        UInt8* __restrict c_pos = c.data();
85
143
        const A* __restrict a_end = a_pos + size;
86
87
47.1k
        while (a_pos < a_end) {
88
47.0k
            *c_pos = Op::apply(*a_pos, b);
89
47.0k
            ++a_pos;
90
47.0k
            ++c_pos;
91
47.0k
        }
92
143
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
209
                                          PaddedPODArray<UInt8>& c) {
82
209
        size_t size = a.size();
83
209
        const A* __restrict a_pos = a.data();
84
209
        UInt8* __restrict c_pos = c.data();
85
209
        const A* __restrict a_end = a_pos + size;
86
87
21.2k
        while (a_pos < a_end) {
88
21.0k
            *c_pos = Op::apply(*a_pos, b);
89
21.0k
            ++a_pos;
90
21.0k
            ++c_pos;
91
21.0k
        }
92
209
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
801
                                          PaddedPODArray<UInt8>& c) {
82
801
        size_t size = a.size();
83
801
        const A* __restrict a_pos = a.data();
84
801
        UInt8* __restrict c_pos = c.data();
85
801
        const A* __restrict a_end = a_pos + size;
86
87
3.62M
        while (a_pos < a_end) {
88
3.62M
            *c_pos = Op::apply(*a_pos, b);
89
3.62M
            ++a_pos;
90
3.62M
            ++c_pos;
91
3.62M
        }
92
801
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
800
                                          PaddedPODArray<UInt8>& c) {
82
800
        size_t size = a.size();
83
800
        const A* __restrict a_pos = a.data();
84
800
        UInt8* __restrict c_pos = c.data();
85
800
        const A* __restrict a_end = a_pos + size;
86
87
3.54M
        while (a_pos < a_end) {
88
3.54M
            *c_pos = Op::apply(*a_pos, b);
89
3.54M
            ++a_pos;
90
3.54M
            ++c_pos;
91
3.54M
        }
92
800
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
145
                                          PaddedPODArray<UInt8>& c) {
82
145
        size_t size = a.size();
83
145
        const A* __restrict a_pos = a.data();
84
145
        UInt8* __restrict c_pos = c.data();
85
145
        const A* __restrict a_end = a_pos + size;
86
87
5.51k
        while (a_pos < a_end) {
88
5.37k
            *c_pos = Op::apply(*a_pos, b);
89
5.37k
            ++a_pos;
90
5.37k
            ++c_pos;
91
5.37k
        }
92
145
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
222
                                          PaddedPODArray<UInt8>& c) {
82
222
        size_t size = a.size();
83
222
        const A* __restrict a_pos = a.data();
84
222
        UInt8* __restrict c_pos = c.data();
85
222
        const A* __restrict a_end = a_pos + size;
86
87
2.22k
        while (a_pos < a_end) {
88
2.00k
            *c_pos = Op::apply(*a_pos, b);
89
2.00k
            ++a_pos;
90
2.00k
            ++c_pos;
91
2.00k
        }
92
222
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
11
                                          PaddedPODArray<UInt8>& c) {
82
11
        size_t size = a.size();
83
11
        const A* __restrict a_pos = a.data();
84
11
        UInt8* __restrict c_pos = c.data();
85
11
        const A* __restrict a_end = a_pos + size;
86
87
26.3k
        while (a_pos < a_end) {
88
26.3k
            *c_pos = Op::apply(*a_pos, b);
89
26.3k
            ++a_pos;
90
26.3k
            ++c_pos;
91
26.3k
        }
92
11
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8
                                          PaddedPODArray<UInt8>& c) {
82
8
        size_t size = a.size();
83
8
        const A* __restrict a_pos = a.data();
84
8
        UInt8* __restrict c_pos = c.data();
85
8
        const A* __restrict a_end = a_pos + size;
86
87
14.4k
        while (a_pos < a_end) {
88
14.4k
            *c_pos = Op::apply(*a_pos, b);
89
14.4k
            ++a_pos;
90
14.4k
            ++c_pos;
91
14.4k
        }
92
8
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
15
        while (a_pos < a_end) {
88
9
            *c_pos = Op::apply(*a_pos, b);
89
9
            ++a_pos;
90
9
            ++c_pos;
91
9
        }
92
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
104
                                          PaddedPODArray<UInt8>& c) {
82
104
        size_t size = a.size();
83
104
        const A* __restrict a_pos = a.data();
84
104
        UInt8* __restrict c_pos = c.data();
85
104
        const A* __restrict a_end = a_pos + size;
86
87
355k
        while (a_pos < a_end) {
88
355k
            *c_pos = Op::apply(*a_pos, b);
89
355k
            ++a_pos;
90
355k
            ++c_pos;
91
355k
        }
92
104
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
108
                                          PaddedPODArray<UInt8>& c) {
82
108
        size_t size = a.size();
83
108
        const A* __restrict a_pos = a.data();
84
108
        UInt8* __restrict c_pos = c.data();
85
108
        const A* __restrict a_end = a_pos + size;
86
87
275k
        while (a_pos < a_end) {
88
275k
            *c_pos = Op::apply(*a_pos, b);
89
275k
            ++a_pos;
90
275k
            ++c_pos;
91
275k
        }
92
108
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
97
};
98
99
/// Generic version, implemented for columns of same type.
100
template <typename Op>
101
struct GenericComparisonImpl {
102
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
11
        }
106
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
6
        }
106
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
3
        }
106
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
107
108
84
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
84
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
133k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
133k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
133k
        }
113
84
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
18
        }
113
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
23
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
23
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
80.9k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
80.9k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
80.9k
        }
113
23
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
24
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
24
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
52.3k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
52.3k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
52.3k
        }
113
24
    }
114
115
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
117
0
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
118
};
119
120
template <typename Op>
121
struct StringComparisonImpl {
122
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
123
                                                      const ColumnString::Offsets& a_offsets,
124
                                                      const ColumnString::Chars& b_data,
125
                                                      const ColumnString::Offsets& b_offsets,
126
401
                                                      PaddedPODArray<UInt8>& c) {
127
401
        size_t size = a_offsets.size();
128
401
        ColumnString::Offset prev_a_offset = 0;
129
401
        ColumnString::Offset prev_b_offset = 0;
130
401
        const auto* a_pos = a_data.data();
131
401
        const auto* b_pos = b_data.data();
132
133
1.09k
        for (size_t i = 0; i < size; ++i) {
134
698
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
698
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
698
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
698
                             0);
138
139
698
            prev_a_offset = a_offsets[i];
140
698
            prev_b_offset = b_offsets[i];
141
698
        }
142
401
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
2
                                                      PaddedPODArray<UInt8>& c) {
127
2
        size_t size = a_offsets.size();
128
2
        ColumnString::Offset prev_a_offset = 0;
129
2
        ColumnString::Offset prev_b_offset = 0;
130
2
        const auto* a_pos = a_data.data();
131
2
        const auto* b_pos = b_data.data();
132
133
49
        for (size_t i = 0; i < size; ++i) {
134
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
47
                             0);
138
139
47
            prev_a_offset = a_offsets[i];
140
47
            prev_b_offset = b_offsets[i];
141
47
        }
142
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
46
                                                      PaddedPODArray<UInt8>& c) {
127
46
        size_t size = a_offsets.size();
128
46
        ColumnString::Offset prev_a_offset = 0;
129
46
        ColumnString::Offset prev_b_offset = 0;
130
46
        const auto* a_pos = a_data.data();
131
46
        const auto* b_pos = b_data.data();
132
133
340
        for (size_t i = 0; i < size; ++i) {
134
294
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
294
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
294
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
294
                             0);
138
139
294
            prev_a_offset = a_offsets[i];
140
294
            prev_b_offset = b_offsets[i];
141
294
        }
142
46
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
353
                                                      PaddedPODArray<UInt8>& c) {
127
353
        size_t size = a_offsets.size();
128
353
        ColumnString::Offset prev_a_offset = 0;
129
353
        ColumnString::Offset prev_b_offset = 0;
130
353
        const auto* a_pos = a_data.data();
131
353
        const auto* b_pos = b_data.data();
132
133
710
        for (size_t i = 0; i < size; ++i) {
134
357
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
357
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
357
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
357
                             0);
138
139
357
            prev_a_offset = a_offsets[i];
140
357
            prev_b_offset = b_offsets[i];
141
357
        }
142
353
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
143
144
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
145
                                                 const ColumnString::Offsets& a_offsets,
146
                                                 const ColumnString::Chars& b_data,
147
                                                 ColumnString::Offset b_size,
148
703
                                                 PaddedPODArray<UInt8>& c) {
149
703
        size_t size = a_offsets.size();
150
703
        ColumnString::Offset prev_a_offset = 0;
151
703
        const auto* a_pos = a_data.data();
152
703
        const auto* b_pos = b_data.data();
153
154
901k
        for (size_t i = 0; i < size; ++i) {
155
900k
            c[i] = Op::apply(
156
900k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
900k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
900k
                    0);
159
160
900k
            prev_a_offset = a_offsets[i];
161
900k
        }
162
703
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
188
                                                 PaddedPODArray<UInt8>& c) {
149
188
        size_t size = a_offsets.size();
150
188
        ColumnString::Offset prev_a_offset = 0;
151
188
        const auto* a_pos = a_data.data();
152
188
        const auto* b_pos = b_data.data();
153
154
325k
        for (size_t i = 0; i < size; ++i) {
155
325k
            c[i] = Op::apply(
156
325k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
325k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
325k
                    0);
159
160
325k
            prev_a_offset = a_offsets[i];
161
325k
        }
162
188
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
123
                                                 PaddedPODArray<UInt8>& c) {
149
123
        size_t size = a_offsets.size();
150
123
        ColumnString::Offset prev_a_offset = 0;
151
123
        const auto* a_pos = a_data.data();
152
123
        const auto* b_pos = b_data.data();
153
154
71.4k
        for (size_t i = 0; i < size; ++i) {
155
71.2k
            c[i] = Op::apply(
156
71.2k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
71.2k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
71.2k
                    0);
159
160
71.2k
            prev_a_offset = a_offsets[i];
161
71.2k
        }
162
123
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
212
                                                 PaddedPODArray<UInt8>& c) {
149
212
        size_t size = a_offsets.size();
150
212
        ColumnString::Offset prev_a_offset = 0;
151
212
        const auto* a_pos = a_data.data();
152
212
        const auto* b_pos = b_data.data();
153
154
262k
        for (size_t i = 0; i < size; ++i) {
155
262k
            c[i] = Op::apply(
156
262k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
262k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
262k
                    0);
159
160
262k
            prev_a_offset = a_offsets[i];
161
262k
        }
162
212
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
180
                                                 PaddedPODArray<UInt8>& c) {
149
180
        size_t size = a_offsets.size();
150
180
        ColumnString::Offset prev_a_offset = 0;
151
180
        const auto* a_pos = a_data.data();
152
180
        const auto* b_pos = b_data.data();
153
154
242k
        for (size_t i = 0; i < size; ++i) {
155
241k
            c[i] = Op::apply(
156
241k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
241k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
241k
                    0);
159
160
241k
            prev_a_offset = a_offsets[i];
161
241k
        }
162
180
    }
163
164
    static void constant_string_vector(const ColumnString::Chars& a_data,
165
                                       ColumnString::Offset a_size,
166
                                       const ColumnString::Chars& b_data,
167
                                       const ColumnString::Offsets& b_offsets,
168
0
                                       PaddedPODArray<UInt8>& c) {
169
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
0
                                                                               a_data, a_size, c);
171
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
172
};
173
174
template <bool positive>
175
struct StringEqualsImpl {
176
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
177
                                                      const ColumnString::Offsets& a_offsets,
178
                                                      const ColumnString::Chars& b_data,
179
                                                      const ColumnString::Offsets& b_offsets,
180
456
                                                      PaddedPODArray<UInt8>& c) {
181
456
        size_t size = a_offsets.size();
182
456
        ColumnString::Offset prev_a_offset = 0;
183
456
        ColumnString::Offset prev_b_offset = 0;
184
456
        const auto* a_pos = a_data.data();
185
456
        const auto* b_pos = b_data.data();
186
187
1.38k
        for (size_t i = 0; i < size; ++i) {
188
927
            auto a_size = a_offsets[i] - prev_a_offset;
189
927
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
927
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
927
                                                               b_pos + prev_b_offset, b_size);
193
194
927
            prev_a_offset = a_offsets[i];
195
927
            prev_b_offset = b_offsets[i];
196
927
        }
197
456
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
455
                                                      PaddedPODArray<UInt8>& c) {
181
455
        size_t size = a_offsets.size();
182
455
        ColumnString::Offset prev_a_offset = 0;
183
455
        ColumnString::Offset prev_b_offset = 0;
184
455
        const auto* a_pos = a_data.data();
185
455
        const auto* b_pos = b_data.data();
186
187
1.37k
        for (size_t i = 0; i < size; ++i) {
188
923
            auto a_size = a_offsets[i] - prev_a_offset;
189
923
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
923
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
923
                                                               b_pos + prev_b_offset, b_size);
193
194
923
            prev_a_offset = a_offsets[i];
195
923
            prev_b_offset = b_offsets[i];
196
923
        }
197
455
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
1
                                                      PaddedPODArray<UInt8>& c) {
181
1
        size_t size = a_offsets.size();
182
1
        ColumnString::Offset prev_a_offset = 0;
183
1
        ColumnString::Offset prev_b_offset = 0;
184
1
        const auto* a_pos = a_data.data();
185
1
        const auto* b_pos = b_data.data();
186
187
5
        for (size_t i = 0; i < size; ++i) {
188
4
            auto a_size = a_offsets[i] - prev_a_offset;
189
4
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
4
                                                               b_pos + prev_b_offset, b_size);
193
194
4
            prev_a_offset = a_offsets[i];
195
4
            prev_b_offset = b_offsets[i];
196
4
        }
197
1
    }
198
199
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
200
                                                 const ColumnString::Offsets& a_offsets,
201
                                                 const ColumnString::Chars& b_data,
202
                                                 ColumnString::Offset b_size,
203
11.4k
                                                 PaddedPODArray<UInt8>& c) {
204
11.4k
        size_t size = a_offsets.size();
205
11.4k
        if (b_size == 0) {
206
25
            auto* __restrict data = c.data();
207
25
            auto* __restrict offsets = a_offsets.data();
208
209
25
            ColumnString::Offset prev_a_offset = 0;
210
1.10k
            for (size_t i = 0; i < size; ++i) {
211
1.07k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.07k
                prev_a_offset = offsets[i];
213
1.07k
            }
214
11.4k
        } else {
215
11.4k
            ColumnString::Offset prev_a_offset = 0;
216
11.4k
            const auto* a_pos = a_data.data();
217
11.4k
            const auto* b_pos = b_data.data();
218
1.45M
            for (size_t i = 0; i < size; ++i) {
219
1.44M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.44M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.44M
                                                                   b_pos, b_size);
222
1.44M
                prev_a_offset = a_offsets[i];
223
1.44M
            }
224
11.4k
        }
225
11.4k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
11.3k
                                                 PaddedPODArray<UInt8>& c) {
204
11.3k
        size_t size = a_offsets.size();
205
11.3k
        if (b_size == 0) {
206
0
            auto* __restrict data = c.data();
207
0
            auto* __restrict offsets = a_offsets.data();
208
209
0
            ColumnString::Offset prev_a_offset = 0;
210
0
            for (size_t i = 0; i < size; ++i) {
211
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
0
                prev_a_offset = offsets[i];
213
0
            }
214
11.3k
        } else {
215
11.3k
            ColumnString::Offset prev_a_offset = 0;
216
11.3k
            const auto* a_pos = a_data.data();
217
11.3k
            const auto* b_pos = b_data.data();
218
1.41M
            for (size_t i = 0; i < size; ++i) {
219
1.40M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.40M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.40M
                                                                   b_pos, b_size);
222
1.40M
                prev_a_offset = a_offsets[i];
223
1.40M
            }
224
11.3k
        }
225
11.3k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
119
                                                 PaddedPODArray<UInt8>& c) {
204
119
        size_t size = a_offsets.size();
205
119
        if (b_size == 0) {
206
25
            auto* __restrict data = c.data();
207
25
            auto* __restrict offsets = a_offsets.data();
208
209
25
            ColumnString::Offset prev_a_offset = 0;
210
1.10k
            for (size_t i = 0; i < size; ++i) {
211
1.07k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.07k
                prev_a_offset = offsets[i];
213
1.07k
            }
214
94
        } else {
215
94
            ColumnString::Offset prev_a_offset = 0;
216
94
            const auto* a_pos = a_data.data();
217
94
            const auto* b_pos = b_data.data();
218
41.0k
            for (size_t i = 0; i < size; ++i) {
219
40.9k
                auto a_size = a_offsets[i] - prev_a_offset;
220
40.9k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
40.9k
                                                                   b_pos, b_size);
222
40.9k
                prev_a_offset = a_offsets[i];
223
40.9k
            }
224
94
        }
225
119
    }
226
227
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
228
                                                 ColumnString::Offset a_size,
229
                                                 const ColumnString::Chars& b_data,
230
                                                 const ColumnString::Offsets& b_offsets,
231
0
                                                 PaddedPODArray<UInt8>& c) {
232
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
233
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
234
};
235
236
template <PrimitiveType PT>
237
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
238
239
template <PrimitiveType PT>
240
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
241
242
struct NameEquals {
243
    static constexpr auto name = "eq";
244
};
245
struct NameNotEquals {
246
    static constexpr auto name = "ne";
247
};
248
struct NameLess {
249
    static constexpr auto name = "lt";
250
};
251
struct NameGreater {
252
    static constexpr auto name = "gt";
253
};
254
struct NameLessOrEquals {
255
    static constexpr auto name = "le";
256
};
257
struct NameGreaterOrEquals {
258
    static constexpr auto name = "ge";
259
};
260
261
template <template <PrimitiveType> class Op, typename Name>
262
class FunctionComparison : public IFunction {
263
public:
264
    static constexpr auto name = Name::name;
265
313k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
247k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.15k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
4.98k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
28.3k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
2.72k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
28.0k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
313k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
248k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.15k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
4.98k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
28.4k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
2.72k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
28.1k
    FunctionComparison() = default;
268
269
686k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
669k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
598
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
3.35k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
5.95k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
1.78k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
5.28k
    double execute_cost() const override { return 0.5; }
270
271
private:
272
    template <PrimitiveType PT>
273
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
274
27.4k
                            const ColumnPtr& col_right_ptr) const {
275
27.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
27.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
27.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
27.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
27.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
27.5k
        if (!left_is_const && !right_is_const) {
284
11.4k
            auto col_res = ColumnUInt8::create();
285
286
11.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
11.4k
            vec_res.resize(col_left->get_data().size());
288
11.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
11.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
11.4k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
11.4k
                                                     vec_res);
292
293
11.4k
            block.replace_by_position(result, std::move(col_res));
294
16.0k
        } else if (!left_is_const && right_is_const) {
295
16.0k
            auto col_res = ColumnUInt8::create();
296
297
16.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
16.0k
            vec_res.resize(col_left->size());
299
16.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
16.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
16.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
16.0k
                                                       col_right->get_element(0), vec_res);
303
304
16.0k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
7
            auto col_res = ColumnUInt8::create();
307
308
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
7
            vec_res.resize(col_right->size());
310
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
7
                              typename PrimitiveTypeTraits<PT>::CppType,
312
7
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
7
                                                       col_right->get_data(), vec_res);
314
315
7
            block.replace_by_position(result, std::move(col_res));
316
7
        }
317
27.4k
        return Status::OK();
318
27.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
89
                            const ColumnPtr& col_right_ptr) const {
275
89
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
89
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
89
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
89
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
89
        DCHECK(!(left_is_const && right_is_const));
282
283
89
        if (!left_is_const && !right_is_const) {
284
65
            auto col_res = ColumnUInt8::create();
285
286
65
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
65
            vec_res.resize(col_left->get_data().size());
288
65
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
65
                              typename PrimitiveTypeTraits<PT>::CppType,
290
65
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
65
                                                     vec_res);
292
293
65
            block.replace_by_position(result, std::move(col_res));
294
65
        } else if (!left_is_const && right_is_const) {
295
24
            auto col_res = ColumnUInt8::create();
296
297
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
24
            vec_res.resize(col_left->size());
299
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
24
                              typename PrimitiveTypeTraits<PT>::CppType,
301
24
                              Op<PT>>::vector_constant(col_left->get_data(),
302
24
                                                       col_right->get_element(0), vec_res);
303
304
24
            block.replace_by_position(result, std::move(col_res));
305
24
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
89
        return Status::OK();
318
89
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
574
                            const ColumnPtr& col_right_ptr) const {
275
574
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
574
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
574
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
574
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
574
        DCHECK(!(left_is_const && right_is_const));
282
283
574
        if (!left_is_const && !right_is_const) {
284
248
            auto col_res = ColumnUInt8::create();
285
286
248
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
248
            vec_res.resize(col_left->get_data().size());
288
248
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
248
                              typename PrimitiveTypeTraits<PT>::CppType,
290
248
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
248
                                                     vec_res);
292
293
248
            block.replace_by_position(result, std::move(col_res));
294
326
        } else if (!left_is_const && right_is_const) {
295
326
            auto col_res = ColumnUInt8::create();
296
297
326
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
326
            vec_res.resize(col_left->size());
299
326
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
326
                              typename PrimitiveTypeTraits<PT>::CppType,
301
326
                              Op<PT>>::vector_constant(col_left->get_data(),
302
326
                                                       col_right->get_element(0), vec_res);
303
304
326
            block.replace_by_position(result, std::move(col_res));
305
326
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
574
        return Status::OK();
318
574
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
541
                            const ColumnPtr& col_right_ptr) const {
275
541
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
541
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
541
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
541
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
541
        DCHECK(!(left_is_const && right_is_const));
282
283
541
        if (!left_is_const && !right_is_const) {
284
299
            auto col_res = ColumnUInt8::create();
285
286
299
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
299
            vec_res.resize(col_left->get_data().size());
288
299
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
299
                              typename PrimitiveTypeTraits<PT>::CppType,
290
299
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
299
                                                     vec_res);
292
293
299
            block.replace_by_position(result, std::move(col_res));
294
299
        } else if (!left_is_const && right_is_const) {
295
242
            auto col_res = ColumnUInt8::create();
296
297
242
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
242
            vec_res.resize(col_left->size());
299
242
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
242
                              typename PrimitiveTypeTraits<PT>::CppType,
301
242
                              Op<PT>>::vector_constant(col_left->get_data(),
302
242
                                                       col_right->get_element(0), vec_res);
303
304
242
            block.replace_by_position(result, std::move(col_res));
305
242
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
541
        return Status::OK();
318
541
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.17k
                            const ColumnPtr& col_right_ptr) const {
275
3.17k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.17k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.17k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.17k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.17k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.17k
        if (!left_is_const && !right_is_const) {
284
578
            auto col_res = ColumnUInt8::create();
285
286
578
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
578
            vec_res.resize(col_left->get_data().size());
288
578
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
578
                              typename PrimitiveTypeTraits<PT>::CppType,
290
578
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
578
                                                     vec_res);
292
293
578
            block.replace_by_position(result, std::move(col_res));
294
2.60k
        } else if (!left_is_const && right_is_const) {
295
2.60k
            auto col_res = ColumnUInt8::create();
296
297
2.60k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.60k
            vec_res.resize(col_left->size());
299
2.60k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.60k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.60k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.60k
                                                       col_right->get_element(0), vec_res);
303
304
2.60k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3.17k
        return Status::OK();
318
3.17k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
427
                            const ColumnPtr& col_right_ptr) const {
275
427
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
427
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
427
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
427
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
427
        DCHECK(!(left_is_const && right_is_const));
282
283
427
        if (!left_is_const && !right_is_const) {
284
127
            auto col_res = ColumnUInt8::create();
285
286
127
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
127
            vec_res.resize(col_left->get_data().size());
288
127
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
127
                              typename PrimitiveTypeTraits<PT>::CppType,
290
127
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
127
                                                     vec_res);
292
293
127
            block.replace_by_position(result, std::move(col_res));
294
300
        } else if (!left_is_const && right_is_const) {
295
299
            auto col_res = ColumnUInt8::create();
296
297
299
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
299
            vec_res.resize(col_left->size());
299
299
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
299
                              typename PrimitiveTypeTraits<PT>::CppType,
301
299
                              Op<PT>>::vector_constant(col_left->get_data(),
302
299
                                                       col_right->get_element(0), vec_res);
303
304
299
            block.replace_by_position(result, std::move(col_res));
305
299
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
427
        return Status::OK();
318
427
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.83k
                            const ColumnPtr& col_right_ptr) const {
275
1.83k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.83k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.83k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.83k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.83k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.83k
        if (!left_is_const && !right_is_const) {
284
278
            auto col_res = ColumnUInt8::create();
285
286
278
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
278
            vec_res.resize(col_left->get_data().size());
288
278
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
278
                              typename PrimitiveTypeTraits<PT>::CppType,
290
278
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
278
                                                     vec_res);
292
293
278
            block.replace_by_position(result, std::move(col_res));
294
1.55k
        } else if (!left_is_const && right_is_const) {
295
1.55k
            auto col_res = ColumnUInt8::create();
296
297
1.55k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.55k
            vec_res.resize(col_left->size());
299
1.55k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.55k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.55k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.55k
                                                       col_right->get_element(0), vec_res);
303
304
1.55k
            block.replace_by_position(result, std::move(col_res));
305
1.55k
        } else if (left_is_const && !right_is_const) {
306
7
            auto col_res = ColumnUInt8::create();
307
308
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
7
            vec_res.resize(col_right->size());
310
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
7
                              typename PrimitiveTypeTraits<PT>::CppType,
312
7
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
7
                                                       col_right->get_data(), vec_res);
314
315
7
            block.replace_by_position(result, std::move(col_res));
316
7
        }
317
1.83k
        return Status::OK();
318
1.83k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
999
                            const ColumnPtr& col_right_ptr) const {
275
999
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
999
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
999
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
999
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
999
        DCHECK(!(left_is_const && right_is_const));
282
283
1.00k
        if (!left_is_const && !right_is_const) {
284
265
            auto col_res = ColumnUInt8::create();
285
286
265
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
265
            vec_res.resize(col_left->get_data().size());
288
265
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
265
                              typename PrimitiveTypeTraits<PT>::CppType,
290
265
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
265
                                                     vec_res);
292
293
265
            block.replace_by_position(result, std::move(col_res));
294
735
        } else if (!left_is_const && right_is_const) {
295
735
            auto col_res = ColumnUInt8::create();
296
297
735
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
735
            vec_res.resize(col_left->size());
299
735
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
735
                              typename PrimitiveTypeTraits<PT>::CppType,
301
735
                              Op<PT>>::vector_constant(col_left->get_data(),
302
735
                                                       col_right->get_element(0), vec_res);
303
304
735
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
999
        return Status::OK();
318
999
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
130
                            const ColumnPtr& col_right_ptr) const {
275
130
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
130
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
130
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
130
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
130
        DCHECK(!(left_is_const && right_is_const));
282
283
130
        if (!left_is_const && !right_is_const) {
284
106
            auto col_res = ColumnUInt8::create();
285
286
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
106
            vec_res.resize(col_left->get_data().size());
288
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
106
                              typename PrimitiveTypeTraits<PT>::CppType,
290
106
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
106
                                                     vec_res);
292
293
106
            block.replace_by_position(result, std::move(col_res));
294
106
        } else if (!left_is_const && right_is_const) {
295
24
            auto col_res = ColumnUInt8::create();
296
297
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
24
            vec_res.resize(col_left->size());
299
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
24
                              typename PrimitiveTypeTraits<PT>::CppType,
301
24
                              Op<PT>>::vector_constant(col_left->get_data(),
302
24
                                                       col_right->get_element(0), vec_res);
303
304
24
            block.replace_by_position(result, std::move(col_res));
305
24
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
130
        return Status::OK();
318
130
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30
                            const ColumnPtr& col_right_ptr) const {
275
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30
        DCHECK(!(left_is_const && right_is_const));
282
283
30
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
14
            auto col_res = ColumnUInt8::create();
296
297
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
14
            vec_res.resize(col_left->size());
299
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
14
                              typename PrimitiveTypeTraits<PT>::CppType,
301
14
                              Op<PT>>::vector_constant(col_left->get_data(),
302
14
                                                       col_right->get_element(0), vec_res);
303
304
14
            block.replace_by_position(result, std::move(col_res));
305
14
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
30
        return Status::OK();
318
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30
                            const ColumnPtr& col_right_ptr) const {
275
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30
        DCHECK(!(left_is_const && right_is_const));
282
283
30
        if (!left_is_const && !right_is_const) {
284
24
            auto col_res = ColumnUInt8::create();
285
286
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
24
            vec_res.resize(col_left->get_data().size());
288
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              typename PrimitiveTypeTraits<PT>::CppType,
290
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
24
                                                     vec_res);
292
293
24
            block.replace_by_position(result, std::move(col_res));
294
24
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
30
        return Status::OK();
318
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
112
                            const ColumnPtr& col_right_ptr) const {
275
112
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
112
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
112
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
112
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
112
        DCHECK(!(left_is_const && right_is_const));
282
283
112
        if (!left_is_const && !right_is_const) {
284
112
            auto col_res = ColumnUInt8::create();
285
286
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
112
            vec_res.resize(col_left->get_data().size());
288
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
112
                              typename PrimitiveTypeTraits<PT>::CppType,
290
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
112
                                                     vec_res);
292
293
112
            block.replace_by_position(result, std::move(col_res));
294
112
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
112
        return Status::OK();
318
112
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
266
                            const ColumnPtr& col_right_ptr) const {
275
266
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
266
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
266
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
266
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
266
        DCHECK(!(left_is_const && right_is_const));
282
283
266
        if (!left_is_const && !right_is_const) {
284
113
            auto col_res = ColumnUInt8::create();
285
286
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
113
            vec_res.resize(col_left->get_data().size());
288
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
113
                              typename PrimitiveTypeTraits<PT>::CppType,
290
113
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
113
                                                     vec_res);
292
293
113
            block.replace_by_position(result, std::move(col_res));
294
153
        } else if (!left_is_const && right_is_const) {
295
153
            auto col_res = ColumnUInt8::create();
296
297
153
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
153
            vec_res.resize(col_left->size());
299
153
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
153
                              typename PrimitiveTypeTraits<PT>::CppType,
301
153
                              Op<PT>>::vector_constant(col_left->get_data(),
302
153
                                                       col_right->get_element(0), vec_res);
303
304
153
            block.replace_by_position(result, std::move(col_res));
305
153
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
266
        return Status::OK();
318
266
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
4
            auto col_res = ColumnUInt8::create();
285
286
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
4
            vec_res.resize(col_left->get_data().size());
288
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              typename PrimitiveTypeTraits<PT>::CppType,
290
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
4
                                                     vec_res);
292
293
4
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
41
                            const ColumnPtr& col_right_ptr) const {
275
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
41
        DCHECK(!(left_is_const && right_is_const));
282
283
41
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
39
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
41
        return Status::OK();
318
41
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
92
                            const ColumnPtr& col_right_ptr) const {
275
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
92
        DCHECK(!(left_is_const && right_is_const));
282
283
92
        if (!left_is_const && !right_is_const) {
284
64
            auto col_res = ColumnUInt8::create();
285
286
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
64
            vec_res.resize(col_left->get_data().size());
288
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
64
                              typename PrimitiveTypeTraits<PT>::CppType,
290
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
64
                                                     vec_res);
292
293
64
            block.replace_by_position(result, std::move(col_res));
294
64
        } else if (!left_is_const && right_is_const) {
295
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
92
        return Status::OK();
318
92
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
883
                            const ColumnPtr& col_right_ptr) const {
275
883
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
883
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
883
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
883
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
883
        DCHECK(!(left_is_const && right_is_const));
282
283
883
        if (!left_is_const && !right_is_const) {
284
820
            auto col_res = ColumnUInt8::create();
285
286
820
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
820
            vec_res.resize(col_left->get_data().size());
288
820
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
820
                              typename PrimitiveTypeTraits<PT>::CppType,
290
820
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
820
                                                     vec_res);
292
293
820
            block.replace_by_position(result, std::move(col_res));
294
820
        } else if (!left_is_const && right_is_const) {
295
63
            auto col_res = ColumnUInt8::create();
296
297
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
63
            vec_res.resize(col_left->size());
299
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
63
                              typename PrimitiveTypeTraits<PT>::CppType,
301
63
                              Op<PT>>::vector_constant(col_left->get_data(),
302
63
                                                       col_right->get_element(0), vec_res);
303
304
63
            block.replace_by_position(result, std::move(col_res));
305
63
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
883
        return Status::OK();
318
883
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
397
                            const ColumnPtr& col_right_ptr) const {
275
397
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
397
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
397
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
397
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
397
        DCHECK(!(left_is_const && right_is_const));
282
283
397
        if (!left_is_const && !right_is_const) {
284
375
            auto col_res = ColumnUInt8::create();
285
286
375
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
375
            vec_res.resize(col_left->get_data().size());
288
375
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
375
                              typename PrimitiveTypeTraits<PT>::CppType,
290
375
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
375
                                                     vec_res);
292
293
375
            block.replace_by_position(result, std::move(col_res));
294
375
        } else if (!left_is_const && right_is_const) {
295
22
            auto col_res = ColumnUInt8::create();
296
297
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
22
            vec_res.resize(col_left->size());
299
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
22
                              typename PrimitiveTypeTraits<PT>::CppType,
301
22
                              Op<PT>>::vector_constant(col_left->get_data(),
302
22
                                                       col_right->get_element(0), vec_res);
303
304
22
            block.replace_by_position(result, std::move(col_res));
305
22
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
397
        return Status::OK();
318
397
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
51
                            const ColumnPtr& col_right_ptr) const {
275
51
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
51
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
51
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
51
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
51
        DCHECK(!(left_is_const && right_is_const));
282
283
51
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
32
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
51
        return Status::OK();
318
51
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
72
                            const ColumnPtr& col_right_ptr) const {
275
72
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
72
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
72
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
72
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
72
        DCHECK(!(left_is_const && right_is_const));
282
283
72
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
52
        } else if (!left_is_const && right_is_const) {
295
52
            auto col_res = ColumnUInt8::create();
296
297
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
52
            vec_res.resize(col_left->size());
299
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
52
                              typename PrimitiveTypeTraits<PT>::CppType,
301
52
                              Op<PT>>::vector_constant(col_left->get_data(),
302
52
                                                       col_right->get_element(0), vec_res);
303
304
52
            block.replace_by_position(result, std::move(col_res));
305
52
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
72
        return Status::OK();
318
72
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
934
                            const ColumnPtr& col_right_ptr) const {
275
934
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
934
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
934
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
934
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
934
        DCHECK(!(left_is_const && right_is_const));
282
283
934
        if (!left_is_const && !right_is_const) {
284
932
            auto col_res = ColumnUInt8::create();
285
286
932
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
932
            vec_res.resize(col_left->get_data().size());
288
932
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
932
                              typename PrimitiveTypeTraits<PT>::CppType,
290
932
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
932
                                                     vec_res);
292
293
932
            block.replace_by_position(result, std::move(col_res));
294
932
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
934
        return Status::OK();
318
934
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
619
                            const ColumnPtr& col_right_ptr) const {
275
619
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
619
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
619
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
619
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
619
        DCHECK(!(left_is_const && right_is_const));
282
283
619
        if (!left_is_const && !right_is_const) {
284
209
            auto col_res = ColumnUInt8::create();
285
286
209
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
209
            vec_res.resize(col_left->get_data().size());
288
209
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
209
                              typename PrimitiveTypeTraits<PT>::CppType,
290
209
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
209
                                                     vec_res);
292
293
209
            block.replace_by_position(result, std::move(col_res));
294
410
        } else if (!left_is_const && right_is_const) {
295
410
            auto col_res = ColumnUInt8::create();
296
297
410
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
410
            vec_res.resize(col_left->size());
299
410
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
410
                              typename PrimitiveTypeTraits<PT>::CppType,
301
410
                              Op<PT>>::vector_constant(col_left->get_data(),
302
410
                                                       col_right->get_element(0), vec_res);
303
304
410
            block.replace_by_position(result, std::move(col_res));
305
410
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
619
        return Status::OK();
318
619
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
835
                            const ColumnPtr& col_right_ptr) const {
275
835
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
835
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
835
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
835
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
835
        DCHECK(!(left_is_const && right_is_const));
282
283
836
        if (!left_is_const && !right_is_const) {
284
425
            auto col_res = ColumnUInt8::create();
285
286
425
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
425
            vec_res.resize(col_left->get_data().size());
288
425
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
425
                              typename PrimitiveTypeTraits<PT>::CppType,
290
425
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
425
                                                     vec_res);
292
293
425
            block.replace_by_position(result, std::move(col_res));
294
425
        } else if (!left_is_const && right_is_const) {
295
413
            auto col_res = ColumnUInt8::create();
296
297
413
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
413
            vec_res.resize(col_left->size());
299
413
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
413
                              typename PrimitiveTypeTraits<PT>::CppType,
301
413
                              Op<PT>>::vector_constant(col_left->get_data(),
302
413
                                                       col_right->get_element(0), vec_res);
303
304
413
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
835
        return Status::OK();
318
835
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.55k
                            const ColumnPtr& col_right_ptr) const {
275
3.55k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.55k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.55k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.55k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.55k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.56k
        if (!left_is_const && !right_is_const) {
284
1.79k
            auto col_res = ColumnUInt8::create();
285
286
1.79k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.79k
            vec_res.resize(col_left->get_data().size());
288
1.79k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.79k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.79k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.79k
                                                     vec_res);
292
293
1.79k
            block.replace_by_position(result, std::move(col_res));
294
1.79k
        } else if (!left_is_const && right_is_const) {
295
1.76k
            auto col_res = ColumnUInt8::create();
296
297
1.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.76k
            vec_res.resize(col_left->size());
299
1.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.76k
                                                       col_right->get_element(0), vec_res);
303
304
1.76k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3.55k
        return Status::OK();
318
3.55k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.20k
                            const ColumnPtr& col_right_ptr) const {
275
1.20k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.20k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.20k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.20k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.20k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.21k
        if (!left_is_const && !right_is_const) {
284
118
            auto col_res = ColumnUInt8::create();
285
286
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
118
            vec_res.resize(col_left->get_data().size());
288
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
118
                              typename PrimitiveTypeTraits<PT>::CppType,
290
118
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
118
                                                     vec_res);
292
293
118
            block.replace_by_position(result, std::move(col_res));
294
1.09k
        } else if (!left_is_const && right_is_const) {
295
1.09k
            auto col_res = ColumnUInt8::create();
296
297
1.09k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.09k
            vec_res.resize(col_left->size());
299
1.09k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.09k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.09k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.09k
                                                       col_right->get_element(0), vec_res);
303
304
1.09k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.20k
        return Status::OK();
318
1.20k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
243
                            const ColumnPtr& col_right_ptr) const {
275
243
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
243
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
243
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
243
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
243
        DCHECK(!(left_is_const && right_is_const));
282
283
243
        if (!left_is_const && !right_is_const) {
284
37
            auto col_res = ColumnUInt8::create();
285
286
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
37
            vec_res.resize(col_left->get_data().size());
288
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
37
                              typename PrimitiveTypeTraits<PT>::CppType,
290
37
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
37
                                                     vec_res);
292
293
37
            block.replace_by_position(result, std::move(col_res));
294
206
        } else if (!left_is_const && right_is_const) {
295
206
            auto col_res = ColumnUInt8::create();
296
297
206
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
206
            vec_res.resize(col_left->size());
299
206
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
206
                              typename PrimitiveTypeTraits<PT>::CppType,
301
206
                              Op<PT>>::vector_constant(col_left->get_data(),
302
206
                                                       col_right->get_element(0), vec_res);
303
304
206
            block.replace_by_position(result, std::move(col_res));
305
206
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
243
        return Status::OK();
318
243
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
227
                            const ColumnPtr& col_right_ptr) const {
275
227
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
227
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
227
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
227
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
227
        DCHECK(!(left_is_const && right_is_const));
282
283
228
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
208
        } else if (!left_is_const && right_is_const) {
295
208
            auto col_res = ColumnUInt8::create();
296
297
208
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
208
            vec_res.resize(col_left->size());
299
208
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
208
                              typename PrimitiveTypeTraits<PT>::CppType,
301
208
                              Op<PT>>::vector_constant(col_left->get_data(),
302
208
                                                       col_right->get_element(0), vec_res);
303
304
208
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
227
        return Status::OK();
318
227
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
556
                            const ColumnPtr& col_right_ptr) const {
275
556
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
556
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
556
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
556
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
556
        DCHECK(!(left_is_const && right_is_const));
282
283
556
        if (!left_is_const && !right_is_const) {
284
42
            auto col_res = ColumnUInt8::create();
285
286
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
42
            vec_res.resize(col_left->get_data().size());
288
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
42
                              typename PrimitiveTypeTraits<PT>::CppType,
290
42
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
42
                                                     vec_res);
292
293
42
            block.replace_by_position(result, std::move(col_res));
294
514
        } else if (!left_is_const && right_is_const) {
295
514
            auto col_res = ColumnUInt8::create();
296
297
514
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
514
            vec_res.resize(col_left->size());
299
514
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
514
                              typename PrimitiveTypeTraits<PT>::CppType,
301
514
                              Op<PT>>::vector_constant(col_left->get_data(),
302
514
                                                       col_right->get_element(0), vec_res);
303
304
514
            block.replace_by_position(result, std::move(col_res));
305
514
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
556
        return Status::OK();
318
556
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7
                            const ColumnPtr& col_right_ptr) const {
275
7
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7
        DCHECK(!(left_is_const && right_is_const));
282
283
7
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
7
        } else if (!left_is_const && right_is_const) {
295
7
            auto col_res = ColumnUInt8::create();
296
297
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
7
            vec_res.resize(col_left->size());
299
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
7
                              typename PrimitiveTypeTraits<PT>::CppType,
301
7
                              Op<PT>>::vector_constant(col_left->get_data(),
302
7
                                                       col_right->get_element(0), vec_res);
303
304
7
            block.replace_by_position(result, std::move(col_res));
305
7
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
7
        return Status::OK();
318
7
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
515
                            const ColumnPtr& col_right_ptr) const {
275
515
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
515
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
515
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
515
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
515
        DCHECK(!(left_is_const && right_is_const));
282
283
516
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
509
        } else if (!left_is_const && right_is_const) {
295
509
            auto col_res = ColumnUInt8::create();
296
297
509
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
509
            vec_res.resize(col_left->size());
299
509
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
509
                              typename PrimitiveTypeTraits<PT>::CppType,
301
509
                              Op<PT>>::vector_constant(col_left->get_data(),
302
509
                                                       col_right->get_element(0), vec_res);
303
304
509
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
515
        return Status::OK();
318
515
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
146
                            const ColumnPtr& col_right_ptr) const {
275
146
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
146
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
146
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
146
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
146
        DCHECK(!(left_is_const && right_is_const));
282
283
146
        if (!left_is_const && !right_is_const) {
284
10
            auto col_res = ColumnUInt8::create();
285
286
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
10
            vec_res.resize(col_left->get_data().size());
288
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
10
                              typename PrimitiveTypeTraits<PT>::CppType,
290
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
10
                                                     vec_res);
292
293
10
            block.replace_by_position(result, std::move(col_res));
294
136
        } else if (!left_is_const && right_is_const) {
295
136
            auto col_res = ColumnUInt8::create();
296
297
136
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
136
            vec_res.resize(col_left->size());
299
136
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
136
                              typename PrimitiveTypeTraits<PT>::CppType,
301
136
                              Op<PT>>::vector_constant(col_left->get_data(),
302
136
                                                       col_right->get_element(0), vec_res);
303
304
136
            block.replace_by_position(result, std::move(col_res));
305
136
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
146
        return Status::OK();
318
146
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
70
                            const ColumnPtr& col_right_ptr) const {
275
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
70
        DCHECK(!(left_is_const && right_is_const));
282
283
70
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
70
        } else if (!left_is_const && right_is_const) {
295
70
            auto col_res = ColumnUInt8::create();
296
297
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
70
            vec_res.resize(col_left->size());
299
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
70
                              typename PrimitiveTypeTraits<PT>::CppType,
301
70
                              Op<PT>>::vector_constant(col_left->get_data(),
302
70
                                                       col_right->get_element(0), vec_res);
303
304
70
            block.replace_by_position(result, std::move(col_res));
305
70
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
70
        return Status::OK();
318
70
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
143
                            const ColumnPtr& col_right_ptr) const {
275
143
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
143
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
143
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
143
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
143
        DCHECK(!(left_is_const && right_is_const));
282
283
143
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
143
        } else if (!left_is_const && right_is_const) {
295
143
            auto col_res = ColumnUInt8::create();
296
297
143
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
143
            vec_res.resize(col_left->size());
299
143
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
143
                              typename PrimitiveTypeTraits<PT>::CppType,
301
143
                              Op<PT>>::vector_constant(col_left->get_data(),
302
143
                                                       col_right->get_element(0), vec_res);
303
304
143
            block.replace_by_position(result, std::move(col_res));
305
143
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
143
        return Status::OK();
318
143
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
806
                            const ColumnPtr& col_right_ptr) const {
275
806
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
806
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
806
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
806
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
806
        DCHECK(!(left_is_const && right_is_const));
282
283
806
        if (!left_is_const && !right_is_const) {
284
5
            auto col_res = ColumnUInt8::create();
285
286
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
5
            vec_res.resize(col_left->get_data().size());
288
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
5
                              typename PrimitiveTypeTraits<PT>::CppType,
290
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
5
                                                     vec_res);
292
293
5
            block.replace_by_position(result, std::move(col_res));
294
801
        } else if (!left_is_const && right_is_const) {
295
801
            auto col_res = ColumnUInt8::create();
296
297
801
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
801
            vec_res.resize(col_left->size());
299
801
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
801
                              typename PrimitiveTypeTraits<PT>::CppType,
301
801
                              Op<PT>>::vector_constant(col_left->get_data(),
302
801
                                                       col_right->get_element(0), vec_res);
303
304
801
            block.replace_by_position(result, std::move(col_res));
305
801
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
806
        return Status::OK();
318
806
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
162
                            const ColumnPtr& col_right_ptr) const {
275
162
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
162
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
162
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
162
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
162
        DCHECK(!(left_is_const && right_is_const));
282
283
162
        if (!left_is_const && !right_is_const) {
284
17
            auto col_res = ColumnUInt8::create();
285
286
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
17
            vec_res.resize(col_left->get_data().size());
288
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
17
                              typename PrimitiveTypeTraits<PT>::CppType,
290
17
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
17
                                                     vec_res);
292
293
17
            block.replace_by_position(result, std::move(col_res));
294
145
        } else if (!left_is_const && right_is_const) {
295
145
            auto col_res = ColumnUInt8::create();
296
297
145
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
145
            vec_res.resize(col_left->size());
299
145
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
145
                              typename PrimitiveTypeTraits<PT>::CppType,
301
145
                              Op<PT>>::vector_constant(col_left->get_data(),
302
145
                                                       col_right->get_element(0), vec_res);
303
304
145
            block.replace_by_position(result, std::move(col_res));
305
145
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
162
        return Status::OK();
318
162
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11
                            const ColumnPtr& col_right_ptr) const {
275
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11
        DCHECK(!(left_is_const && right_is_const));
282
283
11
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
11
        } else if (!left_is_const && right_is_const) {
295
11
            auto col_res = ColumnUInt8::create();
296
297
11
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
11
            vec_res.resize(col_left->size());
299
11
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
11
                              typename PrimitiveTypeTraits<PT>::CppType,
301
11
                              Op<PT>>::vector_constant(col_left->get_data(),
302
11
                                                       col_right->get_element(0), vec_res);
303
304
11
            block.replace_by_position(result, std::move(col_res));
305
11
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
11
        return Status::OK();
318
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11
                            const ColumnPtr& col_right_ptr) const {
275
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11
        DCHECK(!(left_is_const && right_is_const));
282
283
11
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
11
        return Status::OK();
318
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
26
                            const ColumnPtr& col_right_ptr) const {
275
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
26
        DCHECK(!(left_is_const && right_is_const));
282
283
26
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
20
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
26
        return Status::OK();
318
26
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
139
                            const ColumnPtr& col_right_ptr) const {
275
139
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
139
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
139
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
139
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
139
        DCHECK(!(left_is_const && right_is_const));
282
283
139
        if (!left_is_const && !right_is_const) {
284
35
            auto col_res = ColumnUInt8::create();
285
286
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
35
            vec_res.resize(col_left->get_data().size());
288
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
35
                              typename PrimitiveTypeTraits<PT>::CppType,
290
35
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
35
                                                     vec_res);
292
293
35
            block.replace_by_position(result, std::move(col_res));
294
104
        } else if (!left_is_const && right_is_const) {
295
104
            auto col_res = ColumnUInt8::create();
296
297
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
104
            vec_res.resize(col_left->size());
299
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
104
                              typename PrimitiveTypeTraits<PT>::CppType,
301
104
                              Op<PT>>::vector_constant(col_left->get_data(),
302
104
                                                       col_right->get_element(0), vec_res);
303
304
104
            block.replace_by_position(result, std::move(col_res));
305
104
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
139
        return Status::OK();
318
139
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
71
                            const ColumnPtr& col_right_ptr) const {
275
71
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
71
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
71
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
71
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
71
        DCHECK(!(left_is_const && right_is_const));
282
283
71
        if (!left_is_const && !right_is_const) {
284
71
            auto col_res = ColumnUInt8::create();
285
286
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
71
            vec_res.resize(col_left->get_data().size());
288
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
71
                              typename PrimitiveTypeTraits<PT>::CppType,
290
71
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
71
                                                     vec_res);
292
293
71
            block.replace_by_position(result, std::move(col_res));
294
71
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
71
        return Status::OK();
318
71
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.06k
                            const ColumnPtr& col_right_ptr) const {
275
2.06k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.06k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.06k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.06k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.06k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.06k
        if (!left_is_const && !right_is_const) {
284
1.73k
            auto col_res = ColumnUInt8::create();
285
286
1.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.73k
            vec_res.resize(col_left->get_data().size());
288
1.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.73k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.73k
                                                     vec_res);
292
293
1.73k
            block.replace_by_position(result, std::move(col_res));
294
1.73k
        } else if (!left_is_const && right_is_const) {
295
328
            auto col_res = ColumnUInt8::create();
296
297
328
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
328
            vec_res.resize(col_left->size());
299
328
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
328
                              typename PrimitiveTypeTraits<PT>::CppType,
301
328
                              Op<PT>>::vector_constant(col_left->get_data(),
302
328
                                                       col_right->get_element(0), vec_res);
303
304
328
            block.replace_by_position(result, std::move(col_res));
305
328
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.06k
        return Status::OK();
318
2.06k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
297
                            const ColumnPtr& col_right_ptr) const {
275
297
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
297
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
297
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
297
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
297
        DCHECK(!(left_is_const && right_is_const));
282
283
297
        if (!left_is_const && !right_is_const) {
284
238
            auto col_res = ColumnUInt8::create();
285
286
238
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
238
            vec_res.resize(col_left->get_data().size());
288
238
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
238
                              typename PrimitiveTypeTraits<PT>::CppType,
290
238
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
238
                                                     vec_res);
292
293
238
            block.replace_by_position(result, std::move(col_res));
294
238
        } else if (!left_is_const && right_is_const) {
295
59
            auto col_res = ColumnUInt8::create();
296
297
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
59
            vec_res.resize(col_left->size());
299
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
59
                              typename PrimitiveTypeTraits<PT>::CppType,
301
59
                              Op<PT>>::vector_constant(col_left->get_data(),
302
59
                                                       col_right->get_element(0), vec_res);
303
304
59
            block.replace_by_position(result, std::move(col_res));
305
59
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
297
        return Status::OK();
318
297
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
539
                            const ColumnPtr& col_right_ptr) const {
275
539
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
539
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
539
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
539
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
539
        DCHECK(!(left_is_const && right_is_const));
282
283
540
        if (!left_is_const && !right_is_const) {
284
506
            auto col_res = ColumnUInt8::create();
285
286
506
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
506
            vec_res.resize(col_left->get_data().size());
288
506
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
506
                              typename PrimitiveTypeTraits<PT>::CppType,
290
506
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
506
                                                     vec_res);
292
293
506
            block.replace_by_position(result, std::move(col_res));
294
506
        } else if (!left_is_const && right_is_const) {
295
34
            auto col_res = ColumnUInt8::create();
296
297
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
34
            vec_res.resize(col_left->size());
299
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
34
                              typename PrimitiveTypeTraits<PT>::CppType,
301
34
                              Op<PT>>::vector_constant(col_left->get_data(),
302
34
                                                       col_right->get_element(0), vec_res);
303
304
34
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
539
        return Status::OK();
318
539
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
141
                            const ColumnPtr& col_right_ptr) const {
275
141
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
141
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
141
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
141
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
141
        DCHECK(!(left_is_const && right_is_const));
282
283
141
        if (!left_is_const && !right_is_const) {
284
121
            auto col_res = ColumnUInt8::create();
285
286
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
121
            vec_res.resize(col_left->get_data().size());
288
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
121
                              typename PrimitiveTypeTraits<PT>::CppType,
290
121
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
121
                                                     vec_res);
292
293
121
            block.replace_by_position(result, std::move(col_res));
294
121
        } else if (!left_is_const && right_is_const) {
295
20
            auto col_res = ColumnUInt8::create();
296
297
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20
            vec_res.resize(col_left->size());
299
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20
                                                       col_right->get_element(0), vec_res);
303
304
20
            block.replace_by_position(result, std::move(col_res));
305
20
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
141
        return Status::OK();
318
141
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
714
                            const ColumnPtr& col_right_ptr) const {
275
714
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
714
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
714
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
714
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
714
        DCHECK(!(left_is_const && right_is_const));
282
283
714
        if (!left_is_const && !right_is_const) {
284
179
            auto col_res = ColumnUInt8::create();
285
286
179
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
179
            vec_res.resize(col_left->get_data().size());
288
179
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
179
                              typename PrimitiveTypeTraits<PT>::CppType,
290
179
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
179
                                                     vec_res);
292
293
179
            block.replace_by_position(result, std::move(col_res));
294
535
        } else if (!left_is_const && right_is_const) {
295
535
            auto col_res = ColumnUInt8::create();
296
297
535
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
535
            vec_res.resize(col_left->size());
299
535
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
535
                              typename PrimitiveTypeTraits<PT>::CppType,
301
535
                              Op<PT>>::vector_constant(col_left->get_data(),
302
535
                                                       col_right->get_element(0), vec_res);
303
304
535
            block.replace_by_position(result, std::move(col_res));
305
535
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
714
        return Status::OK();
318
714
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
723
                            const ColumnPtr& col_right_ptr) const {
275
723
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
723
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
723
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
723
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
723
        DCHECK(!(left_is_const && right_is_const));
282
283
723
        if (!left_is_const && !right_is_const) {
284
226
            auto col_res = ColumnUInt8::create();
285
286
226
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
226
            vec_res.resize(col_left->get_data().size());
288
226
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
226
                              typename PrimitiveTypeTraits<PT>::CppType,
290
226
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
226
                                                     vec_res);
292
293
226
            block.replace_by_position(result, std::move(col_res));
294
497
        } else if (!left_is_const && right_is_const) {
295
497
            auto col_res = ColumnUInt8::create();
296
297
497
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
497
            vec_res.resize(col_left->size());
299
497
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
497
                              typename PrimitiveTypeTraits<PT>::CppType,
301
497
                              Op<PT>>::vector_constant(col_left->get_data(),
302
497
                                                       col_right->get_element(0), vec_res);
303
304
497
            block.replace_by_position(result, std::move(col_res));
305
497
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
723
        return Status::OK();
318
723
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
222
                            const ColumnPtr& col_right_ptr) const {
275
222
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
222
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
222
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
222
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
222
        DCHECK(!(left_is_const && right_is_const));
282
283
222
        if (!left_is_const && !right_is_const) {
284
189
            auto col_res = ColumnUInt8::create();
285
286
189
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
189
            vec_res.resize(col_left->get_data().size());
288
189
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
189
                              typename PrimitiveTypeTraits<PT>::CppType,
290
189
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
189
                                                     vec_res);
292
293
189
            block.replace_by_position(result, std::move(col_res));
294
189
        } else if (!left_is_const && right_is_const) {
295
33
            auto col_res = ColumnUInt8::create();
296
297
33
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
33
            vec_res.resize(col_left->size());
299
33
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
33
                              typename PrimitiveTypeTraits<PT>::CppType,
301
33
                              Op<PT>>::vector_constant(col_left->get_data(),
302
33
                                                       col_right->get_element(0), vec_res);
303
304
33
            block.replace_by_position(result, std::move(col_res));
305
33
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
222
        return Status::OK();
318
222
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
128
                            const ColumnPtr& col_right_ptr) const {
275
128
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
128
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
128
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
128
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
128
        DCHECK(!(left_is_const && right_is_const));
282
283
128
        if (!left_is_const && !right_is_const) {
284
127
            auto col_res = ColumnUInt8::create();
285
286
127
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
127
            vec_res.resize(col_left->get_data().size());
288
127
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
127
                              typename PrimitiveTypeTraits<PT>::CppType,
290
127
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
127
                                                     vec_res);
292
293
127
            block.replace_by_position(result, std::move(col_res));
294
127
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
128
        return Status::OK();
318
128
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
333
                            const ColumnPtr& col_right_ptr) const {
275
333
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
333
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
333
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
333
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
333
        DCHECK(!(left_is_const && right_is_const));
282
283
334
        if (!left_is_const && !right_is_const) {
284
152
            auto col_res = ColumnUInt8::create();
285
286
152
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
152
            vec_res.resize(col_left->get_data().size());
288
152
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
152
                              typename PrimitiveTypeTraits<PT>::CppType,
290
152
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
152
                                                     vec_res);
292
293
152
            block.replace_by_position(result, std::move(col_res));
294
181
        } else if (!left_is_const && right_is_const) {
295
181
            auto col_res = ColumnUInt8::create();
296
297
181
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
181
            vec_res.resize(col_left->size());
299
181
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
181
                              typename PrimitiveTypeTraits<PT>::CppType,
301
181
                              Op<PT>>::vector_constant(col_left->get_data(),
302
181
                                                       col_right->get_element(0), vec_res);
303
304
181
            block.replace_by_position(result, std::move(col_res));
305
181
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
333
        return Status::OK();
318
333
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
13
                            const ColumnPtr& col_right_ptr) const {
275
13
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
13
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
13
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
13
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
13
        DCHECK(!(left_is_const && right_is_const));
282
283
13
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
13
        } else if (!left_is_const && right_is_const) {
295
13
            auto col_res = ColumnUInt8::create();
296
297
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13
            vec_res.resize(col_left->size());
299
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13
                                                       col_right->get_element(0), vec_res);
303
304
13
            block.replace_by_position(result, std::move(col_res));
305
13
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
13
        return Status::OK();
318
13
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
541
                            const ColumnPtr& col_right_ptr) const {
275
541
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
541
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
541
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
541
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
541
        DCHECK(!(left_is_const && right_is_const));
282
283
542
        if (!left_is_const && !right_is_const) {
284
419
            auto col_res = ColumnUInt8::create();
285
286
419
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
419
            vec_res.resize(col_left->get_data().size());
288
419
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
419
                              typename PrimitiveTypeTraits<PT>::CppType,
290
419
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
419
                                                     vec_res);
292
293
419
            block.replace_by_position(result, std::move(col_res));
294
419
        } else if (!left_is_const && right_is_const) {
295
124
            auto col_res = ColumnUInt8::create();
296
297
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
124
            vec_res.resize(col_left->size());
299
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
124
                              typename PrimitiveTypeTraits<PT>::CppType,
301
124
                              Op<PT>>::vector_constant(col_left->get_data(),
302
124
                                                       col_right->get_element(0), vec_res);
303
304
124
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
541
        return Status::OK();
318
541
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
43
                            const ColumnPtr& col_right_ptr) const {
275
43
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
43
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
43
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
43
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
43
        DCHECK(!(left_is_const && right_is_const));
282
283
43
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
43
        } else if (!left_is_const && right_is_const) {
295
43
            auto col_res = ColumnUInt8::create();
296
297
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
43
            vec_res.resize(col_left->size());
299
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
43
                              typename PrimitiveTypeTraits<PT>::CppType,
301
43
                              Op<PT>>::vector_constant(col_left->get_data(),
302
43
                                                       col_right->get_element(0), vec_res);
303
304
43
            block.replace_by_position(result, std::move(col_res));
305
43
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
43
        return Status::OK();
318
43
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
127
                            const ColumnPtr& col_right_ptr) const {
275
127
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
127
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
127
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
127
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
127
        DCHECK(!(left_is_const && right_is_const));
282
283
127
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
126
        } else if (!left_is_const && right_is_const) {
295
126
            auto col_res = ColumnUInt8::create();
296
297
126
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
126
            vec_res.resize(col_left->size());
299
126
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
126
                              typename PrimitiveTypeTraits<PT>::CppType,
301
126
                              Op<PT>>::vector_constant(col_left->get_data(),
302
126
                                                       col_right->get_element(0), vec_res);
303
304
126
            block.replace_by_position(result, std::move(col_res));
305
126
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
127
        return Status::OK();
318
127
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
209
                            const ColumnPtr& col_right_ptr) const {
275
209
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
209
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
209
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
209
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
209
        DCHECK(!(left_is_const && right_is_const));
282
283
209
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
209
        } else if (!left_is_const && right_is_const) {
295
209
            auto col_res = ColumnUInt8::create();
296
297
209
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
209
            vec_res.resize(col_left->size());
299
209
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
209
                              typename PrimitiveTypeTraits<PT>::CppType,
301
209
                              Op<PT>>::vector_constant(col_left->get_data(),
302
209
                                                       col_right->get_element(0), vec_res);
303
304
209
            block.replace_by_position(result, std::move(col_res));
305
209
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
209
        return Status::OK();
318
209
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
849
                            const ColumnPtr& col_right_ptr) const {
275
849
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
849
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
849
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
849
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
849
        DCHECK(!(left_is_const && right_is_const));
282
283
850
        if (!left_is_const && !right_is_const) {
284
50
            auto col_res = ColumnUInt8::create();
285
286
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
50
            vec_res.resize(col_left->get_data().size());
288
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
50
                              typename PrimitiveTypeTraits<PT>::CppType,
290
50
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
50
                                                     vec_res);
292
293
50
            block.replace_by_position(result, std::move(col_res));
294
800
        } else if (!left_is_const && right_is_const) {
295
800
            auto col_res = ColumnUInt8::create();
296
297
800
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
800
            vec_res.resize(col_left->size());
299
800
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
800
                              typename PrimitiveTypeTraits<PT>::CppType,
301
800
                              Op<PT>>::vector_constant(col_left->get_data(),
302
800
                                                       col_right->get_element(0), vec_res);
303
304
800
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
849
        return Status::OK();
318
849
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
293
                            const ColumnPtr& col_right_ptr) const {
275
293
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
293
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
293
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
293
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
293
        DCHECK(!(left_is_const && right_is_const));
282
283
294
        if (!left_is_const && !right_is_const) {
284
72
            auto col_res = ColumnUInt8::create();
285
286
72
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
72
            vec_res.resize(col_left->get_data().size());
288
72
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
72
                              typename PrimitiveTypeTraits<PT>::CppType,
290
72
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
72
                                                     vec_res);
292
293
72
            block.replace_by_position(result, std::move(col_res));
294
222
        } else if (!left_is_const && right_is_const) {
295
222
            auto col_res = ColumnUInt8::create();
296
297
222
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
222
            vec_res.resize(col_left->size());
299
222
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
222
                              typename PrimitiveTypeTraits<PT>::CppType,
301
222
                              Op<PT>>::vector_constant(col_left->get_data(),
302
222
                                                       col_right->get_element(0), vec_res);
303
304
222
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
293
        return Status::OK();
318
293
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8
                            const ColumnPtr& col_right_ptr) const {
275
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8
        DCHECK(!(left_is_const && right_is_const));
282
283
8
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
8
        } else if (!left_is_const && right_is_const) {
295
8
            auto col_res = ColumnUInt8::create();
296
297
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8
            vec_res.resize(col_left->size());
299
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8
                                                       col_right->get_element(0), vec_res);
303
304
8
            block.replace_by_position(result, std::move(col_res));
305
8
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
8
        return Status::OK();
318
8
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10
                            const ColumnPtr& col_right_ptr) const {
275
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10
        DCHECK(!(left_is_const && right_is_const));
282
283
10
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10
        return Status::OK();
318
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20
                            const ColumnPtr& col_right_ptr) const {
275
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20
        DCHECK(!(left_is_const && right_is_const));
282
283
20
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
20
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
20
        return Status::OK();
318
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
127
                            const ColumnPtr& col_right_ptr) const {
275
127
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
127
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
127
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
127
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
127
        DCHECK(!(left_is_const && right_is_const));
282
283
128
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
108
        } else if (!left_is_const && right_is_const) {
295
108
            auto col_res = ColumnUInt8::create();
296
297
108
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
108
            vec_res.resize(col_left->size());
299
108
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
108
                              typename PrimitiveTypeTraits<PT>::CppType,
301
108
                              Op<PT>>::vector_constant(col_left->get_data(),
302
108
                                                       col_right->get_element(0), vec_res);
303
304
108
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
127
        return Status::OK();
318
127
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
319
320
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
321
3.09k
                           const ColumnWithTypeAndName& col_right) const {
322
3.09k
        auto call = [&](const auto& type) -> bool {
323
3.09k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.09k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.09k
                    block, result, col_left, col_right);
326
3.09k
            return true;
327
3.09k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
171
        auto call = [&](const auto& type) -> bool {
323
171
            using DispatchType = std::decay_t<decltype(type)>;
324
171
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
171
                    block, result, col_left, col_right);
326
171
            return true;
327
171
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
187
        auto call = [&](const auto& type) -> bool {
323
187
            using DispatchType = std::decay_t<decltype(type)>;
324
187
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
187
                    block, result, col_left, col_right);
326
187
            return true;
327
187
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
907
        auto call = [&](const auto& type) -> bool {
323
907
            using DispatchType = std::decay_t<decltype(type)>;
324
907
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
907
                    block, result, col_left, col_right);
326
907
            return true;
327
907
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
34
        auto call = [&](const auto& type) -> bool {
323
34
            using DispatchType = std::decay_t<decltype(type)>;
324
34
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
34
                    block, result, col_left, col_right);
326
34
            return true;
327
34
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
28
        auto call = [&](const auto& type) -> bool {
323
28
            using DispatchType = std::decay_t<decltype(type)>;
324
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
28
                    block, result, col_left, col_right);
326
28
            return true;
327
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
12
        auto call = [&](const auto& type) -> bool {
323
12
            using DispatchType = std::decay_t<decltype(type)>;
324
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
12
                    block, result, col_left, col_right);
326
12
            return true;
327
12
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
65
        auto call = [&](const auto& type) -> bool {
323
65
            using DispatchType = std::decay_t<decltype(type)>;
324
65
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
65
                    block, result, col_left, col_right);
326
65
            return true;
327
65
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
709
        auto call = [&](const auto& type) -> bool {
323
709
            using DispatchType = std::decay_t<decltype(type)>;
324
709
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
709
                    block, result, col_left, col_right);
326
709
            return true;
327
709
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
2
        auto call = [&](const auto& type) -> bool {
323
2
            using DispatchType = std::decay_t<decltype(type)>;
324
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2
                    block, result, col_left, col_right);
326
2
            return true;
327
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
33
        auto call = [&](const auto& type) -> bool {
323
33
            using DispatchType = std::decay_t<decltype(type)>;
324
33
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
33
                    block, result, col_left, col_right);
326
33
            return true;
327
33
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
34
        auto call = [&](const auto& type) -> bool {
323
34
            using DispatchType = std::decay_t<decltype(type)>;
324
34
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
34
                    block, result, col_left, col_right);
326
34
            return true;
327
34
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
21
        auto call = [&](const auto& type) -> bool {
323
21
            using DispatchType = std::decay_t<decltype(type)>;
324
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
21
                    block, result, col_left, col_right);
326
21
            return true;
327
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
208
        auto call = [&](const auto& type) -> bool {
323
208
            using DispatchType = std::decay_t<decltype(type)>;
324
208
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
208
                    block, result, col_left, col_right);
326
208
            return true;
327
208
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
230
        auto call = [&](const auto& type) -> bool {
323
230
            using DispatchType = std::decay_t<decltype(type)>;
324
230
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
230
                    block, result, col_left, col_right);
326
230
            return true;
327
230
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
267
        auto call = [&](const auto& type) -> bool {
323
267
            using DispatchType = std::decay_t<decltype(type)>;
324
267
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
267
                    block, result, col_left, col_right);
326
267
            return true;
327
267
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
8
        auto call = [&](const auto& type) -> bool {
323
8
            using DispatchType = std::decay_t<decltype(type)>;
324
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
8
                    block, result, col_left, col_right);
326
8
            return true;
327
8
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
36
        auto call = [&](const auto& type) -> bool {
323
36
            using DispatchType = std::decay_t<decltype(type)>;
324
36
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
36
                    block, result, col_left, col_right);
326
36
            return true;
327
36
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
36
        auto call = [&](const auto& type) -> bool {
323
36
            using DispatchType = std::decay_t<decltype(type)>;
324
36
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
36
                    block, result, col_left, col_right);
326
36
            return true;
327
36
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
16
        auto call = [&](const auto& type) -> bool {
323
16
            using DispatchType = std::decay_t<decltype(type)>;
324
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
16
                    block, result, col_left, col_right);
326
16
            return true;
327
16
        };
328
329
3.09k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
3.09k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
3.09k
        return Status::OK();
340
3.09k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.29k
                           const ColumnWithTypeAndName& col_right) const {
322
1.29k
        auto call = [&](const auto& type) -> bool {
323
1.29k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.29k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.29k
                    block, result, col_left, col_right);
326
1.29k
            return true;
327
1.29k
        };
328
329
1.29k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
1.29k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
1.29k
        return Status::OK();
340
1.29k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
119
                           const ColumnWithTypeAndName& col_right) const {
322
119
        auto call = [&](const auto& type) -> bool {
323
119
            using DispatchType = std::decay_t<decltype(type)>;
324
119
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
119
                    block, result, col_left, col_right);
326
119
            return true;
327
119
        };
328
329
119
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
119
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
119
        return Status::OK();
340
119
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
788
                           const ColumnWithTypeAndName& col_right) const {
322
788
        auto call = [&](const auto& type) -> bool {
323
788
            using DispatchType = std::decay_t<decltype(type)>;
324
788
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
788
                    block, result, col_left, col_right);
326
788
            return true;
327
788
        };
328
329
788
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
788
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
788
        return Status::OK();
340
788
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
88
                           const ColumnWithTypeAndName& col_right) const {
322
88
        auto call = [&](const auto& type) -> bool {
323
88
            using DispatchType = std::decay_t<decltype(type)>;
324
88
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
88
                    block, result, col_left, col_right);
326
88
            return true;
327
88
        };
328
329
88
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
88
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
88
        return Status::OK();
340
88
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
706
                           const ColumnWithTypeAndName& col_right) const {
322
706
        auto call = [&](const auto& type) -> bool {
323
706
            using DispatchType = std::decay_t<decltype(type)>;
324
706
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
706
                    block, result, col_left, col_right);
326
706
            return true;
327
706
        };
328
329
706
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
706
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
706
        return Status::OK();
340
706
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
96
                           const ColumnWithTypeAndName& col_right) const {
322
96
        auto call = [&](const auto& type) -> bool {
323
96
            using DispatchType = std::decay_t<decltype(type)>;
324
96
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
96
                    block, result, col_left, col_right);
326
96
            return true;
327
96
        };
328
329
96
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
96
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
96
        return Status::OK();
340
96
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
13.0k
                          const IColumn* c1) const {
344
13.0k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
13.0k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
13.0k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
13.0k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
13.0k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
13.0k
        DCHECK(!(c0_const && c1_const));
353
13.0k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
13.0k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
13.0k
        ColumnString::Offset c0_const_size = 0;
356
13.0k
        ColumnString::Offset c1_const_size = 0;
357
358
13.0k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
13.0k
        if (c1_const) {
372
12.1k
            const ColumnString* c1_const_string =
373
12.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
12.1k
            if (c1_const_string) {
376
12.1k
                c1_const_chars = &c1_const_string->get_chars();
377
12.1k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
12.1k
        }
383
384
13.0k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
13.0k
        auto c_res = ColumnUInt8::create();
387
13.0k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
13.0k
        vec_res.resize(c0->size());
389
390
13.0k
        if (c0_string && c1_string) {
391
857
            StringImpl::string_vector_string_vector(
392
857
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
857
                    c1_string->get_offsets(), vec_res);
394
12.2k
        } else if (c0_string && c1_const) {
395
12.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
12.2k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
13.0k
        block.replace_by_position(result, std::move(c_res));
406
13.0k
        return Status::OK();
407
13.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
11.8k
                          const IColumn* c1) const {
344
11.8k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
11.8k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
11.8k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
11.8k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
11.8k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
11.8k
        DCHECK(!(c0_const && c1_const));
353
11.8k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
11.8k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
11.8k
        ColumnString::Offset c0_const_size = 0;
356
11.8k
        ColumnString::Offset c1_const_size = 0;
357
358
11.8k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
11.8k
        if (c1_const) {
372
11.3k
            const ColumnString* c1_const_string =
373
11.3k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
11.3k
            if (c1_const_string) {
376
11.3k
                c1_const_chars = &c1_const_string->get_chars();
377
11.3k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
11.3k
        }
383
384
11.8k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
11.8k
        auto c_res = ColumnUInt8::create();
387
11.8k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
11.8k
        vec_res.resize(c0->size());
389
390
11.8k
        if (c0_string && c1_string) {
391
455
            StringImpl::string_vector_string_vector(
392
455
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
455
                    c1_string->get_offsets(), vec_res);
394
11.3k
        } else if (c0_string && c1_const) {
395
11.3k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
11.3k
                                               *c1_const_chars, c1_const_size, vec_res);
397
11.3k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
11.8k
        block.replace_by_position(result, std::move(c_res));
406
11.8k
        return Status::OK();
407
11.8k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
120
                          const IColumn* c1) const {
344
120
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
120
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
120
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
120
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
120
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
120
        DCHECK(!(c0_const && c1_const));
353
120
        const ColumnString::Chars* c0_const_chars = nullptr;
354
120
        const ColumnString::Chars* c1_const_chars = nullptr;
355
120
        ColumnString::Offset c0_const_size = 0;
356
120
        ColumnString::Offset c1_const_size = 0;
357
358
120
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
120
        if (c1_const) {
372
119
            const ColumnString* c1_const_string =
373
119
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
119
            if (c1_const_string) {
376
119
                c1_const_chars = &c1_const_string->get_chars();
377
119
                c1_const_size = c1_const_string->get_offsets()[0];
378
119
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
119
        }
383
384
120
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
120
        auto c_res = ColumnUInt8::create();
387
120
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
120
        vec_res.resize(c0->size());
389
390
120
        if (c0_string && c1_string) {
391
1
            StringImpl::string_vector_string_vector(
392
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
1
                    c1_string->get_offsets(), vec_res);
394
119
        } else if (c0_string && c1_const) {
395
119
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
119
                                               *c1_const_chars, c1_const_size, vec_res);
397
119
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
120
        block.replace_by_position(result, std::move(c_res));
406
120
        return Status::OK();
407
120
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
189
                          const IColumn* c1) const {
344
189
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
189
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
189
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
189
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
190
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
189
        DCHECK(!(c0_const && c1_const));
353
189
        const ColumnString::Chars* c0_const_chars = nullptr;
354
189
        const ColumnString::Chars* c1_const_chars = nullptr;
355
189
        ColumnString::Offset c0_const_size = 0;
356
189
        ColumnString::Offset c1_const_size = 0;
357
358
189
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
189
        if (c1_const) {
372
187
            const ColumnString* c1_const_string =
373
187
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
188
            if (c1_const_string) {
376
188
                c1_const_chars = &c1_const_string->get_chars();
377
188
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
187
        }
383
384
190
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
190
        auto c_res = ColumnUInt8::create();
387
190
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
190
        vec_res.resize(c0->size());
389
390
190
        if (c0_string && c1_string) {
391
2
            StringImpl::string_vector_string_vector(
392
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
2
                    c1_string->get_offsets(), vec_res);
394
188
        } else if (c0_string && c1_const) {
395
188
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
188
                                               *c1_const_chars, c1_const_size, vec_res);
397
188
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
190
        block.replace_by_position(result, std::move(c_res));
406
190
        return Status::OK();
407
190
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
257
                          const IColumn* c1) const {
344
257
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
257
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
257
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
257
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
258
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
257
        DCHECK(!(c0_const && c1_const));
353
257
        const ColumnString::Chars* c0_const_chars = nullptr;
354
257
        const ColumnString::Chars* c1_const_chars = nullptr;
355
257
        ColumnString::Offset c0_const_size = 0;
356
257
        ColumnString::Offset c1_const_size = 0;
357
358
257
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
257
        if (c1_const) {
372
211
            const ColumnString* c1_const_string =
373
211
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
211
            if (c1_const_string) {
376
210
                c1_const_chars = &c1_const_string->get_chars();
377
210
                c1_const_size = c1_const_string->get_offsets()[0];
378
210
            } else {
379
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
1
                                            c1->get_name(), name);
381
1
            }
382
211
        }
383
384
256
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
256
        auto c_res = ColumnUInt8::create();
387
256
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
256
        vec_res.resize(c0->size());
389
390
258
        if (c0_string && c1_string) {
391
46
            StringImpl::string_vector_string_vector(
392
46
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
46
                    c1_string->get_offsets(), vec_res);
394
212
        } else if (c0_string && c1_const) {
395
212
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
212
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
258
        block.replace_by_position(result, std::move(c_res));
406
258
        return Status::OK();
407
256
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
476
                          const IColumn* c1) const {
344
476
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
476
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
476
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
476
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
476
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
476
        DCHECK(!(c0_const && c1_const));
353
476
        const ColumnString::Chars* c0_const_chars = nullptr;
354
476
        const ColumnString::Chars* c1_const_chars = nullptr;
355
476
        ColumnString::Offset c0_const_size = 0;
356
476
        ColumnString::Offset c1_const_size = 0;
357
358
476
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
476
        if (c1_const) {
372
123
            const ColumnString* c1_const_string =
373
123
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
123
            if (c1_const_string) {
376
123
                c1_const_chars = &c1_const_string->get_chars();
377
123
                c1_const_size = c1_const_string->get_offsets()[0];
378
123
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
123
        }
383
384
476
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
476
        auto c_res = ColumnUInt8::create();
387
476
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
476
        vec_res.resize(c0->size());
389
390
476
        if (c0_string && c1_string) {
391
353
            StringImpl::string_vector_string_vector(
392
353
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
353
                    c1_string->get_offsets(), vec_res);
394
353
        } else if (c0_string && c1_const) {
395
123
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
123
                                               *c1_const_chars, c1_const_size, vec_res);
397
123
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
476
        block.replace_by_position(result, std::move(c_res));
406
476
        return Status::OK();
407
476
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
180
                          const IColumn* c1) const {
344
180
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
180
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
180
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
180
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
180
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
180
        DCHECK(!(c0_const && c1_const));
353
180
        const ColumnString::Chars* c0_const_chars = nullptr;
354
180
        const ColumnString::Chars* c1_const_chars = nullptr;
355
180
        ColumnString::Offset c0_const_size = 0;
356
180
        ColumnString::Offset c1_const_size = 0;
357
358
180
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
180
        if (c1_const) {
372
180
            const ColumnString* c1_const_string =
373
180
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
180
            if (c1_const_string) {
376
180
                c1_const_chars = &c1_const_string->get_chars();
377
180
                c1_const_size = c1_const_string->get_offsets()[0];
378
180
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
180
        }
383
384
180
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
180
        auto c_res = ColumnUInt8::create();
387
180
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
180
        vec_res.resize(c0->size());
389
390
180
        if (c0_string && c1_string) {
391
0
            StringImpl::string_vector_string_vector(
392
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
0
                    c1_string->get_offsets(), vec_res);
394
180
        } else if (c0_string && c1_const) {
395
180
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
180
                                               *c1_const_chars, c1_const_size, vec_res);
397
180
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
180
        block.replace_by_position(result, std::move(c_res));
406
180
        return Status::OK();
407
180
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
93
                                         const IColumn* c1) const {
411
93
        bool c0_const = is_column_const(*c0);
412
93
        bool c1_const = is_column_const(*c1);
413
414
93
        DCHECK(!(c0_const && c1_const));
415
416
93
        auto c_res = ColumnUInt8::create();
417
93
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
93
        vec_res.resize(c0->size());
419
420
93
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
93
        } else if (c1_const) {
423
84
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
84
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
93
        block.replace_by_position(result, std::move(c_res));
429
93
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
17
                                         const IColumn* c1) const {
411
17
        bool c0_const = is_column_const(*c0);
412
17
        bool c1_const = is_column_const(*c1);
413
414
17
        DCHECK(!(c0_const && c1_const));
415
416
17
        auto c_res = ColumnUInt8::create();
417
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
17
        vec_res.resize(c0->size());
419
420
17
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
17
        } else if (c1_const) {
423
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
13
        } else {
425
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
4
        }
427
428
17
        block.replace_by_position(result, std::move(c_res));
429
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
8
                                         const IColumn* c1) const {
411
8
        bool c0_const = is_column_const(*c0);
412
8
        bool c1_const = is_column_const(*c1);
413
414
8
        DCHECK(!(c0_const && c1_const));
415
416
8
        auto c_res = ColumnUInt8::create();
417
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
8
        vec_res.resize(c0->size());
419
420
8
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
8
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
8
        block.replace_by_position(result, std::move(c_res));
429
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
9
                                         const IColumn* c1) const {
411
9
        bool c0_const = is_column_const(*c0);
412
9
        bool c1_const = is_column_const(*c1);
413
414
9
        DCHECK(!(c0_const && c1_const));
415
416
9
        auto c_res = ColumnUInt8::create();
417
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
9
        vec_res.resize(c0->size());
419
420
9
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
9
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
9
        block.replace_by_position(result, std::move(c_res));
429
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
25
                                         const IColumn* c1) const {
411
25
        bool c0_const = is_column_const(*c0);
412
25
        bool c1_const = is_column_const(*c1);
413
414
25
        DCHECK(!(c0_const && c1_const));
415
416
25
        auto c_res = ColumnUInt8::create();
417
25
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
25
        vec_res.resize(c0->size());
419
420
25
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
25
        } else if (c1_const) {
423
24
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
24
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
25
        block.replace_by_position(result, std::move(c_res));
429
25
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
11
                                         const IColumn* c1) const {
411
11
        bool c0_const = is_column_const(*c0);
412
11
        bool c1_const = is_column_const(*c1);
413
414
11
        DCHECK(!(c0_const && c1_const));
415
416
11
        auto c_res = ColumnUInt8::create();
417
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
11
        vec_res.resize(c0->size());
419
420
11
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
11
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
3
        }
427
428
11
        block.replace_by_position(result, std::move(c_res));
429
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
23
                                         const IColumn* c1) const {
411
23
        bool c0_const = is_column_const(*c0);
412
23
        bool c1_const = is_column_const(*c1);
413
414
23
        DCHECK(!(c0_const && c1_const));
415
416
23
        auto c_res = ColumnUInt8::create();
417
23
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
23
        vec_res.resize(c0->size());
419
420
23
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
23
        } else if (c1_const) {
423
23
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
23
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
23
        block.replace_by_position(result, std::move(c_res));
429
23
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
93
                           const ColumnWithTypeAndName& c1) const {
433
93
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
93
        return Status::OK();
435
93
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
17
                           const ColumnWithTypeAndName& c1) const {
433
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
17
        return Status::OK();
435
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
8
                           const ColumnWithTypeAndName& c1) const {
433
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
8
        return Status::OK();
435
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
9
                           const ColumnWithTypeAndName& c1) const {
433
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
9
        return Status::OK();
435
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
25
                           const ColumnWithTypeAndName& c1) const {
433
25
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
25
        return Status::OK();
435
25
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
11
                           const ColumnWithTypeAndName& c1) const {
433
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
11
        return Status::OK();
435
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
23
                           const ColumnWithTypeAndName& c1) const {
433
23
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
23
        return Status::OK();
435
23
    }
436
437
public:
438
220
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
439
440
312k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
247k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.14k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
4.97k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
28.3k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
2.71k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
28.0k
    size_t get_number_of_arguments() const override { return 2; }
441
442
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
443
313k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
313k
        return std::make_shared<DataTypeUInt8>();
445
313k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
247k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
247k
        return std::make_shared<DataTypeUInt8>();
445
247k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.14k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.14k
        return std::make_shared<DataTypeUInt8>();
445
1.14k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
4.97k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
4.97k
        return std::make_shared<DataTypeUInt8>();
445
4.97k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
28.4k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
28.4k
        return std::make_shared<DataTypeUInt8>();
445
28.4k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
2.71k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
2.71k
        return std::make_shared<DataTypeUInt8>();
445
2.71k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
28.0k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
28.0k
        return std::make_shared<DataTypeUInt8>();
445
28.0k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.76k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.76k
        DCHECK(arguments.size() == 1);
454
1.76k
        DCHECK(data_type_with_names.size() == 1);
455
1.76k
        DCHECK(iterators.size() == 1);
456
1.76k
        auto* iter = iterators[0];
457
1.76k
        auto data_type_with_name = data_type_with_names[0];
458
1.76k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.76k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
428
            return Status::OK();
463
428
        }
464
1.33k
        segment_v2::InvertedIndexQueryType query_type;
465
1.33k
        std::string_view name_view(name);
466
1.33k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
871
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
871
        } else if (name_view == NameLess::name) {
469
117
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
344
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
246
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
138
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
1.33k
        if (segment_v2::is_range_query(query_type) &&
481
1.33k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.16k
        Field param_value;
486
1.16k
        arguments[0].column->get(0, param_value);
487
1.16k
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
1.16k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.16k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.16k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.16k
                param_type, &param_value, query_param));
494
495
1.16k
        segment_v2::InvertedIndexParam param;
496
1.16k
        param.column_name = data_type_with_name.first;
497
1.16k
        param.column_type = data_type_with_name.second;
498
1.16k
        param.query_value = query_param->get_value();
499
1.16k
        param.query_type = query_type;
500
1.16k
        param.num_rows = num_rows;
501
1.16k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.16k
        param.analyzer_ctx = analyzer_ctx;
503
1.16k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
1.00k
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
1.00k
        if (iter->has_null()) {
506
1.00k
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
1.00k
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
1.00k
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
1.00k
        }
510
1.00k
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
1.00k
        bitmap_result = result;
512
1.00k
        bitmap_result.mask_out_null();
513
514
1.00k
        if (name_view == NameNotEquals::name) {
515
60
            roaring::Roaring full_result;
516
60
            full_result.addRange(0, num_rows);
517
60
            bitmap_result.op_not(&full_result);
518
60
        }
519
520
1.00k
        return Status::OK();
521
1.00k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
868
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
868
        DCHECK(arguments.size() == 1);
454
868
        DCHECK(data_type_with_names.size() == 1);
455
868
        DCHECK(iterators.size() == 1);
456
868
        auto* iter = iterators[0];
457
868
        auto data_type_with_name = data_type_with_names[0];
458
868
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
868
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
71
            return Status::OK();
463
71
        }
464
797
        segment_v2::InvertedIndexQueryType query_type;
465
797
        std::string_view name_view(name);
466
801
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
801
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
801
        if (segment_v2::is_range_query(query_type) &&
481
801
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
801
        Field param_value;
486
801
        arguments[0].column->get(0, param_value);
487
801
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
800
        auto param_type = arguments[0].type->get_primitive_type();
491
800
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
800
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
800
                param_type, &param_value, query_param));
494
495
799
        segment_v2::InvertedIndexParam param;
496
799
        param.column_name = data_type_with_name.first;
497
799
        param.column_type = data_type_with_name.second;
498
799
        param.query_value = query_param->get_value();
499
799
        param.query_type = query_type;
500
799
        param.num_rows = num_rows;
501
799
        param.roaring = std::make_shared<roaring::Roaring>();
502
799
        param.analyzer_ctx = analyzer_ctx;
503
799
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
749
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
749
        if (iter->has_null()) {
506
746
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
746
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
746
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
746
        }
510
749
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
749
        bitmap_result = result;
512
749
        bitmap_result.mask_out_null();
513
514
749
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
749
        return Status::OK();
521
749
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
77
        DCHECK(arguments.size() == 1);
454
77
        DCHECK(data_type_with_names.size() == 1);
455
77
        DCHECK(iterators.size() == 1);
456
77
        auto* iter = iterators[0];
457
77
        auto data_type_with_name = data_type_with_names[0];
458
77
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
69
        segment_v2::InvertedIndexQueryType query_type;
465
69
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
64
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
64
        if (iter->has_null()) {
506
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
63
        }
510
64
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
64
        bitmap_result = result;
512
64
        bitmap_result.mask_out_null();
513
514
64
        if (name_view == NameNotEquals::name) {
515
60
            roaring::Roaring full_result;
516
60
            full_result.addRange(0, num_rows);
517
60
            bitmap_result.op_not(&full_result);
518
60
        }
519
520
64
        return Status::OK();
521
64
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
176
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
176
        DCHECK(arguments.size() == 1);
454
176
        DCHECK(data_type_with_names.size() == 1);
455
176
        DCHECK(iterators.size() == 1);
456
176
        auto* iter = iterators[0];
457
176
        auto data_type_with_name = data_type_with_names[0];
458
176
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
176
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
114
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
114
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        auto param_type = arguments[0].type->get_primitive_type();
491
86
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
86
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
86
                param_type, &param_value, query_param));
494
495
86
        segment_v2::InvertedIndexParam param;
496
86
        param.column_name = data_type_with_name.first;
497
86
        param.column_type = data_type_with_name.second;
498
86
        param.query_value = query_param->get_value();
499
86
        param.query_type = query_type;
500
86
        param.num_rows = num_rows;
501
86
        param.roaring = std::make_shared<roaring::Roaring>();
502
86
        param.analyzer_ctx = analyzer_ctx;
503
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
67
        if (iter->has_null()) {
506
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
66
        }
510
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
67
        bitmap_result = result;
512
67
        bitmap_result.mask_out_null();
513
514
67
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
67
        return Status::OK();
521
67
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
252
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
252
        DCHECK(arguments.size() == 1);
454
252
        DCHECK(data_type_with_names.size() == 1);
455
252
        DCHECK(iterators.size() == 1);
456
252
        auto* iter = iterators[0];
457
252
        auto data_type_with_name = data_type_with_names[0];
458
252
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
252
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
138
        segment_v2::InvertedIndexQueryType query_type;
465
138
        std::string_view name_view(name);
466
138
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
138
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
138
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
138
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
138
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
138
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
138
        if (segment_v2::is_range_query(query_type) &&
481
138
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
79
        Field param_value;
486
79
        arguments[0].column->get(0, param_value);
487
79
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
79
        auto param_type = arguments[0].type->get_primitive_type();
491
79
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
79
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
79
                param_type, &param_value, query_param));
494
495
79
        segment_v2::InvertedIndexParam param;
496
79
        param.column_name = data_type_with_name.first;
497
79
        param.column_type = data_type_with_name.second;
498
79
        param.query_value = query_param->get_value();
499
79
        param.query_type = query_type;
500
79
        param.num_rows = num_rows;
501
79
        param.roaring = std::make_shared<roaring::Roaring>();
502
79
        param.analyzer_ctx = analyzer_ctx;
503
79
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
39
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
39
        if (iter->has_null()) {
506
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
37
        }
510
39
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
39
        bitmap_result = result;
512
39
        bitmap_result.mask_out_null();
513
514
39
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
39
        return Status::OK();
521
39
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
177
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
177
        DCHECK(arguments.size() == 1);
454
177
        DCHECK(data_type_with_names.size() == 1);
455
177
        DCHECK(iterators.size() == 1);
456
177
        auto* iter = iterators[0];
457
177
        auto data_type_with_name = data_type_with_names[0];
458
177
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
177
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
60
            return Status::OK();
463
60
        }
464
117
        segment_v2::InvertedIndexQueryType query_type;
465
117
        std::string_view name_view(name);
466
117
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
117
        } else if (name_view == NameLess::name) {
469
117
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
117
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
117
        if (segment_v2::is_range_query(query_type) &&
481
117
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
26
            return Status::OK();
484
26
        }
485
91
        Field param_value;
486
91
        arguments[0].column->get(0, param_value);
487
91
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
91
        auto param_type = arguments[0].type->get_primitive_type();
491
91
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
91
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
91
                param_type, &param_value, query_param));
494
495
91
        segment_v2::InvertedIndexParam param;
496
91
        param.column_name = data_type_with_name.first;
497
91
        param.column_type = data_type_with_name.second;
498
91
        param.query_value = query_param->get_value();
499
91
        param.query_type = query_type;
500
91
        param.num_rows = num_rows;
501
91
        param.roaring = std::make_shared<roaring::Roaring>();
502
91
        param.analyzer_ctx = analyzer_ctx;
503
91
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
69
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
69
        if (iter->has_null()) {
506
69
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
69
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
69
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
69
        }
510
69
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
69
        bitmap_result = result;
512
69
        bitmap_result.mask_out_null();
513
514
69
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
69
        return Status::OK();
521
69
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
210
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
210
        DCHECK(arguments.size() == 1);
454
210
        DCHECK(data_type_with_names.size() == 1);
455
210
        DCHECK(iterators.size() == 1);
456
210
        auto* iter = iterators[0];
457
210
        auto data_type_with_name = data_type_with_names[0];
458
210
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
210
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
97
        segment_v2::InvertedIndexQueryType query_type;
465
97
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
97
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        auto param_type = arguments[0].type->get_primitive_type();
491
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
40
                param_type, &param_value, query_param));
494
495
40
        segment_v2::InvertedIndexParam param;
496
40
        param.column_name = data_type_with_name.first;
497
40
        param.column_type = data_type_with_name.second;
498
40
        param.query_value = query_param->get_value();
499
40
        param.query_type = query_type;
500
40
        param.num_rows = num_rows;
501
40
        param.roaring = std::make_shared<roaring::Roaring>();
502
40
        param.analyzer_ctx = analyzer_ctx;
503
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
19
        if (iter->has_null()) {
506
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
19
        }
510
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
19
        bitmap_result = result;
512
19
        bitmap_result.mask_out_null();
513
514
19
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
19
        return Status::OK();
521
19
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
43.7k
                        uint32_t result, size_t input_rows_count) const override {
525
43.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
43.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
43.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
43.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
43.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
43.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
43.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
43.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
43.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
43.7k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
71.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
71.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
71.2k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
29.5k
        auto can_compare = [](PrimitiveType t) -> bool {
563
29.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
29.5k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
3.31k
        auto can_compare = [](PrimitiveType t) -> bool {
563
3.31k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.31k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
17.3k
        auto can_compare = [](PrimitiveType t) -> bool {
563
17.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
17.3k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
4.46k
        auto can_compare = [](PrimitiveType t) -> bool {
563
4.46k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
4.46k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
11.7k
        auto can_compare = [](PrimitiveType t) -> bool {
563
11.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
11.7k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
4.81k
        auto can_compare = [](PrimitiveType t) -> bool {
563
4.81k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
4.81k
        };
565
566
43.7k
        if (can_compare(left_type->get_primitive_type()) &&
567
43.7k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
27.5k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
27.5k
        }
575
576
43.7k
        auto compare_type = left_type->get_primitive_type();
577
43.7k
        switch (compare_type) {
578
180
        case TYPE_BOOLEAN:
579
180
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
4.67k
        case TYPE_DATEV2:
581
4.67k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
1.02k
        case TYPE_DATETIMEV2:
583
1.02k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
16
        case TYPE_TIMESTAMPTZ:
585
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
4.62k
        case TYPE_TINYINT:
587
4.62k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.75k
        case TYPE_SMALLINT:
589
1.75k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
8.65k
        case TYPE_INT:
591
8.65k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
3.78k
        case TYPE_BIGINT:
593
3.78k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
614
        case TYPE_LARGEINT:
595
614
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
69
        case TYPE_IPV4:
597
69
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
48
        case TYPE_IPV6:
599
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
565
        case TYPE_FLOAT:
601
565
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.49k
        case TYPE_DOUBLE:
603
1.49k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
400
        case TYPE_DECIMAL32:
609
1.01k
        case TYPE_DECIMAL64:
610
2.99k
        case TYPE_DECIMAL128I:
611
3.09k
        case TYPE_DECIMAL256:
612
3.09k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
3.09k
                                   col_with_type_and_name_right);
614
868
        case TYPE_CHAR:
615
7.33k
        case TYPE_VARCHAR:
616
13.0k
        case TYPE_STRING:
617
13.0k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
93
        default:
619
93
            return execute_generic(block, result, col_with_type_and_name_left,
620
93
                                   col_with_type_and_name_right);
621
43.7k
        }
622
0
        return Status::OK();
623
43.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
21.3k
                        uint32_t result, size_t input_rows_count) const override {
525
21.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
21.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
21.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
21.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
21.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
21.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
21.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
21.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
21.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
21.3k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
21.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
21.3k
        };
565
566
21.3k
        if (can_compare(left_type->get_primitive_type()) &&
567
21.3k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
8.21k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
8.21k
        }
575
576
21.3k
        auto compare_type = left_type->get_primitive_type();
577
21.3k
        switch (compare_type) {
578
89
        case TYPE_BOOLEAN:
579
89
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
574
        case TYPE_DATEV2:
581
574
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
540
        case TYPE_DATETIMEV2:
583
540
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
3.18k
        case TYPE_TINYINT:
587
3.18k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
427
        case TYPE_SMALLINT:
589
427
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.83k
        case TYPE_INT:
591
1.83k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.00k
        case TYPE_BIGINT:
593
1.00k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
130
        case TYPE_LARGEINT:
595
130
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
30
        case TYPE_IPV4:
597
30
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
30
        case TYPE_IPV6:
599
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
112
        case TYPE_FLOAT:
601
112
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
266
        case TYPE_DOUBLE:
603
266
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
171
        case TYPE_DECIMAL32:
609
358
        case TYPE_DECIMAL64:
610
1.26k
        case TYPE_DECIMAL128I:
611
1.29k
        case TYPE_DECIMAL256:
612
1.29k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.29k
                                   col_with_type_and_name_right);
614
643
        case TYPE_CHAR:
615
6.57k
        case TYPE_VARCHAR:
616
11.8k
        case TYPE_STRING:
617
11.8k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
17
        default:
619
17
            return execute_generic(block, result, col_with_type_and_name_left,
620
17
                                   col_with_type_and_name_right);
621
21.3k
        }
622
0
        return Status::OK();
623
21.3k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
1.78k
                        uint32_t result, size_t input_rows_count) const override {
525
1.78k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
1.78k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
1.78k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
1.78k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
1.78k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
1.78k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
1.78k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
1.78k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
1.78k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
1.78k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
1.78k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
1.78k
        };
565
566
1.78k
        if (can_compare(left_type->get_primitive_type()) &&
567
1.78k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
1.53k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
1.53k
        }
575
576
1.78k
        auto compare_type = left_type->get_primitive_type();
577
1.78k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
41
        case TYPE_DATEV2:
581
41
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
0
        case TYPE_DATETIMEV2:
583
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
0
        case TYPE_TIMESTAMPTZ:
585
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
92
        case TYPE_TINYINT:
587
92
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
0
        case TYPE_SMALLINT:
589
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
883
        case TYPE_INT:
591
883
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
397
        case TYPE_BIGINT:
593
397
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
0
        case TYPE_LARGEINT:
595
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
0
        case TYPE_IPV4:
597
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
51
        case TYPE_FLOAT:
601
51
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
72
        case TYPE_DOUBLE:
603
72
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
0
        case TYPE_DECIMAL32:
609
61
        case TYPE_DECIMAL64:
610
89
        case TYPE_DECIMAL128I:
611
119
        case TYPE_DECIMAL256:
612
119
            return execute_decimal(block, result, col_with_type_and_name_left,
613
119
                                   col_with_type_and_name_right);
614
1
        case TYPE_CHAR:
615
30
        case TYPE_VARCHAR:
616
120
        case TYPE_STRING:
617
120
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
8
        default:
619
8
            return execute_generic(block, result, col_with_type_and_name_left,
620
8
                                   col_with_type_and_name_right);
621
1.78k
        }
622
0
        return Status::OK();
623
1.78k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
9.18k
                        uint32_t result, size_t input_rows_count) const override {
525
9.18k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
9.18k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
9.18k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
9.18k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
9.18k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
9.18k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
9.18k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
9.18k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
9.18k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
9.18k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
9.18k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
9.18k
        };
565
566
9.18k
        if (can_compare(left_type->get_primitive_type()) &&
567
9.18k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
8.19k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
8.19k
        }
575
576
9.18k
        auto compare_type = left_type->get_primitive_type();
577
9.18k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
934
        case TYPE_DATEV2:
581
934
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
2
        case TYPE_DATETIMEV2:
583
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
619
        case TYPE_TINYINT:
587
619
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
835
        case TYPE_SMALLINT:
589
835
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
3.56k
        case TYPE_INT:
591
3.56k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.20k
        case TYPE_BIGINT:
593
1.20k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
243
        case TYPE_LARGEINT:
595
243
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
2
        case TYPE_IPV4:
597
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
228
        case TYPE_FLOAT:
601
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
556
        case TYPE_DOUBLE:
603
556
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
12
        case TYPE_DECIMAL32:
609
77
        case TYPE_DECIMAL64:
610
786
        case TYPE_DECIMAL128I:
611
788
        case TYPE_DECIMAL256:
612
788
            return execute_decimal(block, result, col_with_type_and_name_left,
613
788
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
89
        case TYPE_VARCHAR:
616
189
        case TYPE_STRING:
617
189
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
9
        default:
619
9
            return execute_generic(block, result, col_with_type_and_name_left,
620
9
                                   col_with_type_and_name_right);
621
9.18k
        }
622
0
        return Status::OK();
623
9.18k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
2.41k
                        uint32_t result, size_t input_rows_count) const override {
525
2.41k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
2.41k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
2.41k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
2.41k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
2.41k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
2.41k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
2.41k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
2.41k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
2.41k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
2.41k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
2.41k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
2.41k
        };
565
566
2.41k
        if (can_compare(left_type->get_primitive_type()) &&
567
2.41k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
2.06k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
2.06k
        }
575
576
2.41k
        auto compare_type = left_type->get_primitive_type();
577
2.41k
        switch (compare_type) {
578
7
        case TYPE_BOOLEAN:
579
7
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
515
        case TYPE_DATEV2:
581
515
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
146
        case TYPE_DATETIMEV2:
583
146
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
70
        case TYPE_TINYINT:
587
70
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
143
        case TYPE_SMALLINT:
589
143
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
806
        case TYPE_INT:
591
806
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
162
        case TYPE_BIGINT:
593
162
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
11
        case TYPE_LARGEINT:
595
11
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
11
        case TYPE_IPV4:
597
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
26
        case TYPE_FLOAT:
601
26
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
139
        case TYPE_DOUBLE:
603
139
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
1
        case TYPE_DECIMAL32:
609
34
        case TYPE_DECIMAL64:
610
68
        case TYPE_DECIMAL128I:
611
89
        case TYPE_DECIMAL256:
612
89
            return execute_decimal(block, result, col_with_type_and_name_left,
613
89
                                   col_with_type_and_name_right);
614
19
        case TYPE_CHAR:
615
185
        case TYPE_VARCHAR:
616
258
        case TYPE_STRING:
617
258
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
25
        default:
619
25
            return execute_generic(block, result, col_with_type_and_name_left,
620
25
                                   col_with_type_and_name_right);
621
2.41k
        }
622
0
        return Status::OK();
623
2.41k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
6.46k
                        uint32_t result, size_t input_rows_count) const override {
525
6.46k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
6.46k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
6.46k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
6.46k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
6.46k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
6.46k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
6.46k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
6.46k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
6.46k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
6.46k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
6.46k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.46k
        };
565
566
6.46k
        if (can_compare(left_type->get_primitive_type()) &&
567
6.46k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
5.26k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
5.26k
        }
575
576
6.46k
        auto compare_type = left_type->get_primitive_type();
577
6.46k
        switch (compare_type) {
578
71
        case TYPE_BOOLEAN:
579
71
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.06k
        case TYPE_DATEV2:
581
2.06k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
297
        case TYPE_DATETIMEV2:
583
297
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
4
        case TYPE_TIMESTAMPTZ:
585
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
539
        case TYPE_TINYINT:
587
539
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
141
        case TYPE_SMALLINT:
589
141
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
713
        case TYPE_INT:
591
713
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
724
        case TYPE_BIGINT:
593
724
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
222
        case TYPE_LARGEINT:
595
222
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
16
        case TYPE_IPV4:
597
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
16
        case TYPE_IPV6:
599
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
128
        case TYPE_FLOAT:
601
128
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
332
        case TYPE_DOUBLE:
603
332
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
208
        case TYPE_DECIMAL32:
609
438
        case TYPE_DECIMAL64:
610
705
        case TYPE_DECIMAL128I:
611
706
        case TYPE_DECIMAL256:
612
706
            return execute_decimal(block, result, col_with_type_and_name_left,
613
706
                                   col_with_type_and_name_right);
614
163
        case TYPE_CHAR:
615
330
        case TYPE_VARCHAR:
616
476
        case TYPE_STRING:
617
476
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
11
        default:
619
11
            return execute_generic(block, result, col_with_type_and_name_left,
620
11
                                   col_with_type_and_name_right);
621
6.46k
        }
622
0
        return Status::OK();
623
6.46k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
2.54k
                        uint32_t result, size_t input_rows_count) const override {
525
2.54k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
2.54k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
2.54k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
2.54k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
2.54k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
2.54k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
2.54k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
2.54k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
2.54k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
2.54k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
2.54k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
2.54k
        };
565
566
2.54k
        if (can_compare(left_type->get_primitive_type()) &&
567
2.54k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
2.26k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
2.26k
        }
575
576
2.54k
        auto compare_type = left_type->get_primitive_type();
577
2.54k
        switch (compare_type) {
578
13
        case TYPE_BOOLEAN:
579
13
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
543
        case TYPE_DATEV2:
581
543
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
43
        case TYPE_DATETIMEV2:
583
43
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
127
        case TYPE_TINYINT:
587
127
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
209
        case TYPE_SMALLINT:
589
209
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
849
        case TYPE_INT:
591
849
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
294
        case TYPE_BIGINT:
593
294
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
8
        case TYPE_LARGEINT:
595
8
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
10
        case TYPE_IPV4:
597
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
20
        case TYPE_FLOAT:
601
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
127
        case TYPE_DOUBLE:
603
127
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
8
        case TYPE_DECIMAL32:
609
44
        case TYPE_DECIMAL64:
610
80
        case TYPE_DECIMAL128I:
611
96
        case TYPE_DECIMAL256:
612
96
            return execute_decimal(block, result, col_with_type_and_name_left,
613
96
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
125
        case TYPE_VARCHAR:
616
180
        case TYPE_STRING:
617
180
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
23
        default:
619
23
            return execute_generic(block, result, col_with_type_and_name_left,
620
23
                                   col_with_type_and_name_right);
621
2.54k
        }
622
0
        return Status::OK();
623
2.54k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris