Coverage Report

Created: 2026-04-27 14:44

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