Coverage Report

Created: 2026-06-04 06:55

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