Coverage Report

Created: 2026-08-31 18:53

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 <compare>
24
#include <limits>
25
#include <optional>
26
#include <string_view>
27
#include <type_traits>
28
29
#include "common/check.h"
30
#include "common/logging.h"
31
#include "core/accurate_comparison.h"
32
#include "core/assert_cast.h"
33
#include "core/column/column_const.h"
34
#include "core/column/column_decimal.h"
35
#include "core/column/column_nullable.h"
36
#include "core/column/column_string.h"
37
#include "core/data_type/data_type_nullable.h"
38
#include "core/data_type/data_type_number.h"
39
#include "core/data_type/data_type_string.h"
40
#include "core/data_type/define_primitive_type.h"
41
#include "core/decimal_comparison.h"
42
#include "core/field.h"
43
#include "core/memcmp_small.h"
44
#include "core/value/vdatetime_value.h"
45
#include "exprs/expr_zonemap_filter.h"
46
#include "exprs/function/function.h"
47
#include "exprs/function/function_helpers.h"
48
#include "exprs/function/functions_logical.h"
49
#include "exprs/vexpr.h"
50
#include "storage/index/index_reader_helper.h"
51
#include "storage/index/inverted/inverted_index_iterator.h"
52
53
namespace doris {
54
/** Comparison functions: ==, !=, <, >, <=, >=.
55
  * The comparison functions always return 0 or 1 (UInt8).
56
  *
57
  * You can compare the following types:
58
  * - numbers and decimals;
59
  * - strings and fixed strings;
60
  * - dates;
61
  * - datetimes;
62
  *   within each group, but not from different groups;
63
  * - tuples (lexicographic comparison).
64
  *
65
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
66
  */
67
68
template <typename A, typename B, typename Op>
69
struct NumComparisonImpl {
70
    /// 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.
71
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
72
9.32k
                                        PaddedPODArray<UInt8>& c) {
73
9.32k
        size_t size = a.size();
74
9.32k
        const A* __restrict a_pos = a.data();
75
9.32k
        const B* __restrict b_pos = b.data();
76
9.32k
        UInt8* __restrict c_pos = c.data();
77
9.32k
        const A* __restrict a_end = a_pos + size;
78
79
8.54M
        while (a_pos < a_end) {
80
8.53M
            *c_pos = Op::apply(*a_pos, *b_pos);
81
8.53M
            ++a_pos;
82
8.53M
            ++b_pos;
83
8.53M
            ++c_pos;
84
8.53M
        }
85
9.32k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
72
67
                                        PaddedPODArray<UInt8>& c) {
73
67
        size_t size = a.size();
74
67
        const A* __restrict a_pos = a.data();
75
67
        const B* __restrict b_pos = b.data();
76
67
        UInt8* __restrict c_pos = c.data();
77
67
        const A* __restrict a_end = a_pos + size;
78
79
134
        while (a_pos < a_end) {
80
67
            *c_pos = Op::apply(*a_pos, *b_pos);
81
67
            ++a_pos;
82
67
            ++b_pos;
83
67
            ++c_pos;
84
67
        }
85
67
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
233
                                        PaddedPODArray<UInt8>& c) {
73
233
        size_t size = a.size();
74
233
        const A* __restrict a_pos = a.data();
75
233
        const B* __restrict b_pos = b.data();
76
233
        UInt8* __restrict c_pos = c.data();
77
233
        const A* __restrict a_end = a_pos + size;
78
79
1.40k
        while (a_pos < a_end) {
80
1.17k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1.17k
            ++a_pos;
82
1.17k
            ++b_pos;
83
1.17k
            ++c_pos;
84
1.17k
        }
85
233
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
239
                                        PaddedPODArray<UInt8>& c) {
73
239
        size_t size = a.size();
74
239
        const A* __restrict a_pos = a.data();
75
239
        const B* __restrict b_pos = b.data();
76
239
        UInt8* __restrict c_pos = c.data();
77
239
        const A* __restrict a_end = a_pos + size;
78
79
496
        while (a_pos < a_end) {
80
257
            *c_pos = Op::apply(*a_pos, *b_pos);
81
257
            ++a_pos;
82
257
            ++b_pos;
83
257
            ++c_pos;
84
257
        }
85
239
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
72
3
                                        PaddedPODArray<UInt8>& c) {
73
3
        size_t size = a.size();
74
3
        const A* __restrict a_pos = a.data();
75
3
        const B* __restrict b_pos = b.data();
76
3
        UInt8* __restrict c_pos = c.data();
77
3
        const A* __restrict a_end = a_pos + size;
78
79
13
        while (a_pos < a_end) {
80
10
            *c_pos = Op::apply(*a_pos, *b_pos);
81
10
            ++a_pos;
82
10
            ++b_pos;
83
10
            ++c_pos;
84
10
        }
85
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
141
                                        PaddedPODArray<UInt8>& c) {
73
141
        size_t size = a.size();
74
141
        const A* __restrict a_pos = a.data();
75
141
        const B* __restrict b_pos = b.data();
76
141
        UInt8* __restrict c_pos = c.data();
77
141
        const A* __restrict a_end = a_pos + size;
78
79
424
        while (a_pos < a_end) {
80
283
            *c_pos = Op::apply(*a_pos, *b_pos);
81
283
            ++a_pos;
82
283
            ++b_pos;
83
283
            ++c_pos;
84
283
        }
85
141
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
70
                                        PaddedPODArray<UInt8>& c) {
73
70
        size_t size = a.size();
74
70
        const A* __restrict a_pos = a.data();
75
70
        const B* __restrict b_pos = b.data();
76
70
        UInt8* __restrict c_pos = c.data();
77
70
        const A* __restrict a_end = a_pos + size;
78
79
140
        while (a_pos < a_end) {
80
70
            *c_pos = Op::apply(*a_pos, *b_pos);
81
70
            ++a_pos;
82
70
            ++b_pos;
83
70
            ++c_pos;
84
70
        }
85
70
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
240
                                        PaddedPODArray<UInt8>& c) {
73
240
        size_t size = a.size();
74
240
        const A* __restrict a_pos = a.data();
75
240
        const B* __restrict b_pos = b.data();
76
240
        UInt8* __restrict c_pos = c.data();
77
240
        const A* __restrict a_end = a_pos + size;
78
79
1.73k
        while (a_pos < a_end) {
80
1.49k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1.49k
            ++a_pos;
82
1.49k
            ++b_pos;
83
1.49k
            ++c_pos;
84
1.49k
        }
85
240
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
140
                                        PaddedPODArray<UInt8>& c) {
73
140
        size_t size = a.size();
74
140
        const A* __restrict a_pos = a.data();
75
140
        const B* __restrict b_pos = b.data();
76
140
        UInt8* __restrict c_pos = c.data();
77
140
        const A* __restrict a_end = a_pos + size;
78
79
1.38k
        while (a_pos < a_end) {
80
1.24k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1.24k
            ++a_pos;
82
1.24k
            ++b_pos;
83
1.24k
            ++c_pos;
84
1.24k
        }
85
140
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
80
                                        PaddedPODArray<UInt8>& c) {
73
80
        size_t size = a.size();
74
80
        const A* __restrict a_pos = a.data();
75
80
        const B* __restrict b_pos = b.data();
76
80
        UInt8* __restrict c_pos = c.data();
77
80
        const A* __restrict a_end = a_pos + size;
78
79
160
        while (a_pos < a_end) {
80
80
            *c_pos = Op::apply(*a_pos, *b_pos);
81
80
            ++a_pos;
82
80
            ++b_pos;
83
80
            ++c_pos;
84
80
        }
85
80
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
5
                                        PaddedPODArray<UInt8>& c) {
73
5
        size_t size = a.size();
74
5
        const A* __restrict a_pos = a.data();
75
5
        const B* __restrict b_pos = b.data();
76
5
        UInt8* __restrict c_pos = c.data();
77
5
        const A* __restrict a_end = a_pos + size;
78
79
10
        while (a_pos < a_end) {
80
5
            *c_pos = Op::apply(*a_pos, *b_pos);
81
5
            ++a_pos;
82
5
            ++b_pos;
83
5
            ++c_pos;
84
5
        }
85
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
13
                                        PaddedPODArray<UInt8>& c) {
73
13
        size_t size = a.size();
74
13
        const A* __restrict a_pos = a.data();
75
13
        const B* __restrict b_pos = b.data();
76
13
        UInt8* __restrict c_pos = c.data();
77
13
        const A* __restrict a_end = a_pos + size;
78
79
26
        while (a_pos < a_end) {
80
13
            *c_pos = Op::apply(*a_pos, *b_pos);
81
13
            ++a_pos;
82
13
            ++b_pos;
83
13
            ++c_pos;
84
13
        }
85
13
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
102
                                        PaddedPODArray<UInt8>& c) {
73
102
        size_t size = a.size();
74
102
        const A* __restrict a_pos = a.data();
75
102
        const B* __restrict b_pos = b.data();
76
102
        UInt8* __restrict c_pos = c.data();
77
102
        const A* __restrict a_end = a_pos + size;
78
79
223
        while (a_pos < a_end) {
80
121
            *c_pos = Op::apply(*a_pos, *b_pos);
81
121
            ++a_pos;
82
121
            ++b_pos;
83
121
            ++c_pos;
84
121
        }
85
102
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
95
                                        PaddedPODArray<UInt8>& c) {
73
95
        size_t size = a.size();
74
95
        const A* __restrict a_pos = a.data();
75
95
        const B* __restrict b_pos = b.data();
76
95
        UInt8* __restrict c_pos = c.data();
77
95
        const A* __restrict a_end = a_pos + size;
78
79
211
        while (a_pos < a_end) {
80
116
            *c_pos = Op::apply(*a_pos, *b_pos);
81
116
            ++a_pos;
82
116
            ++b_pos;
83
116
            ++c_pos;
84
116
        }
85
95
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
4
                                        PaddedPODArray<UInt8>& c) {
73
4
        size_t size = a.size();
74
4
        const A* __restrict a_pos = a.data();
75
4
        const B* __restrict b_pos = b.data();
76
4
        UInt8* __restrict c_pos = c.data();
77
4
        const A* __restrict a_end = a_pos + size;
78
79
8
        while (a_pos < a_end) {
80
4
            *c_pos = Op::apply(*a_pos, *b_pos);
81
4
            ++a_pos;
82
4
            ++b_pos;
83
4
            ++c_pos;
84
4
        }
85
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
72
39
                                        PaddedPODArray<UInt8>& c) {
73
39
        size_t size = a.size();
74
39
        const A* __restrict a_pos = a.data();
75
39
        const B* __restrict b_pos = b.data();
76
39
        UInt8* __restrict c_pos = c.data();
77
39
        const A* __restrict a_end = a_pos + size;
78
79
108
        while (a_pos < a_end) {
80
69
            *c_pos = Op::apply(*a_pos, *b_pos);
81
69
            ++a_pos;
82
69
            ++b_pos;
83
69
            ++c_pos;
84
69
        }
85
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
72
56
                                        PaddedPODArray<UInt8>& c) {
73
56
        size_t size = a.size();
74
56
        const A* __restrict a_pos = a.data();
75
56
        const B* __restrict b_pos = b.data();
76
56
        UInt8* __restrict c_pos = c.data();
77
56
        const A* __restrict a_end = a_pos + size;
78
79
252
        while (a_pos < a_end) {
80
196
            *c_pos = Op::apply(*a_pos, *b_pos);
81
196
            ++a_pos;
82
196
            ++b_pos;
83
196
            ++c_pos;
84
196
        }
85
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
72
2.24k
                                        PaddedPODArray<UInt8>& c) {
73
2.24k
        size_t size = a.size();
74
2.24k
        const A* __restrict a_pos = a.data();
75
2.24k
        const B* __restrict b_pos = b.data();
76
2.24k
        UInt8* __restrict c_pos = c.data();
77
2.24k
        const A* __restrict a_end = a_pos + size;
78
79
1.74M
        while (a_pos < a_end) {
80
1.74M
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1.74M
            ++a_pos;
82
1.74M
            ++b_pos;
83
1.74M
            ++c_pos;
84
1.74M
        }
85
2.24k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
344
                                        PaddedPODArray<UInt8>& c) {
73
344
        size_t size = a.size();
74
344
        const A* __restrict a_pos = a.data();
75
344
        const B* __restrict b_pos = b.data();
76
344
        UInt8* __restrict c_pos = c.data();
77
344
        const A* __restrict a_end = a_pos + size;
78
79
6.43k
        while (a_pos < a_end) {
80
6.08k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
6.08k
            ++a_pos;
82
6.08k
            ++b_pos;
83
6.08k
            ++c_pos;
84
6.08k
        }
85
344
    }
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
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
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
72
1.10k
                                        PaddedPODArray<UInt8>& c) {
73
1.10k
        size_t size = a.size();
74
1.10k
        const A* __restrict a_pos = a.data();
75
1.10k
        const B* __restrict b_pos = b.data();
76
1.10k
        UInt8* __restrict c_pos = c.data();
77
1.10k
        const A* __restrict a_end = a_pos + size;
78
79
4.95M
        while (a_pos < a_end) {
80
4.95M
            *c_pos = Op::apply(*a_pos, *b_pos);
81
4.95M
            ++a_pos;
82
4.95M
            ++b_pos;
83
4.95M
            ++c_pos;
84
4.95M
        }
85
1.10k
    }
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
72
2
                                        PaddedPODArray<UInt8>& c) {
73
2
        size_t size = a.size();
74
2
        const A* __restrict a_pos = a.data();
75
2
        const B* __restrict b_pos = b.data();
76
2
        UInt8* __restrict c_pos = c.data();
77
2
        const A* __restrict a_end = a_pos + size;
78
79
11
        while (a_pos < a_end) {
80
9
            *c_pos = Op::apply(*a_pos, *b_pos);
81
9
            ++a_pos;
82
9
            ++b_pos;
83
9
            ++c_pos;
84
9
        }
85
2
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
40
                                        PaddedPODArray<UInt8>& c) {
73
40
        size_t size = a.size();
74
40
        const A* __restrict a_pos = a.data();
75
40
        const B* __restrict b_pos = b.data();
76
40
        UInt8* __restrict c_pos = c.data();
77
40
        const A* __restrict a_end = a_pos + size;
78
79
324
        while (a_pos < a_end) {
80
284
            *c_pos = Op::apply(*a_pos, *b_pos);
81
284
            ++a_pos;
82
284
            ++b_pos;
83
284
            ++c_pos;
84
284
        }
85
40
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
112
                                        PaddedPODArray<UInt8>& c) {
73
112
        size_t size = a.size();
74
112
        const A* __restrict a_pos = a.data();
75
112
        const B* __restrict b_pos = b.data();
76
112
        UInt8* __restrict c_pos = c.data();
77
112
        const A* __restrict a_end = a_pos + size;
78
79
376
        while (a_pos < a_end) {
80
264
            *c_pos = Op::apply(*a_pos, *b_pos);
81
264
            ++a_pos;
82
264
            ++b_pos;
83
264
            ++c_pos;
84
264
        }
85
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
31
                                        PaddedPODArray<UInt8>& c) {
73
31
        size_t size = a.size();
74
31
        const A* __restrict a_pos = a.data();
75
31
        const B* __restrict b_pos = b.data();
76
31
        UInt8* __restrict c_pos = c.data();
77
31
        const A* __restrict a_end = a_pos + size;
78
79
257
        while (a_pos < a_end) {
80
226
            *c_pos = Op::apply(*a_pos, *b_pos);
81
226
            ++a_pos;
82
226
            ++b_pos;
83
226
            ++c_pos;
84
226
        }
85
31
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
64
                                        PaddedPODArray<UInt8>& c) {
73
64
        size_t size = a.size();
74
64
        const A* __restrict a_pos = a.data();
75
64
        const B* __restrict b_pos = b.data();
76
64
        UInt8* __restrict c_pos = c.data();
77
64
        const A* __restrict a_end = a_pos + size;
78
79
570
        while (a_pos < a_end) {
80
506
            *c_pos = Op::apply(*a_pos, *b_pos);
81
506
            ++a_pos;
82
506
            ++b_pos;
83
506
            ++c_pos;
84
506
        }
85
64
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
2
                                        PaddedPODArray<UInt8>& c) {
73
2
        size_t size = a.size();
74
2
        const A* __restrict a_pos = a.data();
75
2
        const B* __restrict b_pos = b.data();
76
2
        UInt8* __restrict c_pos = c.data();
77
2
        const A* __restrict a_end = a_pos + size;
78
79
6
        while (a_pos < a_end) {
80
4
            *c_pos = Op::apply(*a_pos, *b_pos);
81
4
            ++a_pos;
82
4
            ++b_pos;
83
4
            ++c_pos;
84
4
        }
85
2
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
32
                                        PaddedPODArray<UInt8>& c) {
73
32
        size_t size = a.size();
74
32
        const A* __restrict a_pos = a.data();
75
32
        const B* __restrict b_pos = b.data();
76
32
        UInt8* __restrict c_pos = c.data();
77
32
        const A* __restrict a_end = a_pos + size;
78
79
102
        while (a_pos < a_end) {
80
70
            *c_pos = Op::apply(*a_pos, *b_pos);
81
70
            ++a_pos;
82
70
            ++b_pos;
83
70
            ++c_pos;
84
70
        }
85
32
    }
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
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
6
                                        PaddedPODArray<UInt8>& c) {
73
6
        size_t size = a.size();
74
6
        const A* __restrict a_pos = a.data();
75
6
        const B* __restrict b_pos = b.data();
76
6
        UInt8* __restrict c_pos = c.data();
77
6
        const A* __restrict a_end = a_pos + size;
78
79
65
        while (a_pos < a_end) {
80
59
            *c_pos = Op::apply(*a_pos, *b_pos);
81
59
            ++a_pos;
82
59
            ++b_pos;
83
59
            ++c_pos;
84
59
        }
85
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
72
2
                                        PaddedPODArray<UInt8>& c) {
73
2
        size_t size = a.size();
74
2
        const A* __restrict a_pos = a.data();
75
2
        const B* __restrict b_pos = b.data();
76
2
        UInt8* __restrict c_pos = c.data();
77
2
        const A* __restrict a_end = a_pos + size;
78
79
11
        while (a_pos < a_end) {
80
9
            *c_pos = Op::apply(*a_pos, *b_pos);
81
9
            ++a_pos;
82
9
            ++b_pos;
83
9
            ++c_pos;
84
9
        }
85
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
72
5
                                        PaddedPODArray<UInt8>& c) {
73
5
        size_t size = a.size();
74
5
        const A* __restrict a_pos = a.data();
75
5
        const B* __restrict b_pos = b.data();
76
5
        UInt8* __restrict c_pos = c.data();
77
5
        const A* __restrict a_end = a_pos + size;
78
79
21
        while (a_pos < a_end) {
80
16
            *c_pos = Op::apply(*a_pos, *b_pos);
81
16
            ++a_pos;
82
16
            ++b_pos;
83
16
            ++c_pos;
84
16
        }
85
5
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
8
                                        PaddedPODArray<UInt8>& c) {
73
8
        size_t size = a.size();
74
8
        const A* __restrict a_pos = a.data();
75
8
        const B* __restrict b_pos = b.data();
76
8
        UInt8* __restrict c_pos = c.data();
77
8
        const A* __restrict a_end = a_pos + size;
78
79
62
        while (a_pos < a_end) {
80
54
            *c_pos = Op::apply(*a_pos, *b_pos);
81
54
            ++a_pos;
82
54
            ++b_pos;
83
54
            ++c_pos;
84
54
        }
85
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
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
24
                                        PaddedPODArray<UInt8>& c) {
73
24
        size_t size = a.size();
74
24
        const A* __restrict a_pos = a.data();
75
24
        const B* __restrict b_pos = b.data();
76
24
        UInt8* __restrict c_pos = c.data();
77
24
        const A* __restrict a_end = a_pos + size;
78
79
67
        while (a_pos < a_end) {
80
43
            *c_pos = Op::apply(*a_pos, *b_pos);
81
43
            ++a_pos;
82
43
            ++b_pos;
83
43
            ++c_pos;
84
43
        }
85
24
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
72
92
                                        PaddedPODArray<UInt8>& c) {
73
92
        size_t size = a.size();
74
92
        const A* __restrict a_pos = a.data();
75
92
        const B* __restrict b_pos = b.data();
76
92
        UInt8* __restrict c_pos = c.data();
77
92
        const A* __restrict a_end = a_pos + size;
78
79
358
        while (a_pos < a_end) {
80
266
            *c_pos = Op::apply(*a_pos, *b_pos);
81
266
            ++a_pos;
82
266
            ++b_pos;
83
266
            ++c_pos;
84
266
        }
85
92
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
1.65k
                                        PaddedPODArray<UInt8>& c) {
73
1.65k
        size_t size = a.size();
74
1.65k
        const A* __restrict a_pos = a.data();
75
1.65k
        const B* __restrict b_pos = b.data();
76
1.65k
        UInt8* __restrict c_pos = c.data();
77
1.65k
        const A* __restrict a_end = a_pos + size;
78
79
1.80M
        while (a_pos < a_end) {
80
1.80M
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1.80M
            ++a_pos;
82
1.80M
            ++b_pos;
83
1.80M
            ++c_pos;
84
1.80M
        }
85
1.65k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
275
                                        PaddedPODArray<UInt8>& c) {
73
275
        size_t size = a.size();
74
275
        const A* __restrict a_pos = a.data();
75
275
        const B* __restrict b_pos = b.data();
76
275
        UInt8* __restrict c_pos = c.data();
77
275
        const A* __restrict a_end = a_pos + size;
78
79
898
        while (a_pos < a_end) {
80
623
            *c_pos = Op::apply(*a_pos, *b_pos);
81
623
            ++a_pos;
82
623
            ++b_pos;
83
623
            ++c_pos;
84
623
        }
85
275
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
72
2
                                        PaddedPODArray<UInt8>& c) {
73
2
        size_t size = a.size();
74
2
        const A* __restrict a_pos = a.data();
75
2
        const B* __restrict b_pos = b.data();
76
2
        UInt8* __restrict c_pos = c.data();
77
2
        const A* __restrict a_end = a_pos + size;
78
79
11
        while (a_pos < a_end) {
80
9
            *c_pos = Op::apply(*a_pos, *b_pos);
81
9
            ++a_pos;
82
9
            ++b_pos;
83
9
            ++c_pos;
84
9
        }
85
2
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
151
                                        PaddedPODArray<UInt8>& c) {
73
151
        size_t size = a.size();
74
151
        const A* __restrict a_pos = a.data();
75
151
        const B* __restrict b_pos = b.data();
76
151
        UInt8* __restrict c_pos = c.data();
77
151
        const A* __restrict a_end = a_pos + size;
78
79
476
        while (a_pos < a_end) {
80
325
            *c_pos = Op::apply(*a_pos, *b_pos);
81
325
            ++a_pos;
82
325
            ++b_pos;
83
325
            ++c_pos;
84
325
        }
85
151
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
126
                                        PaddedPODArray<UInt8>& c) {
73
126
        size_t size = a.size();
74
126
        const A* __restrict a_pos = a.data();
75
126
        const B* __restrict b_pos = b.data();
76
126
        UInt8* __restrict c_pos = c.data();
77
126
        const A* __restrict a_end = a_pos + size;
78
79
428
        while (a_pos < a_end) {
80
302
            *c_pos = Op::apply(*a_pos, *b_pos);
81
302
            ++a_pos;
82
302
            ++b_pos;
83
302
            ++c_pos;
84
302
        }
85
126
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
166
                                        PaddedPODArray<UInt8>& c) {
73
166
        size_t size = a.size();
74
166
        const A* __restrict a_pos = a.data();
75
166
        const B* __restrict b_pos = b.data();
76
166
        UInt8* __restrict c_pos = c.data();
77
166
        const A* __restrict a_end = a_pos + size;
78
79
1.00k
        while (a_pos < a_end) {
80
843
            *c_pos = Op::apply(*a_pos, *b_pos);
81
843
            ++a_pos;
82
843
            ++b_pos;
83
843
            ++c_pos;
84
843
        }
85
166
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
215
                                        PaddedPODArray<UInt8>& c) {
73
215
        size_t size = a.size();
74
215
        const A* __restrict a_pos = a.data();
75
215
        const B* __restrict b_pos = b.data();
76
215
        UInt8* __restrict c_pos = c.data();
77
215
        const A* __restrict a_end = a_pos + size;
78
79
5.38k
        while (a_pos < a_end) {
80
5.16k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
5.16k
            ++a_pos;
82
5.16k
            ++b_pos;
83
5.16k
            ++c_pos;
84
5.16k
        }
85
215
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
159
                                        PaddedPODArray<UInt8>& c) {
73
159
        size_t size = a.size();
74
159
        const A* __restrict a_pos = a.data();
75
159
        const B* __restrict b_pos = b.data();
76
159
        UInt8* __restrict c_pos = c.data();
77
159
        const A* __restrict a_end = a_pos + size;
78
79
492
        while (a_pos < a_end) {
80
333
            *c_pos = Op::apply(*a_pos, *b_pos);
81
333
            ++a_pos;
82
333
            ++b_pos;
83
333
            ++c_pos;
84
333
        }
85
159
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
16
                                        PaddedPODArray<UInt8>& c) {
73
16
        size_t size = a.size();
74
16
        const A* __restrict a_pos = a.data();
75
16
        const B* __restrict b_pos = b.data();
76
16
        UInt8* __restrict c_pos = c.data();
77
16
        const A* __restrict a_end = a_pos + size;
78
79
32
        while (a_pos < a_end) {
80
16
            *c_pos = Op::apply(*a_pos, *b_pos);
81
16
            ++a_pos;
82
16
            ++b_pos;
83
16
            ++c_pos;
84
16
        }
85
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
16
                                        PaddedPODArray<UInt8>& c) {
73
16
        size_t size = a.size();
74
16
        const A* __restrict a_pos = a.data();
75
16
        const B* __restrict b_pos = b.data();
76
16
        UInt8* __restrict c_pos = c.data();
77
16
        const A* __restrict a_end = a_pos + size;
78
79
32
        while (a_pos < a_end) {
80
16
            *c_pos = Op::apply(*a_pos, *b_pos);
81
16
            ++a_pos;
82
16
            ++b_pos;
83
16
            ++c_pos;
84
16
        }
85
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
161
                                        PaddedPODArray<UInt8>& c) {
73
161
        size_t size = a.size();
74
161
        const A* __restrict a_pos = a.data();
75
161
        const B* __restrict b_pos = b.data();
76
161
        UInt8* __restrict c_pos = c.data();
77
161
        const A* __restrict a_end = a_pos + size;
78
79
515
        while (a_pos < a_end) {
80
354
            *c_pos = Op::apply(*a_pos, *b_pos);
81
354
            ++a_pos;
82
354
            ++b_pos;
83
354
            ++c_pos;
84
354
        }
85
161
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
155
                                        PaddedPODArray<UInt8>& c) {
73
155
        size_t size = a.size();
74
155
        const A* __restrict a_pos = a.data();
75
155
        const B* __restrict b_pos = b.data();
76
155
        UInt8* __restrict c_pos = c.data();
77
155
        const A* __restrict a_end = a_pos + size;
78
79
512
        while (a_pos < a_end) {
80
357
            *c_pos = Op::apply(*a_pos, *b_pos);
81
357
            ++a_pos;
82
357
            ++b_pos;
83
357
            ++c_pos;
84
357
        }
85
155
    }
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
72
406
                                        PaddedPODArray<UInt8>& c) {
73
406
        size_t size = a.size();
74
406
        const A* __restrict a_pos = a.data();
75
406
        const B* __restrict b_pos = b.data();
76
406
        UInt8* __restrict c_pos = c.data();
77
406
        const A* __restrict a_end = a_pos + size;
78
79
6.76k
        while (a_pos < a_end) {
80
6.35k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
6.35k
            ++a_pos;
82
6.35k
            ++b_pos;
83
6.35k
            ++c_pos;
84
6.35k
        }
85
406
    }
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
72
2
                                        PaddedPODArray<UInt8>& c) {
73
2
        size_t size = a.size();
74
2
        const A* __restrict a_pos = a.data();
75
2
        const B* __restrict b_pos = b.data();
76
2
        UInt8* __restrict c_pos = c.data();
77
2
        const A* __restrict a_end = a_pos + size;
78
79
11
        while (a_pos < a_end) {
80
9
            *c_pos = Op::apply(*a_pos, *b_pos);
81
9
            ++a_pos;
82
9
            ++b_pos;
83
9
            ++c_pos;
84
9
        }
85
2
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
5
        while (a_pos < a_end) {
80
4
            *c_pos = Op::apply(*a_pos, *b_pos);
81
4
            ++a_pos;
82
4
            ++b_pos;
83
4
            ++c_pos;
84
4
        }
85
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
72
23
                                        PaddedPODArray<UInt8>& c) {
73
23
        size_t size = a.size();
74
23
        const A* __restrict a_pos = a.data();
75
23
        const B* __restrict b_pos = b.data();
76
23
        UInt8* __restrict c_pos = c.data();
77
23
        const A* __restrict a_end = a_pos + size;
78
79
105
        while (a_pos < a_end) {
80
82
            *c_pos = Op::apply(*a_pos, *b_pos);
81
82
            ++a_pos;
82
82
            ++b_pos;
83
82
            ++c_pos;
84
82
        }
85
23
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
31
                                        PaddedPODArray<UInt8>& c) {
73
31
        size_t size = a.size();
74
31
        const A* __restrict a_pos = a.data();
75
31
        const B* __restrict b_pos = b.data();
76
31
        UInt8* __restrict c_pos = c.data();
77
31
        const A* __restrict a_end = a_pos + size;
78
79
69
        while (a_pos < a_end) {
80
38
            *c_pos = Op::apply(*a_pos, *b_pos);
81
38
            ++a_pos;
82
38
            ++b_pos;
83
38
            ++c_pos;
84
38
        }
85
31
    }
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
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
86
87
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
88
98.1k
                                          PaddedPODArray<UInt8>& c) {
89
98.1k
        size_t size = a.size();
90
98.1k
        const A* __restrict a_pos = a.data();
91
98.1k
        UInt8* __restrict c_pos = c.data();
92
98.1k
        const A* __restrict a_end = a_pos + size;
93
94
32.2M
        while (a_pos < a_end) {
95
32.1M
            *c_pos = Op::apply(*a_pos, b);
96
32.1M
            ++a_pos;
97
32.1M
            ++c_pos;
98
32.1M
        }
99
98.1k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
88
24
                                          PaddedPODArray<UInt8>& c) {
89
24
        size_t size = a.size();
90
24
        const A* __restrict a_pos = a.data();
91
24
        UInt8* __restrict c_pos = c.data();
92
24
        const A* __restrict a_end = a_pos + size;
93
94
168
        while (a_pos < a_end) {
95
144
            *c_pos = Op::apply(*a_pos, b);
96
144
            ++a_pos;
97
144
            ++c_pos;
98
144
        }
99
24
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
504
                                          PaddedPODArray<UInt8>& c) {
89
504
        size_t size = a.size();
90
504
        const A* __restrict a_pos = a.data();
91
504
        UInt8* __restrict c_pos = c.data();
92
504
        const A* __restrict a_end = a_pos + size;
93
94
205k
        while (a_pos < a_end) {
95
204k
            *c_pos = Op::apply(*a_pos, b);
96
204k
            ++a_pos;
97
204k
            ++c_pos;
98
204k
        }
99
504
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
165
                                          PaddedPODArray<UInt8>& c) {
89
165
        size_t size = a.size();
90
165
        const A* __restrict a_pos = a.data();
91
165
        UInt8* __restrict c_pos = c.data();
92
165
        const A* __restrict a_end = a_pos + size;
93
94
100k
        while (a_pos < a_end) {
95
100k
            *c_pos = Op::apply(*a_pos, b);
96
100k
            ++a_pos;
97
100k
            ++c_pos;
98
100k
        }
99
165
    }
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
88
4.75k
                                          PaddedPODArray<UInt8>& c) {
89
4.75k
        size_t size = a.size();
90
4.75k
        const A* __restrict a_pos = a.data();
91
4.75k
        UInt8* __restrict c_pos = c.data();
92
4.75k
        const A* __restrict a_end = a_pos + size;
93
94
8.81M
        while (a_pos < a_end) {
95
8.80M
            *c_pos = Op::apply(*a_pos, b);
96
8.80M
            ++a_pos;
97
8.80M
            ++c_pos;
98
8.80M
        }
99
4.75k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
311
                                          PaddedPODArray<UInt8>& c) {
89
311
        size_t size = a.size();
90
311
        const A* __restrict a_pos = a.data();
91
311
        UInt8* __restrict c_pos = c.data();
92
311
        const A* __restrict a_end = a_pos + size;
93
94
101k
        while (a_pos < a_end) {
95
100k
            *c_pos = Op::apply(*a_pos, b);
96
100k
            ++a_pos;
97
100k
            ++c_pos;
98
100k
        }
99
311
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.75k
                                          PaddedPODArray<UInt8>& c) {
89
1.75k
        size_t size = a.size();
90
1.75k
        const A* __restrict a_pos = a.data();
91
1.75k
        UInt8* __restrict c_pos = c.data();
92
1.75k
        const A* __restrict a_end = a_pos + size;
93
94
198k
        while (a_pos < a_end) {
95
196k
            *c_pos = Op::apply(*a_pos, b);
96
196k
            ++a_pos;
97
196k
            ++c_pos;
98
196k
        }
99
1.75k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
2.80k
                                          PaddedPODArray<UInt8>& c) {
89
2.80k
        size_t size = a.size();
90
2.80k
        const A* __restrict a_pos = a.data();
91
2.80k
        UInt8* __restrict c_pos = c.data();
92
2.80k
        const A* __restrict a_end = a_pos + size;
93
94
882k
        while (a_pos < a_end) {
95
879k
            *c_pos = Op::apply(*a_pos, b);
96
879k
            ++a_pos;
97
879k
            ++c_pos;
98
879k
        }
99
2.80k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
43
                                          PaddedPODArray<UInt8>& c) {
89
43
        size_t size = a.size();
90
43
        const A* __restrict a_pos = a.data();
91
43
        UInt8* __restrict c_pos = c.data();
92
43
        const A* __restrict a_end = a_pos + size;
93
94
100k
        while (a_pos < a_end) {
95
100k
            *c_pos = Op::apply(*a_pos, b);
96
100k
            ++a_pos;
97
100k
            ++c_pos;
98
100k
        }
99
43
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
7
                                          PaddedPODArray<UInt8>& c) {
89
7
        size_t size = a.size();
90
7
        const A* __restrict a_pos = a.data();
91
7
        UInt8* __restrict c_pos = c.data();
92
7
        const A* __restrict a_end = a_pos + size;
93
94
21
        while (a_pos < a_end) {
95
14
            *c_pos = Op::apply(*a_pos, b);
96
14
            ++a_pos;
97
14
            ++c_pos;
98
14
        }
99
7
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
4
                                          PaddedPODArray<UInt8>& c) {
89
4
        size_t size = a.size();
90
4
        const A* __restrict a_pos = a.data();
91
4
        UInt8* __restrict c_pos = c.data();
92
4
        const A* __restrict a_end = a_pos + size;
93
94
8
        while (a_pos < a_end) {
95
4
            *c_pos = Op::apply(*a_pos, b);
96
4
            ++a_pos;
97
4
            ++c_pos;
98
4
        }
99
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
835
                                          PaddedPODArray<UInt8>& c) {
89
835
        size_t size = a.size();
90
835
        const A* __restrict a_pos = a.data();
91
835
        UInt8* __restrict c_pos = c.data();
92
835
        const A* __restrict a_end = a_pos + size;
93
94
719k
        while (a_pos < a_end) {
95
718k
            *c_pos = Op::apply(*a_pos, b);
96
718k
            ++a_pos;
97
718k
            ++c_pos;
98
718k
        }
99
835
    }
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
88
31
                                          PaddedPODArray<UInt8>& c) {
89
31
        size_t size = a.size();
90
31
        const A* __restrict a_pos = a.data();
91
31
        UInt8* __restrict c_pos = c.data();
92
31
        const A* __restrict a_end = a_pos + size;
93
94
82
        while (a_pos < a_end) {
95
51
            *c_pos = Op::apply(*a_pos, b);
96
51
            ++a_pos;
97
51
            ++c_pos;
98
51
        }
99
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
28
                                          PaddedPODArray<UInt8>& c) {
89
28
        size_t size = a.size();
90
28
        const A* __restrict a_pos = a.data();
91
28
        UInt8* __restrict c_pos = c.data();
92
28
        const A* __restrict a_end = a_pos + size;
93
94
78
        while (a_pos < a_end) {
95
50
            *c_pos = Op::apply(*a_pos, b);
96
50
            ++a_pos;
97
50
            ++c_pos;
98
50
        }
99
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
262
                                          PaddedPODArray<UInt8>& c) {
89
262
        size_t size = a.size();
90
262
        const A* __restrict a_pos = a.data();
91
262
        UInt8* __restrict c_pos = c.data();
92
262
        const A* __restrict a_end = a_pos + size;
93
94
1.86k
        while (a_pos < a_end) {
95
1.60k
            *c_pos = Op::apply(*a_pos, b);
96
1.60k
            ++a_pos;
97
1.60k
            ++c_pos;
98
1.60k
        }
99
262
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
789
                                          PaddedPODArray<UInt8>& c) {
89
789
        size_t size = a.size();
90
789
        const A* __restrict a_pos = a.data();
91
789
        UInt8* __restrict c_pos = c.data();
92
789
        const A* __restrict a_end = a_pos + size;
93
94
3.92k
        while (a_pos < a_end) {
95
3.13k
            *c_pos = Op::apply(*a_pos, b);
96
3.13k
            ++a_pos;
97
3.13k
            ++c_pos;
98
3.13k
        }
99
789
    }
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
88
28
                                          PaddedPODArray<UInt8>& c) {
89
28
        size_t size = a.size();
90
28
        const A* __restrict a_pos = a.data();
91
28
        UInt8* __restrict c_pos = c.data();
92
28
        const A* __restrict a_end = a_pos + size;
93
94
70
        while (a_pos < a_end) {
95
42
            *c_pos = Op::apply(*a_pos, b);
96
42
            ++a_pos;
97
42
            ++c_pos;
98
42
        }
99
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
40
                                          PaddedPODArray<UInt8>& c) {
89
40
        size_t size = a.size();
90
40
        const A* __restrict a_pos = a.data();
91
40
        UInt8* __restrict c_pos = c.data();
92
40
        const A* __restrict a_end = a_pos + size;
93
94
282
        while (a_pos < a_end) {
95
242
            *c_pos = Op::apply(*a_pos, b);
96
242
            ++a_pos;
97
242
            ++c_pos;
98
242
        }
99
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
88
41
                                          PaddedPODArray<UInt8>& c) {
89
41
        size_t size = a.size();
90
41
        const A* __restrict a_pos = a.data();
91
41
        UInt8* __restrict c_pos = c.data();
92
41
        const A* __restrict a_end = a_pos + size;
93
94
149
        while (a_pos < a_end) {
95
108
            *c_pos = Op::apply(*a_pos, b);
96
108
            ++a_pos;
97
108
            ++c_pos;
98
108
        }
99
41
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
345
                                          PaddedPODArray<UInt8>& c) {
89
345
        size_t size = a.size();
90
345
        const A* __restrict a_pos = a.data();
91
345
        UInt8* __restrict c_pos = c.data();
92
345
        const A* __restrict a_end = a_pos + size;
93
94
1.34M
        while (a_pos < a_end) {
95
1.34M
            *c_pos = Op::apply(*a_pos, b);
96
1.34M
            ++a_pos;
97
1.34M
            ++c_pos;
98
1.34M
        }
99
345
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
2
                                          PaddedPODArray<UInt8>& c) {
89
2
        size_t size = a.size();
90
2
        const A* __restrict a_pos = a.data();
91
2
        UInt8* __restrict c_pos = c.data();
92
2
        const A* __restrict a_end = a_pos + size;
93
94
6
        while (a_pos < a_end) {
95
4
            *c_pos = Op::apply(*a_pos, b);
96
4
            ++a_pos;
97
4
            ++c_pos;
98
4
        }
99
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
59
                                          PaddedPODArray<UInt8>& c) {
89
59
        size_t size = a.size();
90
59
        const A* __restrict a_pos = a.data();
91
59
        UInt8* __restrict c_pos = c.data();
92
59
        const A* __restrict a_end = a_pos + size;
93
94
269
        while (a_pos < a_end) {
95
210
            *c_pos = Op::apply(*a_pos, b);
96
210
            ++a_pos;
97
210
            ++c_pos;
98
210
        }
99
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
88
1
                                          PaddedPODArray<UInt8>& c) {
89
1
        size_t size = a.size();
90
1
        const A* __restrict a_pos = a.data();
91
1
        UInt8* __restrict c_pos = c.data();
92
1
        const A* __restrict a_end = a_pos + size;
93
94
8
        while (a_pos < a_end) {
95
7
            *c_pos = Op::apply(*a_pos, b);
96
7
            ++a_pos;
97
7
            ++c_pos;
98
7
        }
99
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.11k
                                          PaddedPODArray<UInt8>& c) {
89
1.11k
        size_t size = a.size();
90
1.11k
        const A* __restrict a_pos = a.data();
91
1.11k
        UInt8* __restrict c_pos = c.data();
92
1.11k
        const A* __restrict a_end = a_pos + size;
93
94
6.67k
        while (a_pos < a_end) {
95
5.56k
            *c_pos = Op::apply(*a_pos, b);
96
5.56k
            ++a_pos;
97
5.56k
            ++c_pos;
98
5.56k
        }
99
1.11k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.96k
                                          PaddedPODArray<UInt8>& c) {
89
1.96k
        size_t size = a.size();
90
1.96k
        const A* __restrict a_pos = a.data();
91
1.96k
        UInt8* __restrict c_pos = c.data();
92
1.96k
        const A* __restrict a_end = a_pos + size;
93
94
5.52k
        while (a_pos < a_end) {
95
3.56k
            *c_pos = Op::apply(*a_pos, b);
96
3.56k
            ++a_pos;
97
3.56k
            ++c_pos;
98
3.56k
        }
99
1.96k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.45k
                                          PaddedPODArray<UInt8>& c) {
89
1.45k
        size_t size = a.size();
90
1.45k
        const A* __restrict a_pos = a.data();
91
1.45k
        UInt8* __restrict c_pos = c.data();
92
1.45k
        const A* __restrict a_end = a_pos + size;
93
94
6.26k
        while (a_pos < a_end) {
95
4.81k
            *c_pos = Op::apply(*a_pos, b);
96
4.81k
            ++a_pos;
97
4.81k
            ++c_pos;
98
4.81k
        }
99
1.45k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
224
                                          PaddedPODArray<UInt8>& c) {
89
224
        size_t size = a.size();
90
224
        const A* __restrict a_pos = a.data();
91
224
        UInt8* __restrict c_pos = c.data();
92
224
        const A* __restrict a_end = a_pos + size;
93
94
1.20k
        while (a_pos < a_end) {
95
977
            *c_pos = Op::apply(*a_pos, b);
96
977
            ++a_pos;
97
977
            ++c_pos;
98
977
        }
99
224
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
4.83k
                                          PaddedPODArray<UInt8>& c) {
89
4.83k
        size_t size = a.size();
90
4.83k
        const A* __restrict a_pos = a.data();
91
4.83k
        UInt8* __restrict c_pos = c.data();
92
4.83k
        const A* __restrict a_end = a_pos + size;
93
94
959k
        while (a_pos < a_end) {
95
954k
            *c_pos = Op::apply(*a_pos, b);
96
954k
            ++a_pos;
97
954k
            ++c_pos;
98
954k
        }
99
4.83k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
62.9k
                                          PaddedPODArray<UInt8>& c) {
89
62.9k
        size_t size = a.size();
90
62.9k
        const A* __restrict a_pos = a.data();
91
62.9k
        UInt8* __restrict c_pos = c.data();
92
62.9k
        const A* __restrict a_end = a_pos + size;
93
94
5.31M
        while (a_pos < a_end) {
95
5.25M
            *c_pos = Op::apply(*a_pos, b);
96
5.25M
            ++a_pos;
97
5.25M
            ++c_pos;
98
5.25M
        }
99
62.9k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.31k
                                          PaddedPODArray<UInt8>& c) {
89
1.31k
        size_t size = a.size();
90
1.31k
        const A* __restrict a_pos = a.data();
91
1.31k
        UInt8* __restrict c_pos = c.data();
92
1.31k
        const A* __restrict a_end = a_pos + size;
93
94
98.1k
        while (a_pos < a_end) {
95
96.8k
            *c_pos = Op::apply(*a_pos, b);
96
96.8k
            ++a_pos;
97
96.8k
            ++c_pos;
98
96.8k
        }
99
1.31k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.04k
                                          PaddedPODArray<UInt8>& c) {
89
1.04k
        size_t size = a.size();
90
1.04k
        const A* __restrict a_pos = a.data();
91
1.04k
        UInt8* __restrict c_pos = c.data();
92
1.04k
        const A* __restrict a_end = a_pos + size;
93
94
11.7k
        while (a_pos < a_end) {
95
10.7k
            *c_pos = Op::apply(*a_pos, b);
96
10.7k
            ++a_pos;
97
10.7k
            ++c_pos;
98
10.7k
        }
99
1.04k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
297
                                          PaddedPODArray<UInt8>& c) {
89
297
        size_t size = a.size();
90
297
        const A* __restrict a_pos = a.data();
91
297
        UInt8* __restrict c_pos = c.data();
92
297
        const A* __restrict a_end = a_pos + size;
93
94
1.93k
        while (a_pos < a_end) {
95
1.64k
            *c_pos = Op::apply(*a_pos, b);
96
1.64k
            ++a_pos;
97
1.64k
            ++c_pos;
98
1.64k
        }
99
297
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
101
                                          PaddedPODArray<UInt8>& c) {
89
101
        size_t size = a.size();
90
101
        const A* __restrict a_pos = a.data();
91
101
        UInt8* __restrict c_pos = c.data();
92
101
        const A* __restrict a_end = a_pos + size;
93
94
86.2k
        while (a_pos < a_end) {
95
86.1k
            *c_pos = Op::apply(*a_pos, b);
96
86.1k
            ++a_pos;
97
86.1k
            ++c_pos;
98
86.1k
        }
99
101
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
3
                                          PaddedPODArray<UInt8>& c) {
89
3
        size_t size = a.size();
90
3
        const A* __restrict a_pos = a.data();
91
3
        UInt8* __restrict c_pos = c.data();
92
3
        const A* __restrict a_end = a_pos + size;
93
94
31
        while (a_pos < a_end) {
95
28
            *c_pos = Op::apply(*a_pos, b);
96
28
            ++a_pos;
97
28
            ++c_pos;
98
28
        }
99
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
2
                                          PaddedPODArray<UInt8>& c) {
89
2
        size_t size = a.size();
90
2
        const A* __restrict a_pos = a.data();
91
2
        UInt8* __restrict c_pos = c.data();
92
2
        const A* __restrict a_end = a_pos + size;
93
94
22
        while (a_pos < a_end) {
95
20
            *c_pos = Op::apply(*a_pos, b);
96
20
            ++a_pos;
97
20
            ++c_pos;
98
20
        }
99
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
88
200
                                          PaddedPODArray<UInt8>& c) {
89
200
        size_t size = a.size();
90
200
        const A* __restrict a_pos = a.data();
91
200
        UInt8* __restrict c_pos = c.data();
92
200
        const A* __restrict a_end = a_pos + size;
93
94
2.61k
        while (a_pos < a_end) {
95
2.41k
            *c_pos = Op::apply(*a_pos, b);
96
2.41k
            ++a_pos;
97
2.41k
            ++c_pos;
98
2.41k
        }
99
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
506
                                          PaddedPODArray<UInt8>& c) {
89
506
        size_t size = a.size();
90
506
        const A* __restrict a_pos = a.data();
91
506
        UInt8* __restrict c_pos = c.data();
92
506
        const A* __restrict a_end = a_pos + size;
93
94
7.44k
        while (a_pos < a_end) {
95
6.94k
            *c_pos = Op::apply(*a_pos, b);
96
6.94k
            ++a_pos;
97
6.94k
            ++c_pos;
98
6.94k
        }
99
506
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
182
                                          PaddedPODArray<UInt8>& c) {
89
182
        size_t size = a.size();
90
182
        const A* __restrict a_pos = a.data();
91
182
        UInt8* __restrict c_pos = c.data();
92
182
        const A* __restrict a_end = a_pos + size;
93
94
282k
        while (a_pos < a_end) {
95
282k
            *c_pos = Op::apply(*a_pos, b);
96
282k
            ++a_pos;
97
282k
            ++c_pos;
98
282k
        }
99
182
    }
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
88
32
                                          PaddedPODArray<UInt8>& c) {
89
32
        size_t size = a.size();
90
32
        const A* __restrict a_pos = a.data();
91
32
        UInt8* __restrict c_pos = c.data();
92
32
        const A* __restrict a_end = a_pos + size;
93
94
160k
        while (a_pos < a_end) {
95
160k
            *c_pos = Op::apply(*a_pos, b);
96
160k
            ++a_pos;
97
160k
            ++c_pos;
98
160k
        }
99
32
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
88
42
                                          PaddedPODArray<UInt8>& c) {
89
42
        size_t size = a.size();
90
42
        const A* __restrict a_pos = a.data();
91
42
        UInt8* __restrict c_pos = c.data();
92
42
        const A* __restrict a_end = a_pos + size;
93
94
150k
        while (a_pos < a_end) {
95
150k
            *c_pos = Op::apply(*a_pos, b);
96
150k
            ++a_pos;
97
150k
            ++c_pos;
98
150k
        }
99
42
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
451
                                          PaddedPODArray<UInt8>& c) {
89
451
        size_t size = a.size();
90
451
        const A* __restrict a_pos = a.data();
91
451
        UInt8* __restrict c_pos = c.data();
92
451
        const A* __restrict a_end = a_pos + size;
93
94
1.52M
        while (a_pos < a_end) {
95
1.52M
            *c_pos = Op::apply(*a_pos, b);
96
1.52M
            ++a_pos;
97
1.52M
            ++c_pos;
98
1.52M
        }
99
451
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
171
                                          PaddedPODArray<UInt8>& c) {
89
171
        size_t size = a.size();
90
171
        const A* __restrict a_pos = a.data();
91
171
        UInt8* __restrict c_pos = c.data();
92
171
        const A* __restrict a_end = a_pos + size;
93
94
763k
        while (a_pos < a_end) {
95
762k
            *c_pos = Op::apply(*a_pos, b);
96
762k
            ++a_pos;
97
762k
            ++c_pos;
98
762k
        }
99
171
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
137
                                          PaddedPODArray<UInt8>& c) {
89
137
        size_t size = a.size();
90
137
        const A* __restrict a_pos = a.data();
91
137
        UInt8* __restrict c_pos = c.data();
92
137
        const A* __restrict a_end = a_pos + size;
93
94
513
        while (a_pos < a_end) {
95
376
            *c_pos = Op::apply(*a_pos, b);
96
376
            ++a_pos;
97
376
            ++c_pos;
98
376
        }
99
137
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
73
                                          PaddedPODArray<UInt8>& c) {
89
73
        size_t size = a.size();
90
73
        const A* __restrict a_pos = a.data();
91
73
        UInt8* __restrict c_pos = c.data();
92
73
        const A* __restrict a_end = a_pos + size;
93
94
378
        while (a_pos < a_end) {
95
305
            *c_pos = Op::apply(*a_pos, b);
96
305
            ++a_pos;
97
305
            ++c_pos;
98
305
        }
99
73
    }
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
88
90
                                          PaddedPODArray<UInt8>& c) {
89
90
        size_t size = a.size();
90
90
        const A* __restrict a_pos = a.data();
91
90
        UInt8* __restrict c_pos = c.data();
92
90
        const A* __restrict a_end = a_pos + size;
93
94
142k
        while (a_pos < a_end) {
95
142k
            *c_pos = Op::apply(*a_pos, b);
96
142k
            ++a_pos;
97
142k
            ++c_pos;
98
142k
        }
99
90
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
93
                                          PaddedPODArray<UInt8>& c) {
89
93
        size_t size = a.size();
90
93
        const A* __restrict a_pos = a.data();
91
93
        UInt8* __restrict c_pos = c.data();
92
93
        const A* __restrict a_end = a_pos + size;
93
94
120k
        while (a_pos < a_end) {
95
120k
            *c_pos = Op::apply(*a_pos, b);
96
120k
            ++a_pos;
97
120k
            ++c_pos;
98
120k
        }
99
93
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
115
                                          PaddedPODArray<UInt8>& c) {
89
115
        size_t size = a.size();
90
115
        const A* __restrict a_pos = a.data();
91
115
        UInt8* __restrict c_pos = c.data();
92
115
        const A* __restrict a_end = a_pos + size;
93
94
144k
        while (a_pos < a_end) {
95
144k
            *c_pos = Op::apply(*a_pos, b);
96
144k
            ++a_pos;
97
144k
            ++c_pos;
98
144k
        }
99
115
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
133
                                          PaddedPODArray<UInt8>& c) {
89
133
        size_t size = a.size();
90
133
        const A* __restrict a_pos = a.data();
91
133
        UInt8* __restrict c_pos = c.data();
92
133
        const A* __restrict a_end = a_pos + size;
93
94
170k
        while (a_pos < a_end) {
95
170k
            *c_pos = Op::apply(*a_pos, b);
96
170k
            ++a_pos;
97
170k
            ++c_pos;
98
170k
        }
99
133
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.07k
                                          PaddedPODArray<UInt8>& c) {
89
1.07k
        size_t size = a.size();
90
1.07k
        const A* __restrict a_pos = a.data();
91
1.07k
        UInt8* __restrict c_pos = c.data();
92
1.07k
        const A* __restrict a_end = a_pos + size;
93
94
2.47M
        while (a_pos < a_end) {
95
2.47M
            *c_pos = Op::apply(*a_pos, b);
96
2.47M
            ++a_pos;
97
2.47M
            ++c_pos;
98
2.47M
        }
99
1.07k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
5.76k
                                          PaddedPODArray<UInt8>& c) {
89
5.76k
        size_t size = a.size();
90
5.76k
        const A* __restrict a_pos = a.data();
91
5.76k
        UInt8* __restrict c_pos = c.data();
92
5.76k
        const A* __restrict a_end = a_pos + size;
93
94
6.38M
        while (a_pos < a_end) {
95
6.38M
            *c_pos = Op::apply(*a_pos, b);
96
6.38M
            ++a_pos;
97
6.38M
            ++c_pos;
98
6.38M
        }
99
5.76k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
247
                                          PaddedPODArray<UInt8>& c) {
89
247
        size_t size = a.size();
90
247
        const A* __restrict a_pos = a.data();
91
247
        UInt8* __restrict c_pos = c.data();
92
247
        const A* __restrict a_end = a_pos + size;
93
94
803
        while (a_pos < a_end) {
95
556
            *c_pos = Op::apply(*a_pos, b);
96
556
            ++a_pos;
97
556
            ++c_pos;
98
556
        }
99
247
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
316
                                          PaddedPODArray<UInt8>& c) {
89
316
        size_t size = a.size();
90
316
        const A* __restrict a_pos = a.data();
91
316
        UInt8* __restrict c_pos = c.data();
92
316
        const A* __restrict a_end = a_pos + size;
93
94
3.63k
        while (a_pos < a_end) {
95
3.31k
            *c_pos = Op::apply(*a_pos, b);
96
3.31k
            ++a_pos;
97
3.31k
            ++c_pos;
98
3.31k
        }
99
316
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
36
                                          PaddedPODArray<UInt8>& c) {
89
36
        size_t size = a.size();
90
36
        const A* __restrict a_pos = a.data();
91
36
        UInt8* __restrict c_pos = c.data();
92
36
        const A* __restrict a_end = a_pos + size;
93
94
180k
        while (a_pos < a_end) {
95
180k
            *c_pos = Op::apply(*a_pos, b);
96
180k
            ++a_pos;
97
180k
            ++c_pos;
98
180k
        }
99
36
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
49
                                          PaddedPODArray<UInt8>& c) {
89
49
        size_t size = a.size();
90
49
        const A* __restrict a_pos = a.data();
91
49
        UInt8* __restrict c_pos = c.data();
92
49
        const A* __restrict a_end = a_pos + size;
93
94
173k
        while (a_pos < a_end) {
95
173k
            *c_pos = Op::apply(*a_pos, b);
96
173k
            ++a_pos;
97
173k
            ++c_pos;
98
173k
        }
99
49
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
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
88
4
                                          PaddedPODArray<UInt8>& c) {
89
4
        size_t size = a.size();
90
4
        const A* __restrict a_pos = a.data();
91
4
        UInt8* __restrict c_pos = c.data();
92
4
        const A* __restrict a_end = a_pos + size;
93
94
10
        while (a_pos < a_end) {
95
6
            *c_pos = Op::apply(*a_pos, b);
96
6
            ++a_pos;
97
6
            ++c_pos;
98
6
        }
99
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
128
                                          PaddedPODArray<UInt8>& c) {
89
128
        size_t size = a.size();
90
128
        const A* __restrict a_pos = a.data();
91
128
        UInt8* __restrict c_pos = c.data();
92
128
        const A* __restrict a_end = a_pos + size;
93
94
355k
        while (a_pos < a_end) {
95
355k
            *c_pos = Op::apply(*a_pos, b);
96
355k
            ++a_pos;
97
355k
            ++c_pos;
98
355k
        }
99
128
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
93
                                          PaddedPODArray<UInt8>& c) {
89
93
        size_t size = a.size();
90
93
        const A* __restrict a_pos = a.data();
91
93
        UInt8* __restrict c_pos = c.data();
92
93
        const A* __restrict a_end = a_pos + size;
93
94
275k
        while (a_pos < a_end) {
95
275k
            *c_pos = Op::apply(*a_pos, b);
96
275k
            ++a_pos;
97
275k
            ++c_pos;
98
275k
        }
99
93
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
100
101
66.3k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
66.3k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
66.3k
    }
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
101
246
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
246
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
246
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
42
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
42
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
42
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
126
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
126
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
126
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
1.12k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
1.12k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
1.12k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
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
101
758
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
758
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
758
    }
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
101
198
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
198
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
198
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
210
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
210
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
210
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
62.1k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
62.1k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
62.1k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
515
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
515
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
515
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
49
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
49
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
49
    }
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
101
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
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
101
204
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
204
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
204
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
121
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
121
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
121
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
79
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
79
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
79
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
96
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
96
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
96
    }
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
101
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
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
101
321
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
321
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
321
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
104
};
105
106
/// Generic version, implemented for columns of same type.
107
template <typename Op>
108
struct GenericComparisonImpl {
109
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
11
        }
113
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
109
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
6
        }
113
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
109
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
1
        }
113
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
109
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
1
        }
113
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
109
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
3
        }
113
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
114
115
156
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
156
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
569k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
568k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
568k
        }
120
156
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
18
        }
120
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
8
        }
120
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
8
        }
120
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
8
        }
120
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
51
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
51
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
246k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
245k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
245k
        }
120
51
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
68
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
68
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
322k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
322k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
322k
        }
120
68
    }
121
122
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
123
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
124
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
125
};
126
127
template <typename Op>
128
struct StringComparisonImpl {
129
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
130
                                                      const ColumnString::Offsets& a_offsets,
131
                                                      const ColumnString::Chars& b_data,
132
                                                      const ColumnString::Offsets& b_offsets,
133
478
                                                      PaddedPODArray<UInt8>& c) {
134
478
        size_t size = a_offsets.size();
135
478
        ColumnString::Offset prev_a_offset = 0;
136
478
        ColumnString::Offset prev_b_offset = 0;
137
478
        const auto* a_pos = a_data.data();
138
478
        const auto* b_pos = b_data.data();
139
140
1.69k
        for (size_t i = 0; i < size; ++i) {
141
1.21k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
142
1.21k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
143
1.21k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
144
1.21k
                             0);
145
146
1.21k
            prev_a_offset = a_offsets[i];
147
1.21k
            prev_b_offset = b_offsets[i];
148
1.21k
        }
149
478
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
133
2
                                                      PaddedPODArray<UInt8>& c) {
134
2
        size_t size = a_offsets.size();
135
2
        ColumnString::Offset prev_a_offset = 0;
136
2
        ColumnString::Offset prev_b_offset = 0;
137
2
        const auto* a_pos = a_data.data();
138
2
        const auto* b_pos = b_data.data();
139
140
49
        for (size_t i = 0; i < size; ++i) {
141
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
142
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
143
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
144
47
                             0);
145
146
47
            prev_a_offset = a_offsets[i];
147
47
            prev_b_offset = b_offsets[i];
148
47
        }
149
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
133
36
                                                      PaddedPODArray<UInt8>& c) {
134
36
        size_t size = a_offsets.size();
135
36
        ColumnString::Offset prev_a_offset = 0;
136
36
        ColumnString::Offset prev_b_offset = 0;
137
36
        const auto* a_pos = a_data.data();
138
36
        const auto* b_pos = b_data.data();
139
140
230
        for (size_t i = 0; i < size; ++i) {
141
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
142
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
143
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
144
194
                             0);
145
146
194
            prev_a_offset = a_offsets[i];
147
194
            prev_b_offset = b_offsets[i];
148
194
        }
149
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
133
440
                                                      PaddedPODArray<UInt8>& c) {
134
440
        size_t size = a_offsets.size();
135
440
        ColumnString::Offset prev_a_offset = 0;
136
440
        ColumnString::Offset prev_b_offset = 0;
137
440
        const auto* a_pos = a_data.data();
138
440
        const auto* b_pos = b_data.data();
139
140
1.41k
        for (size_t i = 0; i < size; ++i) {
141
972
            c[i] = Op::apply(memcmp_small_allow_overflow15(
142
972
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
143
972
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
144
972
                             0);
145
146
972
            prev_a_offset = a_offsets[i];
147
972
            prev_b_offset = b_offsets[i];
148
972
        }
149
440
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
150
151
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
152
                                                 const ColumnString::Offsets& a_offsets,
153
                                                 const ColumnString::Chars& b_data,
154
                                                 ColumnString::Offset b_size,
155
867
                                                 PaddedPODArray<UInt8>& c) {
156
867
        size_t size = a_offsets.size();
157
867
        ColumnString::Offset prev_a_offset = 0;
158
867
        const auto* a_pos = a_data.data();
159
867
        const auto* b_pos = b_data.data();
160
161
1.45M
        for (size_t i = 0; i < size; ++i) {
162
1.45M
            c[i] = Op::apply(
163
1.45M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
1.45M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
1.45M
                    0);
166
167
1.45M
            prev_a_offset = a_offsets[i];
168
1.45M
        }
169
867
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
155
178
                                                 PaddedPODArray<UInt8>& c) {
156
178
        size_t size = a_offsets.size();
157
178
        ColumnString::Offset prev_a_offset = 0;
158
178
        const auto* a_pos = a_data.data();
159
178
        const auto* b_pos = b_data.data();
160
161
325k
        for (size_t i = 0; i < size; ++i) {
162
325k
            c[i] = Op::apply(
163
325k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
325k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
325k
                    0);
166
167
325k
            prev_a_offset = a_offsets[i];
168
325k
        }
169
178
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
155
94
                                                 PaddedPODArray<UInt8>& c) {
156
94
        size_t size = a_offsets.size();
157
94
        ColumnString::Offset prev_a_offset = 0;
158
94
        const auto* a_pos = a_data.data();
159
94
        const auto* b_pos = b_data.data();
160
161
72.8k
        for (size_t i = 0; i < size; ++i) {
162
72.7k
            c[i] = Op::apply(
163
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
72.7k
                    0);
166
167
72.7k
            prev_a_offset = a_offsets[i];
168
72.7k
        }
169
94
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
155
245
                                                 PaddedPODArray<UInt8>& c) {
156
245
        size_t size = a_offsets.size();
157
245
        ColumnString::Offset prev_a_offset = 0;
158
245
        const auto* a_pos = a_data.data();
159
245
        const auto* b_pos = b_data.data();
160
161
545k
        for (size_t i = 0; i < size; ++i) {
162
545k
            c[i] = Op::apply(
163
545k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
545k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
545k
                    0);
166
167
545k
            prev_a_offset = a_offsets[i];
168
545k
        }
169
245
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
155
350
                                                 PaddedPODArray<UInt8>& c) {
156
350
        size_t size = a_offsets.size();
157
350
        ColumnString::Offset prev_a_offset = 0;
158
350
        const auto* a_pos = a_data.data();
159
350
        const auto* b_pos = b_data.data();
160
161
512k
        for (size_t i = 0; i < size; ++i) {
162
512k
            c[i] = Op::apply(
163
512k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
512k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
512k
                    0);
166
167
512k
            prev_a_offset = a_offsets[i];
168
512k
        }
169
350
    }
170
171
    static void constant_string_vector(const ColumnString::Chars& a_data,
172
                                       ColumnString::Offset a_size,
173
                                       const ColumnString::Chars& b_data,
174
                                       const ColumnString::Offsets& b_offsets,
175
66
                                       PaddedPODArray<UInt8>& c) {
176
66
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
177
66
                                                                               a_data, a_size, c);
178
66
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
175
60
                                       PaddedPODArray<UInt8>& c) {
176
60
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
177
60
                                                                               a_data, a_size, c);
178
60
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
175
6
                                       PaddedPODArray<UInt8>& c) {
176
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
177
6
                                                                               a_data, a_size, c);
178
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
179
};
180
181
template <bool positive>
182
struct StringEqualsImpl {
183
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
184
                                                      const ColumnString::Offsets& a_offsets,
185
                                                      const ColumnString::Chars& b_data,
186
                                                      const ColumnString::Offsets& b_offsets,
187
449
                                                      PaddedPODArray<UInt8>& c) {
188
449
        size_t size = a_offsets.size();
189
449
        ColumnString::Offset prev_a_offset = 0;
190
449
        ColumnString::Offset prev_b_offset = 0;
191
449
        const auto* a_pos = a_data.data();
192
449
        const auto* b_pos = b_data.data();
193
194
1.38k
        for (size_t i = 0; i < size; ++i) {
195
939
            auto a_size = a_offsets[i] - prev_a_offset;
196
939
            auto b_size = b_offsets[i] - prev_b_offset;
197
198
939
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
199
939
                                                               b_pos + prev_b_offset, b_size);
200
201
939
            prev_a_offset = a_offsets[i];
202
939
            prev_b_offset = b_offsets[i];
203
939
        }
204
449
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
187
441
                                                      PaddedPODArray<UInt8>& c) {
188
441
        size_t size = a_offsets.size();
189
441
        ColumnString::Offset prev_a_offset = 0;
190
441
        ColumnString::Offset prev_b_offset = 0;
191
441
        const auto* a_pos = a_data.data();
192
441
        const auto* b_pos = b_data.data();
193
194
1.36k
        for (size_t i = 0; i < size; ++i) {
195
920
            auto a_size = a_offsets[i] - prev_a_offset;
196
920
            auto b_size = b_offsets[i] - prev_b_offset;
197
198
920
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
199
920
                                                               b_pos + prev_b_offset, b_size);
200
201
920
            prev_a_offset = a_offsets[i];
202
920
            prev_b_offset = b_offsets[i];
203
920
        }
204
441
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
187
8
                                                      PaddedPODArray<UInt8>& c) {
188
8
        size_t size = a_offsets.size();
189
8
        ColumnString::Offset prev_a_offset = 0;
190
8
        ColumnString::Offset prev_b_offset = 0;
191
8
        const auto* a_pos = a_data.data();
192
8
        const auto* b_pos = b_data.data();
193
194
27
        for (size_t i = 0; i < size; ++i) {
195
19
            auto a_size = a_offsets[i] - prev_a_offset;
196
19
            auto b_size = b_offsets[i] - prev_b_offset;
197
198
19
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
199
19
                                                               b_pos + prev_b_offset, b_size);
200
201
19
            prev_a_offset = a_offsets[i];
202
19
            prev_b_offset = b_offsets[i];
203
19
        }
204
8
    }
205
206
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
207
                                                 const ColumnString::Offsets& a_offsets,
208
                                                 const ColumnString::Chars& b_data,
209
                                                 ColumnString::Offset b_size,
210
10.1k
                                                 PaddedPODArray<UInt8>& c) {
211
10.1k
        size_t size = a_offsets.size();
212
10.1k
        if (b_size == 0) {
213
2
            auto* __restrict data = c.data();
214
2
            auto* __restrict offsets = a_offsets.data();
215
216
2
            ColumnString::Offset prev_a_offset = 0;
217
7
            for (size_t i = 0; i < size; ++i) {
218
5
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
219
5
                prev_a_offset = offsets[i];
220
5
            }
221
10.1k
        } else {
222
10.1k
            ColumnString::Offset prev_a_offset = 0;
223
10.1k
            const auto* a_pos = a_data.data();
224
10.1k
            const auto* b_pos = b_data.data();
225
1.45M
            for (size_t i = 0; i < size; ++i) {
226
1.44M
                auto a_size = a_offsets[i] - prev_a_offset;
227
1.44M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
228
1.44M
                                                                   b_pos, b_size);
229
1.44M
                prev_a_offset = a_offsets[i];
230
1.44M
            }
231
10.1k
        }
232
10.1k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
210
10.0k
                                                 PaddedPODArray<UInt8>& c) {
211
10.0k
        size_t size = a_offsets.size();
212
10.0k
        if (b_size == 0) {
213
1
            auto* __restrict data = c.data();
214
1
            auto* __restrict offsets = a_offsets.data();
215
216
1
            ColumnString::Offset prev_a_offset = 0;
217
3
            for (size_t i = 0; i < size; ++i) {
218
2
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
219
2
                prev_a_offset = offsets[i];
220
2
            }
221
10.0k
        } else {
222
10.0k
            ColumnString::Offset prev_a_offset = 0;
223
10.0k
            const auto* a_pos = a_data.data();
224
10.0k
            const auto* b_pos = b_data.data();
225
1.41M
            for (size_t i = 0; i < size; ++i) {
226
1.40M
                auto a_size = a_offsets[i] - prev_a_offset;
227
1.40M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
228
1.40M
                                                                   b_pos, b_size);
229
1.40M
                prev_a_offset = a_offsets[i];
230
1.40M
            }
231
10.0k
        }
232
10.0k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
210
146
                                                 PaddedPODArray<UInt8>& c) {
211
146
        size_t size = a_offsets.size();
212
146
        if (b_size == 0) {
213
1
            auto* __restrict data = c.data();
214
1
            auto* __restrict offsets = a_offsets.data();
215
216
1
            ColumnString::Offset prev_a_offset = 0;
217
4
            for (size_t i = 0; i < size; ++i) {
218
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
219
3
                prev_a_offset = offsets[i];
220
3
            }
221
145
        } else {
222
145
            ColumnString::Offset prev_a_offset = 0;
223
145
            const auto* a_pos = a_data.data();
224
145
            const auto* b_pos = b_data.data();
225
44.3k
            for (size_t i = 0; i < size; ++i) {
226
44.2k
                auto a_size = a_offsets[i] - prev_a_offset;
227
44.2k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
228
44.2k
                                                                   b_pos, b_size);
229
44.2k
                prev_a_offset = a_offsets[i];
230
44.2k
            }
231
145
        }
232
146
    }
233
234
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
235
                                                 ColumnString::Offset a_size,
236
                                                 const ColumnString::Chars& b_data,
237
                                                 const ColumnString::Offsets& b_offsets,
238
16
                                                 PaddedPODArray<UInt8>& c) {
239
16
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
240
16
    }
_ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Line
Count
Source
238
16
                                                 PaddedPODArray<UInt8>& c) {
239
16
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
240
16
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
241
};
242
243
template <PrimitiveType PT>
244
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
245
246
template <PrimitiveType PT>
247
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
248
249
struct NameEquals {
250
    static constexpr auto name = "eq";
251
};
252
struct NameNotEquals {
253
    static constexpr auto name = "ne";
254
};
255
struct NameLess {
256
    static constexpr auto name = "lt";
257
};
258
struct NameGreater {
259
    static constexpr auto name = "gt";
260
};
261
struct NameLessOrEquals {
262
    static constexpr auto name = "le";
263
};
264
struct NameGreaterOrEquals {
265
    static constexpr auto name = "ge";
266
};
267
268
namespace comparison_zonemap_detail {
269
enum class Op {
270
    EQ,
271
    NE,
272
    LT,
273
    LE,
274
    GT,
275
    GE,
276
};
277
278
19
inline Op symmetric_op(Op op) {
279
19
    switch (op) {
280
0
    case Op::EQ:
281
0
    case Op::NE:
282
0
        return op;
283
11
    case Op::LT:
284
11
        return Op::GT;
285
6
    case Op::LE:
286
6
        return Op::GE;
287
0
    case Op::GT:
288
0
        return Op::LT;
289
2
    case Op::GE:
290
2
        return Op::LE;
291
19
    }
292
0
    __builtin_unreachable();
293
19
}
294
295
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
296
3.02k
                                    Op op) {
297
3.02k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
298
299
3.02k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal->slot_index,
300
3.02k
                                                              slot_literal->slot_type);
301
3.02k
    if (slot_type == nullptr) {
302
1
        return unsupported_zonemap_filter(ctx);
303
1
    }
304
3.02k
    auto zone_map_ptr = ctx.zone_map(slot_literal->slot_index);
305
3.02k
    if (zone_map_ptr == nullptr) {
306
46
        return unsupported_zonemap_filter(ctx);
307
46
    }
308
2.97k
    const auto& zone_map = *zone_map_ptr;
309
2.97k
    if (!zone_map.has_not_null) {
310
51
        return ZoneMapFilterResult::kNoMatch;
311
51
    }
312
2.92k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
313
210
        return unsupported_zonemap_filter(ctx);
314
210
    }
315
316
2.71k
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
317
2.71k
    const auto& literal = slot_literal->literal;
318
2.71k
    const bool literal_is_nan = literal.is_nan();
319
2.71k
    const bool hidden_nan_can_match = (effective_op == Op::EQ && literal_is_nan) ||
320
2.71k
                                      (effective_op == Op::NE && !literal_is_nan) ||
321
2.71k
                                      (effective_op == Op::GT && !literal_is_nan) ||
322
2.71k
                                      effective_op == Op::GE;
323
2.71k
    if (ctx.floating_nan_count_unknown(slot_literal->slot_index) && hidden_nan_can_match) {
324
        // Parquet bounds omit NaNs, so only operators that cannot match a hidden NaN may prune.
325
52
        return unsupported_zonemap_filter(ctx);
326
52
    }
327
2.66k
    switch (effective_op) {
328
1.47k
    case Op::EQ:
329
1.47k
        return literal < zone_map.min_value || zone_map.max_value < literal
330
1.47k
                       ? ZoneMapFilterResult::kNoMatch
331
1.47k
                       : ZoneMapFilterResult::kMayMatch;
332
102
    case Op::NE:
333
102
        return zone_map.min_value == literal && zone_map.max_value == literal
334
102
                       ? ZoneMapFilterResult::kNoMatch
335
102
                       : ZoneMapFilterResult::kMayMatch;
336
230
    case Op::LT:
337
230
        return zone_map.min_value >= literal ? ZoneMapFilterResult::kNoMatch
338
230
                                             : ZoneMapFilterResult::kMayMatch;
339
303
    case Op::LE:
340
303
        return zone_map.min_value > literal ? ZoneMapFilterResult::kNoMatch
341
303
                                            : ZoneMapFilterResult::kMayMatch;
342
230
    case Op::GT:
343
230
        return zone_map.max_value <= literal ? ZoneMapFilterResult::kNoMatch
344
230
                                             : ZoneMapFilterResult::kMayMatch;
345
328
    case Op::GE:
346
328
        return zone_map.max_value < literal ? ZoneMapFilterResult::kNoMatch
347
328
                                            : ZoneMapFilterResult::kMayMatch;
348
2.66k
    }
349
350
    // keep this to avoid compile failure with g++.
351
0
    __builtin_unreachable();
352
2.66k
}
353
354
30.2k
inline bool can_evaluate(const VExprSPtrs& arguments) {
355
30.2k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
356
30.2k
    if (!slot_literal.has_value()) {
357
19.2k
        return false;
358
19.2k
    }
359
360
    // A NULL literal makes the comparison evaluate to NULL instead of a byte range predicate on
361
    // the slot. This zonemap evaluator only derives bounds from non-NULL literals, so reject this
362
    // shape here before evaluate_zonemap_filter is called.
363
11.0k
    if (slot_literal->literal.is_null()) {
364
4
        return false;
365
4
    }
366
367
11.0k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
368
11.0k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
369
11.0k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
370
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
371
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
372
        // values without running expression casts, so conservatively skip this optimization.
373
1
        return false;
374
1
    }
375
376
11.0k
    return true;
377
11.0k
}
378
379
0
inline bool can_evaluate_equality(const VExprSPtrs& arguments, Op op) {
380
0
    if (op != Op::EQ || !can_evaluate(arguments)) {
381
0
        return false;
382
0
    }
383
0
    const auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
384
0
    DORIS_CHECK(slot_literal.has_value());
385
0
    // Bloom membership cannot disprove Doris NaN equality across different physical encodings.
386
0
    return !slot_literal->literal.is_nan();
387
0
}
388
389
27
inline bool dictionary_value_matches(const Field& value, const Field& literal, Op op) {
390
27
    switch (op) {
391
8
    case Op::EQ:
392
8
        return value == literal;
393
0
    case Op::NE:
394
0
        return value != literal;
395
5
    case Op::LT:
396
5
        return value < literal;
397
0
    case Op::LE:
398
0
        return value <= literal;
399
14
    case Op::GT:
400
14
        return value > literal;
401
0
    case Op::GE:
402
0
        return value >= literal;
403
27
    }
404
0
    __builtin_unreachable();
405
27
}
406
407
inline ZoneMapFilterResult evaluate_dictionary(const DictionaryEvalContext& ctx,
408
14
                                               const VExprSPtrs& arguments, Op op) {
409
14
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
410
14
    DORIS_CHECK(slot_literal.has_value());
411
14
    const auto* dictionary = ctx.slot(slot_literal->slot_index);
412
14
    if (dictionary == nullptr || dictionary->data_type == nullptr) {
413
0
        return ZoneMapFilterResult::kUnsupported;
414
0
    }
415
14
    DORIS_CHECK(
416
14
            expr_zonemap::data_types_compatible(dictionary->data_type, slot_literal->slot_type));
417
14
    if (slot_literal->literal.is_null()) {
418
0
        return ZoneMapFilterResult::kUnsupported;
419
0
    }
420
14
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
421
    // Compare typed Fields so dictionary filtering preserves the regular expression semantics for
422
    // strings, dates, decimals, floating-point edge cases, and every other supported logical type.
423
14
    return std::ranges::any_of(dictionary->values,
424
27
                               [&](const Field& value) {
425
27
                                   return dictionary_value_matches(value, slot_literal->literal,
426
27
                                                                   effective_op);
427
27
                               })
428
14
                   ? ZoneMapFilterResult::kMayMatch
429
14
                   : ZoneMapFilterResult::kNoMatch;
430
14
}
431
432
inline ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
433
19
                                                 const VExprSPtrs& arguments, Op op) {
434
19
    DORIS_CHECK(op == Op::EQ);
435
19
    auto slot_literal = expr_zonemap::extract_bloom_filter_slot_and_literal(arguments);
436
19
    DORIS_CHECK(slot_literal.has_value());
437
19
    return expr_zonemap::eval_eq_bloom_filter(ctx, *slot_literal);
438
19
}
439
440
33.4k
inline std::optional<Op> op_from_name(std::string_view name) {
441
33.4k
    if (name == NameEquals::name) {
442
15.6k
        return Op::EQ;
443
15.6k
    }
444
17.8k
    if (name == NameNotEquals::name) {
445
1.70k
        return Op::NE;
446
1.70k
    }
447
16.0k
    if (name == NameLess::name) {
448
3.48k
        return Op::LT;
449
3.48k
    }
450
12.6k
    if (name == NameLessOrEquals::name) {
451
2.50k
        return Op::LE;
452
2.50k
    }
453
10.1k
    if (name == NameGreater::name) {
454
5.80k
        return Op::GT;
455
5.80k
    }
456
4.39k
    if (name == NameGreaterOrEquals::name) {
457
4.39k
        return Op::GE;
458
4.39k
    }
459
18.4E
    return std::nullopt;
460
4.30k
}
461
} // namespace comparison_zonemap_detail
462
463
template <template <PrimitiveType> class Op, typename Name>
464
class FunctionComparison : public IFunction {
465
public:
466
    static constexpr auto name = Name::name;
467
270k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
467
241k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
467
1.16k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
467
5.00k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
467
8.69k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
467
3.01k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
467
11.0k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
468
469
270k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
469
242k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
469
1.16k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
469
5.01k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
469
8.68k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
469
3.01k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
469
10.9k
    FunctionComparison() = default;
470
471
651k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
471
644k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
471
608
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
471
1.95k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
471
2.05k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
471
1.15k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
471
1.13k
    double execute_cost() const override { return 0.5; }
472
473
private:
474
    template <PrimitiveType PT>
475
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
476
107k
                            const ColumnPtr& col_right_ptr) const {
477
107k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
107k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
107k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
107k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
107k
        DCHECK(!(left_is_const && right_is_const));
484
485
107k
        if (!left_is_const && !right_is_const) {
486
9.32k
            auto col_res = ColumnUInt8::create();
487
488
9.32k
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
9.32k
            vec_res.resize(col_left->get_data().size());
490
9.32k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
9.32k
                              typename PrimitiveTypeTraits<PT>::CppType,
492
9.32k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
9.32k
                                                     vec_res);
494
495
9.32k
            block.replace_by_position(result, std::move(col_res));
496
98.1k
        } else if (!left_is_const && right_is_const) {
497
31.7k
            auto col_res = ColumnUInt8::create();
498
499
31.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
31.7k
            vec_res.resize(col_left->size());
501
31.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
31.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
31.7k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
31.7k
                                                       col_right->get_element(0), vec_res);
505
506
31.7k
            block.replace_by_position(result, std::move(col_res));
507
66.3k
        } else if (left_is_const && !right_is_const) {
508
66.3k
            auto col_res = ColumnUInt8::create();
509
510
66.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
66.3k
            vec_res.resize(col_right->size());
512
66.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
66.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
514
66.3k
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
66.3k
                                                       col_right->get_data(), vec_res);
516
517
66.3k
            block.replace_by_position(result, std::move(col_res));
518
66.3k
        }
519
107k
        return Status::OK();
520
107k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
91
                            const ColumnPtr& col_right_ptr) const {
477
91
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
91
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
91
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
91
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
91
        DCHECK(!(left_is_const && right_is_const));
484
485
91
        if (!left_is_const && !right_is_const) {
486
67
            auto col_res = ColumnUInt8::create();
487
488
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
67
            vec_res.resize(col_left->get_data().size());
490
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
67
                              typename PrimitiveTypeTraits<PT>::CppType,
492
67
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
67
                                                     vec_res);
494
495
67
            block.replace_by_position(result, std::move(col_res));
496
67
        } else if (!left_is_const && right_is_const) {
497
24
            auto col_res = ColumnUInt8::create();
498
499
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
24
            vec_res.resize(col_left->size());
501
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
24
                              typename PrimitiveTypeTraits<PT>::CppType,
503
24
                              Op<PT>>::vector_constant(col_left->get_data(),
504
24
                                                       col_right->get_element(0), vec_res);
505
506
24
            block.replace_by_position(result, std::move(col_res));
507
24
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
91
        return Status::OK();
520
91
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
736
                            const ColumnPtr& col_right_ptr) const {
477
736
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
736
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
736
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
736
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
736
        DCHECK(!(left_is_const && right_is_const));
484
485
736
        if (!left_is_const && !right_is_const) {
486
232
            auto col_res = ColumnUInt8::create();
487
488
232
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
232
            vec_res.resize(col_left->get_data().size());
490
232
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
232
                              typename PrimitiveTypeTraits<PT>::CppType,
492
232
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
232
                                                     vec_res);
494
495
232
            block.replace_by_position(result, std::move(col_res));
496
504
        } else if (!left_is_const && right_is_const) {
497
504
            auto col_res = ColumnUInt8::create();
498
499
504
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
504
            vec_res.resize(col_left->size());
501
504
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
504
                              typename PrimitiveTypeTraits<PT>::CppType,
503
504
                              Op<PT>>::vector_constant(col_left->get_data(),
504
504
                                                       col_right->get_element(0), vec_res);
505
506
504
            block.replace_by_position(result, std::move(col_res));
507
504
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
736
        return Status::OK();
520
736
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
404
                            const ColumnPtr& col_right_ptr) const {
477
404
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
404
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
404
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
404
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
404
        DCHECK(!(left_is_const && right_is_const));
484
485
404
        if (!left_is_const && !right_is_const) {
486
239
            auto col_res = ColumnUInt8::create();
487
488
239
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
239
            vec_res.resize(col_left->get_data().size());
490
239
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
239
                              typename PrimitiveTypeTraits<PT>::CppType,
492
239
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
239
                                                     vec_res);
494
495
239
            block.replace_by_position(result, std::move(col_res));
496
239
        } else if (!left_is_const && right_is_const) {
497
165
            auto col_res = ColumnUInt8::create();
498
499
165
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
165
            vec_res.resize(col_left->size());
501
165
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
165
                              typename PrimitiveTypeTraits<PT>::CppType,
503
165
                              Op<PT>>::vector_constant(col_left->get_data(),
504
165
                                                       col_right->get_element(0), vec_res);
505
506
165
            block.replace_by_position(result, std::move(col_res));
507
165
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
404
        return Status::OK();
520
404
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
3
                            const ColumnPtr& col_right_ptr) const {
477
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
3
        DCHECK(!(left_is_const && right_is_const));
484
485
3
        if (!left_is_const && !right_is_const) {
486
3
            auto col_res = ColumnUInt8::create();
487
488
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
3
            vec_res.resize(col_left->get_data().size());
490
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
3
                              typename PrimitiveTypeTraits<PT>::CppType,
492
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
3
                                                     vec_res);
494
495
3
            block.replace_by_position(result, std::move(col_res));
496
3
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
3
        return Status::OK();
520
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
4.89k
                            const ColumnPtr& col_right_ptr) const {
477
4.89k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
4.89k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
4.89k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
4.89k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
4.89k
        DCHECK(!(left_is_const && right_is_const));
484
485
4.89k
        if (!left_is_const && !right_is_const) {
486
141
            auto col_res = ColumnUInt8::create();
487
488
141
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
141
            vec_res.resize(col_left->get_data().size());
490
141
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
141
                              typename PrimitiveTypeTraits<PT>::CppType,
492
141
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
141
                                                     vec_res);
494
495
141
            block.replace_by_position(result, std::move(col_res));
496
4.75k
        } else if (!left_is_const && right_is_const) {
497
4.51k
            auto col_res = ColumnUInt8::create();
498
499
4.51k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
4.51k
            vec_res.resize(col_left->size());
501
4.51k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
4.51k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
4.51k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
4.51k
                                                       col_right->get_element(0), vec_res);
505
506
4.51k
            block.replace_by_position(result, std::move(col_res));
507
4.51k
        } else if (left_is_const && !right_is_const) {
508
246
            auto col_res = ColumnUInt8::create();
509
510
246
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
246
            vec_res.resize(col_right->size());
512
246
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
246
                              typename PrimitiveTypeTraits<PT>::CppType,
514
246
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
246
                                                       col_right->get_data(), vec_res);
516
517
246
            block.replace_by_position(result, std::move(col_res));
518
246
        }
519
4.89k
        return Status::OK();
520
4.89k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
381
                            const ColumnPtr& col_right_ptr) const {
477
381
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
381
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
381
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
381
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
381
        DCHECK(!(left_is_const && right_is_const));
484
485
381
        if (!left_is_const && !right_is_const) {
486
70
            auto col_res = ColumnUInt8::create();
487
488
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
70
            vec_res.resize(col_left->get_data().size());
490
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
70
                              typename PrimitiveTypeTraits<PT>::CppType,
492
70
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
70
                                                     vec_res);
494
495
70
            block.replace_by_position(result, std::move(col_res));
496
311
        } else if (!left_is_const && right_is_const) {
497
269
            auto col_res = ColumnUInt8::create();
498
499
269
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
269
            vec_res.resize(col_left->size());
501
269
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
269
                              typename PrimitiveTypeTraits<PT>::CppType,
503
269
                              Op<PT>>::vector_constant(col_left->get_data(),
504
269
                                                       col_right->get_element(0), vec_res);
505
506
269
            block.replace_by_position(result, std::move(col_res));
507
269
        } else if (left_is_const && !right_is_const) {
508
42
            auto col_res = ColumnUInt8::create();
509
510
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
42
            vec_res.resize(col_right->size());
512
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
42
                              typename PrimitiveTypeTraits<PT>::CppType,
514
42
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
42
                                                       col_right->get_data(), vec_res);
516
517
42
            block.replace_by_position(result, std::move(col_res));
518
42
        }
519
381
        return Status::OK();
520
381
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1.99k
                            const ColumnPtr& col_right_ptr) const {
477
1.99k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1.99k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1.99k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1.99k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1.99k
        DCHECK(!(left_is_const && right_is_const));
484
485
1.99k
        if (!left_is_const && !right_is_const) {
486
240
            auto col_res = ColumnUInt8::create();
487
488
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
240
            vec_res.resize(col_left->get_data().size());
490
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
240
                              typename PrimitiveTypeTraits<PT>::CppType,
492
240
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
240
                                                     vec_res);
494
495
240
            block.replace_by_position(result, std::move(col_res));
496
1.75k
        } else if (!left_is_const && right_is_const) {
497
1.63k
            auto col_res = ColumnUInt8::create();
498
499
1.63k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
1.63k
            vec_res.resize(col_left->size());
501
1.63k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
1.63k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
1.63k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
1.63k
                                                       col_right->get_element(0), vec_res);
505
506
1.63k
            block.replace_by_position(result, std::move(col_res));
507
1.63k
        } else if (left_is_const && !right_is_const) {
508
126
            auto col_res = ColumnUInt8::create();
509
510
126
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
126
            vec_res.resize(col_right->size());
512
126
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
126
                              typename PrimitiveTypeTraits<PT>::CppType,
514
126
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
126
                                                       col_right->get_data(), vec_res);
516
517
126
            block.replace_by_position(result, std::move(col_res));
518
126
        }
519
1.99k
        return Status::OK();
520
1.99k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
2.93k
                            const ColumnPtr& col_right_ptr) const {
477
2.93k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
2.93k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
2.93k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
2.93k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
2.93k
        DCHECK(!(left_is_const && right_is_const));
484
485
2.93k
        if (!left_is_const && !right_is_const) {
486
140
            auto col_res = ColumnUInt8::create();
487
488
140
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
140
            vec_res.resize(col_left->get_data().size());
490
140
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
140
                              typename PrimitiveTypeTraits<PT>::CppType,
492
140
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
140
                                                     vec_res);
494
495
140
            block.replace_by_position(result, std::move(col_res));
496
2.79k
        } else if (!left_is_const && right_is_const) {
497
1.67k
            auto col_res = ColumnUInt8::create();
498
499
1.67k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
1.67k
            vec_res.resize(col_left->size());
501
1.67k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
1.67k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
1.67k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
1.67k
                                                       col_right->get_element(0), vec_res);
505
506
1.67k
            block.replace_by_position(result, std::move(col_res));
507
1.67k
        } else if (left_is_const && !right_is_const) {
508
1.12k
            auto col_res = ColumnUInt8::create();
509
510
1.12k
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
1.12k
            vec_res.resize(col_right->size());
512
1.12k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
1.12k
                              typename PrimitiveTypeTraits<PT>::CppType,
514
1.12k
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
1.12k
                                                       col_right->get_data(), vec_res);
516
517
1.12k
            block.replace_by_position(result, std::move(col_res));
518
1.12k
        }
519
2.93k
        return Status::OK();
520
2.93k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
123
                            const ColumnPtr& col_right_ptr) const {
477
123
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
123
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
123
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
123
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
123
        DCHECK(!(left_is_const && right_is_const));
484
485
123
        if (!left_is_const && !right_is_const) {
486
80
            auto col_res = ColumnUInt8::create();
487
488
80
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
80
            vec_res.resize(col_left->get_data().size());
490
80
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
80
                              typename PrimitiveTypeTraits<PT>::CppType,
492
80
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
80
                                                     vec_res);
494
495
80
            block.replace_by_position(result, std::move(col_res));
496
80
        } else if (!left_is_const && right_is_const) {
497
27
            auto col_res = ColumnUInt8::create();
498
499
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
27
            vec_res.resize(col_left->size());
501
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
27
                              typename PrimitiveTypeTraits<PT>::CppType,
503
27
                              Op<PT>>::vector_constant(col_left->get_data(),
504
27
                                                       col_right->get_element(0), vec_res);
505
506
27
            block.replace_by_position(result, std::move(col_res));
507
27
        } else if (left_is_const && !right_is_const) {
508
16
            auto col_res = ColumnUInt8::create();
509
510
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
16
            vec_res.resize(col_right->size());
512
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
16
                              typename PrimitiveTypeTraits<PT>::CppType,
514
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
16
                                                       col_right->get_data(), vec_res);
516
517
16
            block.replace_by_position(result, std::move(col_res));
518
16
        }
519
123
        return Status::OK();
520
123
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
12
                            const ColumnPtr& col_right_ptr) const {
477
12
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
12
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
12
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
12
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
12
        DCHECK(!(left_is_const && right_is_const));
484
485
12
        if (!left_is_const && !right_is_const) {
486
5
            auto col_res = ColumnUInt8::create();
487
488
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
5
            vec_res.resize(col_left->get_data().size());
490
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
5
                              typename PrimitiveTypeTraits<PT>::CppType,
492
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
5
                                                     vec_res);
494
495
5
            block.replace_by_position(result, std::move(col_res));
496
7
        } else if (!left_is_const && right_is_const) {
497
7
            auto col_res = ColumnUInt8::create();
498
499
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
7
            vec_res.resize(col_left->size());
501
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
7
                              typename PrimitiveTypeTraits<PT>::CppType,
503
7
                              Op<PT>>::vector_constant(col_left->get_data(),
504
7
                                                       col_right->get_element(0), vec_res);
505
506
7
            block.replace_by_position(result, std::move(col_res));
507
7
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
12
        return Status::OK();
520
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
17
                            const ColumnPtr& col_right_ptr) const {
477
17
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
17
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
17
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
17
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
17
        DCHECK(!(left_is_const && right_is_const));
484
485
17
        if (!left_is_const && !right_is_const) {
486
13
            auto col_res = ColumnUInt8::create();
487
488
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
13
            vec_res.resize(col_left->get_data().size());
490
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
13
                              typename PrimitiveTypeTraits<PT>::CppType,
492
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
13
                                                     vec_res);
494
495
13
            block.replace_by_position(result, std::move(col_res));
496
13
        } else if (!left_is_const && right_is_const) {
497
4
            auto col_res = ColumnUInt8::create();
498
499
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
4
            vec_res.resize(col_left->size());
501
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
4
                              typename PrimitiveTypeTraits<PT>::CppType,
503
4
                              Op<PT>>::vector_constant(col_left->get_data(),
504
4
                                                       col_right->get_element(0), vec_res);
505
506
4
            block.replace_by_position(result, std::move(col_res));
507
4
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
17
        return Status::OK();
520
17
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
102
                            const ColumnPtr& col_right_ptr) const {
477
102
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
102
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
102
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
102
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
102
        DCHECK(!(left_is_const && right_is_const));
484
485
102
        if (!left_is_const && !right_is_const) {
486
102
            auto col_res = ColumnUInt8::create();
487
488
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
102
            vec_res.resize(col_left->get_data().size());
490
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
102
                              typename PrimitiveTypeTraits<PT>::CppType,
492
102
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
102
                                                     vec_res);
494
495
102
            block.replace_by_position(result, std::move(col_res));
496
102
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
102
        return Status::OK();
520
102
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
930
                            const ColumnPtr& col_right_ptr) const {
477
930
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
930
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
930
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
930
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
930
        DCHECK(!(left_is_const && right_is_const));
484
485
930
        if (!left_is_const && !right_is_const) {
486
95
            auto col_res = ColumnUInt8::create();
487
488
95
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
95
            vec_res.resize(col_left->get_data().size());
490
95
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
95
                              typename PrimitiveTypeTraits<PT>::CppType,
492
95
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
95
                                                     vec_res);
494
495
95
            block.replace_by_position(result, std::move(col_res));
496
835
        } else if (!left_is_const && right_is_const) {
497
835
            auto col_res = ColumnUInt8::create();
498
499
835
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
835
            vec_res.resize(col_left->size());
501
835
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
835
                              typename PrimitiveTypeTraits<PT>::CppType,
503
835
                              Op<PT>>::vector_constant(col_left->get_data(),
504
835
                                                       col_right->get_element(0), vec_res);
505
506
835
            block.replace_by_position(result, std::move(col_res));
507
835
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
930
        return Status::OK();
520
930
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
4
                            const ColumnPtr& col_right_ptr) const {
477
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
4
        DCHECK(!(left_is_const && right_is_const));
484
485
4
        if (!left_is_const && !right_is_const) {
486
4
            auto col_res = ColumnUInt8::create();
487
488
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
4
            vec_res.resize(col_left->get_data().size());
490
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
4
                              typename PrimitiveTypeTraits<PT>::CppType,
492
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
4
                                                     vec_res);
494
495
4
            block.replace_by_position(result, std::move(col_res));
496
4
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
4
        return Status::OK();
520
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
476
70
                            const ColumnPtr& col_right_ptr) const {
477
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
70
        DCHECK(!(left_is_const && right_is_const));
484
485
70
        if (!left_is_const && !right_is_const) {
486
38
            auto col_res = ColumnUInt8::create();
487
488
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
38
            vec_res.resize(col_left->get_data().size());
490
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
38
                              typename PrimitiveTypeTraits<PT>::CppType,
492
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
38
                                                     vec_res);
494
495
38
            block.replace_by_position(result, std::move(col_res));
496
38
        } else if (!left_is_const && right_is_const) {
497
31
            auto col_res = ColumnUInt8::create();
498
499
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
31
            vec_res.resize(col_left->size());
501
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
31
                              typename PrimitiveTypeTraits<PT>::CppType,
503
31
                              Op<PT>>::vector_constant(col_left->get_data(),
504
31
                                                       col_right->get_element(0), vec_res);
505
506
31
            block.replace_by_position(result, std::move(col_res));
507
31
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
70
        return Status::OK();
520
70
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
84
                            const ColumnPtr& col_right_ptr) const {
477
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
84
        DCHECK(!(left_is_const && right_is_const));
484
485
84
        if (!left_is_const && !right_is_const) {
486
56
            auto col_res = ColumnUInt8::create();
487
488
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
56
            vec_res.resize(col_left->get_data().size());
490
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
56
                              typename PrimitiveTypeTraits<PT>::CppType,
492
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
56
                                                     vec_res);
494
495
56
            block.replace_by_position(result, std::move(col_res));
496
56
        } else if (!left_is_const && right_is_const) {
497
28
            auto col_res = ColumnUInt8::create();
498
499
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
28
            vec_res.resize(col_left->size());
501
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
28
                              typename PrimitiveTypeTraits<PT>::CppType,
503
28
                              Op<PT>>::vector_constant(col_left->get_data(),
504
28
                                                       col_right->get_element(0), vec_res);
505
506
28
            block.replace_by_position(result, std::move(col_res));
507
28
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
84
        return Status::OK();
520
84
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
2.50k
                            const ColumnPtr& col_right_ptr) const {
477
2.50k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
2.50k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
2.50k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
2.50k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
2.50k
        DCHECK(!(left_is_const && right_is_const));
484
485
2.50k
        if (!left_is_const && !right_is_const) {
486
2.24k
            auto col_res = ColumnUInt8::create();
487
488
2.24k
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
2.24k
            vec_res.resize(col_left->get_data().size());
490
2.24k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
2.24k
                              typename PrimitiveTypeTraits<PT>::CppType,
492
2.24k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
2.24k
                                                     vec_res);
494
495
2.24k
            block.replace_by_position(result, std::move(col_res));
496
2.24k
        } else if (!left_is_const && right_is_const) {
497
262
            auto col_res = ColumnUInt8::create();
498
499
262
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
262
            vec_res.resize(col_left->size());
501
262
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
262
                              typename PrimitiveTypeTraits<PT>::CppType,
503
262
                              Op<PT>>::vector_constant(col_left->get_data(),
504
262
                                                       col_right->get_element(0), vec_res);
505
506
262
            block.replace_by_position(result, std::move(col_res));
507
262
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
2.50k
        return Status::OK();
520
2.50k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1.13k
                            const ColumnPtr& col_right_ptr) const {
477
1.13k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1.13k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1.13k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1.13k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1.13k
        DCHECK(!(left_is_const && right_is_const));
484
485
1.13k
        if (!left_is_const && !right_is_const) {
486
344
            auto col_res = ColumnUInt8::create();
487
488
344
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
344
            vec_res.resize(col_left->get_data().size());
490
344
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
344
                              typename PrimitiveTypeTraits<PT>::CppType,
492
344
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
344
                                                     vec_res);
494
495
344
            block.replace_by_position(result, std::move(col_res));
496
789
        } else if (!left_is_const && right_is_const) {
497
31
            auto col_res = ColumnUInt8::create();
498
499
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
31
            vec_res.resize(col_left->size());
501
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
31
                              typename PrimitiveTypeTraits<PT>::CppType,
503
31
                              Op<PT>>::vector_constant(col_left->get_data(),
504
31
                                                       col_right->get_element(0), vec_res);
505
506
31
            block.replace_by_position(result, std::move(col_res));
507
758
        } else if (left_is_const && !right_is_const) {
508
758
            auto col_res = ColumnUInt8::create();
509
510
758
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
758
            vec_res.resize(col_right->size());
512
758
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
758
                              typename PrimitiveTypeTraits<PT>::CppType,
514
758
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
758
                                                       col_right->get_data(), vec_res);
516
517
758
            block.replace_by_position(result, std::move(col_res));
518
758
        }
519
1.13k
        return Status::OK();
520
1.13k
    }
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
476
48
                            const ColumnPtr& col_right_ptr) const {
477
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
48
        DCHECK(!(left_is_const && right_is_const));
484
485
48
        if (!left_is_const && !right_is_const) {
486
20
            auto col_res = ColumnUInt8::create();
487
488
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
20
            vec_res.resize(col_left->get_data().size());
490
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
20
                              typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
20
                                                     vec_res);
494
495
20
            block.replace_by_position(result, std::move(col_res));
496
28
        } else if (!left_is_const && right_is_const) {
497
28
            auto col_res = ColumnUInt8::create();
498
499
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
28
            vec_res.resize(col_left->size());
501
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
28
                              typename PrimitiveTypeTraits<PT>::CppType,
503
28
                              Op<PT>>::vector_constant(col_left->get_data(),
504
28
                                                       col_right->get_element(0), vec_res);
505
506
28
            block.replace_by_position(result, std::move(col_res));
507
28
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
48
        return Status::OK();
520
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
60
                            const ColumnPtr& col_right_ptr) const {
477
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
60
        DCHECK(!(left_is_const && right_is_const));
484
485
60
        if (!left_is_const && !right_is_const) {
486
20
            auto col_res = ColumnUInt8::create();
487
488
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
20
            vec_res.resize(col_left->get_data().size());
490
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
20
                              typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
20
                                                     vec_res);
494
495
20
            block.replace_by_position(result, std::move(col_res));
496
40
        } else if (!left_is_const && right_is_const) {
497
40
            auto col_res = ColumnUInt8::create();
498
499
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
40
            vec_res.resize(col_left->size());
501
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
40
                              typename PrimitiveTypeTraits<PT>::CppType,
503
40
                              Op<PT>>::vector_constant(col_left->get_data(),
504
40
                                                       col_right->get_element(0), vec_res);
505
506
40
            block.replace_by_position(result, std::move(col_res));
507
40
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
60
        return Status::OK();
520
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
476
1.14k
                            const ColumnPtr& col_right_ptr) const {
477
1.14k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1.14k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1.14k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1.14k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1.14k
        DCHECK(!(left_is_const && right_is_const));
484
485
1.14k
        if (!left_is_const && !right_is_const) {
486
1.10k
            auto col_res = ColumnUInt8::create();
487
488
1.10k
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
1.10k
            vec_res.resize(col_left->get_data().size());
490
1.10k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
1.10k
                              typename PrimitiveTypeTraits<PT>::CppType,
492
1.10k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
1.10k
                                                     vec_res);
494
495
1.10k
            block.replace_by_position(result, std::move(col_res));
496
1.10k
        } else if (!left_is_const && right_is_const) {
497
41
            auto col_res = ColumnUInt8::create();
498
499
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
41
            vec_res.resize(col_left->size());
501
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
41
                              typename PrimitiveTypeTraits<PT>::CppType,
503
41
                              Op<PT>>::vector_constant(col_left->get_data(),
504
41
                                                       col_right->get_element(0), vec_res);
505
506
41
            block.replace_by_position(result, std::move(col_res));
507
41
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
1.14k
        return Status::OK();
520
1.14k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
2
                            const ColumnPtr& col_right_ptr) const {
477
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
2
        DCHECK(!(left_is_const && right_is_const));
484
485
2
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
2
        } else if (!left_is_const && right_is_const) {
497
2
            auto col_res = ColumnUInt8::create();
498
499
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
2
            vec_res.resize(col_left->size());
501
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
2
                              typename PrimitiveTypeTraits<PT>::CppType,
503
2
                              Op<PT>>::vector_constant(col_left->get_data(),
504
2
                                                       col_right->get_element(0), vec_res);
505
506
2
            block.replace_by_position(result, std::move(col_res));
507
2
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
2
        return Status::OK();
520
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
2
                            const ColumnPtr& col_right_ptr) const {
477
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
2
        DCHECK(!(left_is_const && right_is_const));
484
485
2
        if (!left_is_const && !right_is_const) {
486
2
            auto col_res = ColumnUInt8::create();
487
488
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
2
            vec_res.resize(col_left->get_data().size());
490
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
2
                              typename PrimitiveTypeTraits<PT>::CppType,
492
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
2
                                                     vec_res);
494
495
2
            block.replace_by_position(result, std::move(col_res));
496
2
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
2
        return Status::OK();
520
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1.14k
                            const ColumnPtr& col_right_ptr) const {
477
1.14k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1.14k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1.14k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1.14k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1.14k
        DCHECK(!(left_is_const && right_is_const));
484
485
1.14k
        if (!left_is_const && !right_is_const) {
486
40
            auto col_res = ColumnUInt8::create();
487
488
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
40
            vec_res.resize(col_left->get_data().size());
490
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
40
                              typename PrimitiveTypeTraits<PT>::CppType,
492
40
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
40
                                                     vec_res);
494
495
40
            block.replace_by_position(result, std::move(col_res));
496
1.10k
        } else if (!left_is_const && right_is_const) {
497
910
            auto col_res = ColumnUInt8::create();
498
499
910
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
910
            vec_res.resize(col_left->size());
501
910
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
910
                              typename PrimitiveTypeTraits<PT>::CppType,
503
910
                              Op<PT>>::vector_constant(col_left->get_data(),
504
910
                                                       col_right->get_element(0), vec_res);
505
506
910
            block.replace_by_position(result, std::move(col_res));
507
910
        } else if (left_is_const && !right_is_const) {
508
198
            auto col_res = ColumnUInt8::create();
509
510
198
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
198
            vec_res.resize(col_right->size());
512
198
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
198
                              typename PrimitiveTypeTraits<PT>::CppType,
514
198
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
198
                                                       col_right->get_data(), vec_res);
516
517
198
            block.replace_by_position(result, std::move(col_res));
518
198
        }
519
1.14k
        return Status::OK();
520
1.14k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1.77k
                            const ColumnPtr& col_right_ptr) const {
477
1.77k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1.77k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1.77k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1.77k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1.77k
        DCHECK(!(left_is_const && right_is_const));
484
485
1.77k
        if (!left_is_const && !right_is_const) {
486
112
            auto col_res = ColumnUInt8::create();
487
488
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
112
            vec_res.resize(col_left->get_data().size());
490
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
112
                              typename PrimitiveTypeTraits<PT>::CppType,
492
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
112
                                                     vec_res);
494
495
112
            block.replace_by_position(result, std::move(col_res));
496
1.66k
        } else if (!left_is_const && right_is_const) {
497
1.45k
            auto col_res = ColumnUInt8::create();
498
499
1.45k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
1.45k
            vec_res.resize(col_left->size());
501
1.45k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
1.45k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
1.45k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
1.45k
                                                       col_right->get_element(0), vec_res);
505
506
1.45k
            block.replace_by_position(result, std::move(col_res));
507
1.45k
        } else if (left_is_const && !right_is_const) {
508
210
            auto col_res = ColumnUInt8::create();
509
510
210
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
210
            vec_res.resize(col_right->size());
512
210
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
210
                              typename PrimitiveTypeTraits<PT>::CppType,
514
210
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
210
                                                       col_right->get_data(), vec_res);
516
517
210
            block.replace_by_position(result, std::move(col_res));
518
210
        }
519
1.77k
        return Status::OK();
520
1.77k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
66.9k
                            const ColumnPtr& col_right_ptr) const {
477
66.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
66.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
66.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
66.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
66.9k
        DCHECK(!(left_is_const && right_is_const));
484
485
66.9k
        if (!left_is_const && !right_is_const) {
486
31
            auto col_res = ColumnUInt8::create();
487
488
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
31
            vec_res.resize(col_left->get_data().size());
490
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
31
                              typename PrimitiveTypeTraits<PT>::CppType,
492
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
31
                                                     vec_res);
494
495
31
            block.replace_by_position(result, std::move(col_res));
496
66.8k
        } else if (!left_is_const && right_is_const) {
497
4.71k
            auto col_res = ColumnUInt8::create();
498
499
4.71k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
4.71k
            vec_res.resize(col_left->size());
501
4.71k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
4.71k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
4.71k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
4.71k
                                                       col_right->get_element(0), vec_res);
505
506
4.71k
            block.replace_by_position(result, std::move(col_res));
507
62.1k
        } else if (left_is_const && !right_is_const) {
508
62.1k
            auto col_res = ColumnUInt8::create();
509
510
62.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
62.1k
            vec_res.resize(col_right->size());
512
62.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
62.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
514
62.1k
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
62.1k
                                                       col_right->get_data(), vec_res);
516
517
62.1k
            block.replace_by_position(result, std::move(col_res));
518
62.1k
        }
519
66.9k
        return Status::OK();
520
66.9k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1.81k
                            const ColumnPtr& col_right_ptr) const {
477
1.81k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1.81k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1.81k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1.81k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1.81k
        DCHECK(!(left_is_const && right_is_const));
484
485
1.81k
        if (!left_is_const && !right_is_const) {
486
63
            auto col_res = ColumnUInt8::create();
487
488
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
63
            vec_res.resize(col_left->get_data().size());
490
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
63
                              typename PrimitiveTypeTraits<PT>::CppType,
492
63
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
63
                                                     vec_res);
494
495
63
            block.replace_by_position(result, std::move(col_res));
496
1.75k
        } else if (!left_is_const && right_is_const) {
497
1.23k
            auto col_res = ColumnUInt8::create();
498
499
1.23k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
1.23k
            vec_res.resize(col_left->size());
501
1.23k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
1.23k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
1.23k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
1.23k
                                                       col_right->get_element(0), vec_res);
505
506
1.23k
            block.replace_by_position(result, std::move(col_res));
507
1.23k
        } else if (left_is_const && !right_is_const) {
508
515
            auto col_res = ColumnUInt8::create();
509
510
515
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
515
            vec_res.resize(col_right->size());
512
515
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
515
                              typename PrimitiveTypeTraits<PT>::CppType,
514
515
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
515
                                                       col_right->get_data(), vec_res);
516
517
515
            block.replace_by_position(result, std::move(col_res));
518
515
        }
519
1.81k
        return Status::OK();
520
1.81k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
252
                            const ColumnPtr& col_right_ptr) const {
477
252
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
252
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
252
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
252
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
252
        DCHECK(!(left_is_const && right_is_const));
484
485
252
        if (!left_is_const && !right_is_const) {
486
2
            auto col_res = ColumnUInt8::create();
487
488
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
2
            vec_res.resize(col_left->get_data().size());
490
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
2
                              typename PrimitiveTypeTraits<PT>::CppType,
492
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
2
                                                     vec_res);
494
495
2
            block.replace_by_position(result, std::move(col_res));
496
250
        } else if (!left_is_const && right_is_const) {
497
201
            auto col_res = ColumnUInt8::create();
498
499
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
201
            vec_res.resize(col_left->size());
501
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
201
                              typename PrimitiveTypeTraits<PT>::CppType,
503
201
                              Op<PT>>::vector_constant(col_left->get_data(),
504
201
                                                       col_right->get_element(0), vec_res);
505
506
201
            block.replace_by_position(result, std::move(col_res));
507
201
        } else if (left_is_const && !right_is_const) {
508
49
            auto col_res = ColumnUInt8::create();
509
510
49
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
49
            vec_res.resize(col_right->size());
512
49
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
49
                              typename PrimitiveTypeTraits<PT>::CppType,
514
49
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
49
                                                       col_right->get_data(), vec_res);
516
517
49
            block.replace_by_position(result, std::move(col_res));
518
49
        }
519
252
        return Status::OK();
520
252
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
4
                            const ColumnPtr& col_right_ptr) const {
477
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
4
        DCHECK(!(left_is_const && right_is_const));
484
485
4
        if (!left_is_const && !right_is_const) {
486
1
            auto col_res = ColumnUInt8::create();
487
488
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
1
            vec_res.resize(col_left->get_data().size());
490
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
1
                              typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
1
                                                     vec_res);
494
495
1
            block.replace_by_position(result, std::move(col_res));
496
3
        } else if (!left_is_const && right_is_const) {
497
3
            auto col_res = ColumnUInt8::create();
498
499
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
3
            vec_res.resize(col_left->size());
501
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
3
                              typename PrimitiveTypeTraits<PT>::CppType,
503
3
                              Op<PT>>::vector_constant(col_left->get_data(),
504
3
                                                       col_right->get_element(0), vec_res);
505
506
3
            block.replace_by_position(result, std::move(col_res));
507
3
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
4
        return Status::OK();
520
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1
                            const ColumnPtr& col_right_ptr) const {
477
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1
        DCHECK(!(left_is_const && right_is_const));
484
485
1
        if (!left_is_const && !right_is_const) {
486
1
            auto col_res = ColumnUInt8::create();
487
488
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
1
            vec_res.resize(col_left->get_data().size());
490
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
1
                              typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
1
                                                     vec_res);
494
495
1
            block.replace_by_position(result, std::move(col_res));
496
1
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
1
        return Status::OK();
520
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
220
                            const ColumnPtr& col_right_ptr) const {
477
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
220
        DCHECK(!(left_is_const && right_is_const));
484
485
220
        if (!left_is_const && !right_is_const) {
486
20
            auto col_res = ColumnUInt8::create();
487
488
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
20
            vec_res.resize(col_left->get_data().size());
490
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
20
                              typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
20
                                                     vec_res);
494
495
20
            block.replace_by_position(result, std::move(col_res));
496
200
        } else if (!left_is_const && right_is_const) {
497
200
            auto col_res = ColumnUInt8::create();
498
499
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
200
            vec_res.resize(col_left->size());
501
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
200
                              typename PrimitiveTypeTraits<PT>::CppType,
503
200
                              Op<PT>>::vector_constant(col_left->get_data(),
504
200
                                                       col_right->get_element(0), vec_res);
505
506
200
            block.replace_by_position(result, std::move(col_res));
507
200
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
220
        return Status::OK();
520
220
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
538
                            const ColumnPtr& col_right_ptr) const {
477
538
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
538
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
538
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
538
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
538
        DCHECK(!(left_is_const && right_is_const));
484
485
538
        if (!left_is_const && !right_is_const) {
486
32
            auto col_res = ColumnUInt8::create();
487
488
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
32
            vec_res.resize(col_left->get_data().size());
490
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
32
                              typename PrimitiveTypeTraits<PT>::CppType,
492
32
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
32
                                                     vec_res);
494
495
32
            block.replace_by_position(result, std::move(col_res));
496
506
        } else if (!left_is_const && right_is_const) {
497
506
            auto col_res = ColumnUInt8::create();
498
499
506
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
506
            vec_res.resize(col_left->size());
501
506
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
506
                              typename PrimitiveTypeTraits<PT>::CppType,
503
506
                              Op<PT>>::vector_constant(col_left->get_data(),
504
506
                                                       col_right->get_element(0), vec_res);
505
506
506
            block.replace_by_position(result, std::move(col_res));
507
506
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
538
        return Status::OK();
520
538
    }
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
476
32
                            const ColumnPtr& col_right_ptr) const {
477
32
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
32
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
32
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
32
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
32
        DCHECK(!(left_is_const && right_is_const));
484
485
32
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
32
        } else if (!left_is_const && right_is_const) {
497
32
            auto col_res = ColumnUInt8::create();
498
499
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
32
            vec_res.resize(col_left->size());
501
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
32
                              typename PrimitiveTypeTraits<PT>::CppType,
503
32
                              Op<PT>>::vector_constant(col_left->get_data(),
504
32
                                                       col_right->get_element(0), vec_res);
505
506
32
            block.replace_by_position(result, std::move(col_res));
507
32
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
32
        return Status::OK();
520
32
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
453
                            const ColumnPtr& col_right_ptr) const {
477
453
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
453
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
453
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
453
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
453
        DCHECK(!(left_is_const && right_is_const));
484
485
453
        if (!left_is_const && !right_is_const) {
486
1
            auto col_res = ColumnUInt8::create();
487
488
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
1
            vec_res.resize(col_left->get_data().size());
490
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
1
                              typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
1
                                                     vec_res);
494
495
1
            block.replace_by_position(result, std::move(col_res));
496
452
        } else if (!left_is_const && right_is_const) {
497
446
            auto col_res = ColumnUInt8::create();
498
499
446
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
446
            vec_res.resize(col_left->size());
501
446
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
446
                              typename PrimitiveTypeTraits<PT>::CppType,
503
446
                              Op<PT>>::vector_constant(col_left->get_data(),
504
446
                                                       col_right->get_element(0), vec_res);
505
506
446
            block.replace_by_position(result, std::move(col_res));
507
446
        } else if (left_is_const && !right_is_const) {
508
6
            auto col_res = ColumnUInt8::create();
509
510
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
6
            vec_res.resize(col_right->size());
512
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
6
                              typename PrimitiveTypeTraits<PT>::CppType,
514
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
6
                                                       col_right->get_data(), vec_res);
516
517
6
            block.replace_by_position(result, std::move(col_res));
518
6
        }
519
453
        return Status::OK();
520
453
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
143
                            const ColumnPtr& col_right_ptr) const {
477
143
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
143
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
143
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
143
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
143
        DCHECK(!(left_is_const && right_is_const));
484
485
143
        if (!left_is_const && !right_is_const) {
486
6
            auto col_res = ColumnUInt8::create();
487
488
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
6
            vec_res.resize(col_left->get_data().size());
490
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
6
                              typename PrimitiveTypeTraits<PT>::CppType,
492
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
6
                                                     vec_res);
494
495
6
            block.replace_by_position(result, std::move(col_res));
496
137
        } else if (!left_is_const && right_is_const) {
497
137
            auto col_res = ColumnUInt8::create();
498
499
137
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
137
            vec_res.resize(col_left->size());
501
137
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
137
                              typename PrimitiveTypeTraits<PT>::CppType,
503
137
                              Op<PT>>::vector_constant(col_left->get_data(),
504
137
                                                       col_right->get_element(0), vec_res);
505
506
137
            block.replace_by_position(result, std::move(col_res));
507
137
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
143
        return Status::OK();
520
143
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
2
                            const ColumnPtr& col_right_ptr) const {
477
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
2
        DCHECK(!(left_is_const && right_is_const));
484
485
2
        if (!left_is_const && !right_is_const) {
486
2
            auto col_res = ColumnUInt8::create();
487
488
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
2
            vec_res.resize(col_left->get_data().size());
490
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
2
                              typename PrimitiveTypeTraits<PT>::CppType,
492
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
2
                                                     vec_res);
494
495
2
            block.replace_by_position(result, std::move(col_res));
496
2
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
2
        return Status::OK();
520
2
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
90
                            const ColumnPtr& col_right_ptr) const {
477
90
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
90
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
90
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
90
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
90
        DCHECK(!(left_is_const && right_is_const));
484
485
90
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
90
        } else if (!left_is_const && right_is_const) {
497
90
            auto col_res = ColumnUInt8::create();
498
499
90
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
90
            vec_res.resize(col_left->size());
501
90
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
90
                              typename PrimitiveTypeTraits<PT>::CppType,
503
90
                              Op<PT>>::vector_constant(col_left->get_data(),
504
90
                                                       col_right->get_element(0), vec_res);
505
506
90
            block.replace_by_position(result, std::move(col_res));
507
90
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
90
        return Status::OK();
520
90
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
115
                            const ColumnPtr& col_right_ptr) const {
477
115
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
115
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
115
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
115
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
115
        DCHECK(!(left_is_const && right_is_const));
484
485
115
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
115
        } else if (!left_is_const && right_is_const) {
497
115
            auto col_res = ColumnUInt8::create();
498
499
115
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
115
            vec_res.resize(col_left->size());
501
115
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
115
                              typename PrimitiveTypeTraits<PT>::CppType,
503
115
                              Op<PT>>::vector_constant(col_left->get_data(),
504
115
                                                       col_right->get_element(0), vec_res);
505
506
115
            block.replace_by_position(result, std::move(col_res));
507
115
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
115
        return Status::OK();
520
115
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
759
                            const ColumnPtr& col_right_ptr) const {
477
759
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
759
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
759
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
759
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
759
        DCHECK(!(left_is_const && right_is_const));
484
485
759
        if (!left_is_const && !right_is_const) {
486
5
            auto col_res = ColumnUInt8::create();
487
488
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
5
            vec_res.resize(col_left->get_data().size());
490
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
5
                              typename PrimitiveTypeTraits<PT>::CppType,
492
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
5
                                                     vec_res);
494
495
5
            block.replace_by_position(result, std::move(col_res));
496
754
        } else if (!left_is_const && right_is_const) {
497
754
            auto col_res = ColumnUInt8::create();
498
499
754
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
754
            vec_res.resize(col_left->size());
501
754
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
754
                              typename PrimitiveTypeTraits<PT>::CppType,
503
754
                              Op<PT>>::vector_constant(col_left->get_data(),
504
754
                                                       col_right->get_element(0), vec_res);
505
506
754
            block.replace_by_position(result, std::move(col_res));
507
754
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
759
        return Status::OK();
520
759
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
207
                            const ColumnPtr& col_right_ptr) const {
477
207
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
207
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
207
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
207
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
207
        DCHECK(!(left_is_const && right_is_const));
484
485
207
        if (!left_is_const && !right_is_const) {
486
8
            auto col_res = ColumnUInt8::create();
487
488
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
8
            vec_res.resize(col_left->get_data().size());
490
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
8
                              typename PrimitiveTypeTraits<PT>::CppType,
492
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
8
                                                     vec_res);
494
495
8
            block.replace_by_position(result, std::move(col_res));
496
199
        } else if (!left_is_const && right_is_const) {
497
199
            auto col_res = ColumnUInt8::create();
498
499
199
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
199
            vec_res.resize(col_left->size());
501
199
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
199
                              typename PrimitiveTypeTraits<PT>::CppType,
503
199
                              Op<PT>>::vector_constant(col_left->get_data(),
504
199
                                                       col_right->get_element(0), vec_res);
505
506
199
            block.replace_by_position(result, std::move(col_res));
507
199
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
207
        return Status::OK();
520
207
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
36
                            const ColumnPtr& col_right_ptr) const {
477
36
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
36
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
36
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
36
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
36
        DCHECK(!(left_is_const && right_is_const));
484
485
36
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
36
        } else if (!left_is_const && right_is_const) {
497
36
            auto col_res = ColumnUInt8::create();
498
499
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
36
            vec_res.resize(col_left->size());
501
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
36
                              typename PrimitiveTypeTraits<PT>::CppType,
503
36
                              Op<PT>>::vector_constant(col_left->get_data(),
504
36
                                                       col_right->get_element(0), vec_res);
505
506
36
            block.replace_by_position(result, std::move(col_res));
507
36
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
36
        return Status::OK();
520
36
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1
                            const ColumnPtr& col_right_ptr) const {
477
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1
        DCHECK(!(left_is_const && right_is_const));
484
485
1
        if (!left_is_const && !right_is_const) {
486
1
            auto col_res = ColumnUInt8::create();
487
488
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
1
            vec_res.resize(col_left->get_data().size());
490
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
1
                              typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
1
                                                     vec_res);
494
495
1
            block.replace_by_position(result, std::move(col_res));
496
1
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
1
        return Status::OK();
520
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1
                            const ColumnPtr& col_right_ptr) const {
477
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1
        DCHECK(!(left_is_const && right_is_const));
484
485
1
        if (!left_is_const && !right_is_const) {
486
1
            auto col_res = ColumnUInt8::create();
487
488
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
1
            vec_res.resize(col_left->get_data().size());
490
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
1
                              typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
1
                                                     vec_res);
494
495
1
            block.replace_by_position(result, std::move(col_res));
496
1
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
1
        return Status::OK();
520
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
24
                            const ColumnPtr& col_right_ptr) const {
477
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
24
        DCHECK(!(left_is_const && right_is_const));
484
485
24
        if (!left_is_const && !right_is_const) {
486
20
            auto col_res = ColumnUInt8::create();
487
488
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
20
            vec_res.resize(col_left->get_data().size());
490
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
20
                              typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
20
                                                     vec_res);
494
495
20
            block.replace_by_position(result, std::move(col_res));
496
20
        } else if (!left_is_const && right_is_const) {
497
4
            auto col_res = ColumnUInt8::create();
498
499
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
4
            vec_res.resize(col_left->size());
501
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
4
                              typename PrimitiveTypeTraits<PT>::CppType,
503
4
                              Op<PT>>::vector_constant(col_left->get_data(),
504
4
                                                       col_right->get_element(0), vec_res);
505
506
4
            block.replace_by_position(result, std::move(col_res));
507
4
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
24
        return Status::OK();
520
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
152
                            const ColumnPtr& col_right_ptr) const {
477
152
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
152
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
152
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
152
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
152
        DCHECK(!(left_is_const && right_is_const));
484
485
152
        if (!left_is_const && !right_is_const) {
486
24
            auto col_res = ColumnUInt8::create();
487
488
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
24
            vec_res.resize(col_left->get_data().size());
490
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
24
                              typename PrimitiveTypeTraits<PT>::CppType,
492
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
24
                                                     vec_res);
494
495
24
            block.replace_by_position(result, std::move(col_res));
496
128
        } else if (!left_is_const && right_is_const) {
497
128
            auto col_res = ColumnUInt8::create();
498
499
128
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
128
            vec_res.resize(col_left->size());
501
128
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
128
                              typename PrimitiveTypeTraits<PT>::CppType,
503
128
                              Op<PT>>::vector_constant(col_left->get_data(),
504
128
                                                       col_right->get_element(0), vec_res);
505
506
128
            block.replace_by_position(result, std::move(col_res));
507
128
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
152
        return Status::OK();
520
152
    }
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
476
92
                            const ColumnPtr& col_right_ptr) const {
477
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
92
        DCHECK(!(left_is_const && right_is_const));
484
485
92
        if (!left_is_const && !right_is_const) {
486
92
            auto col_res = ColumnUInt8::create();
487
488
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
92
            vec_res.resize(col_left->get_data().size());
490
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
92
                              typename PrimitiveTypeTraits<PT>::CppType,
492
92
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
92
                                                     vec_res);
494
495
92
            block.replace_by_position(result, std::move(col_res));
496
92
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
92
        return Status::OK();
520
92
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
2.00k
                            const ColumnPtr& col_right_ptr) const {
477
2.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
2.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
2.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
2.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
2.00k
        DCHECK(!(left_is_const && right_is_const));
484
485
2.00k
        if (!left_is_const && !right_is_const) {
486
1.65k
            auto col_res = ColumnUInt8::create();
487
488
1.65k
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
1.65k
            vec_res.resize(col_left->get_data().size());
490
1.65k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
1.65k
                              typename PrimitiveTypeTraits<PT>::CppType,
492
1.65k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
1.65k
                                                     vec_res);
494
495
1.65k
            block.replace_by_position(result, std::move(col_res));
496
1.65k
        } else if (!left_is_const && right_is_const) {
497
345
            auto col_res = ColumnUInt8::create();
498
499
345
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
345
            vec_res.resize(col_left->size());
501
345
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
345
                              typename PrimitiveTypeTraits<PT>::CppType,
503
345
                              Op<PT>>::vector_constant(col_left->get_data(),
504
345
                                                       col_right->get_element(0), vec_res);
505
506
345
            block.replace_by_position(result, std::move(col_res));
507
345
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
2.00k
        return Status::OK();
520
2.00k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
334
                            const ColumnPtr& col_right_ptr) const {
477
334
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
334
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
334
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
334
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
334
        DCHECK(!(left_is_const && right_is_const));
484
485
334
        if (!left_is_const && !right_is_const) {
486
275
            auto col_res = ColumnUInt8::create();
487
488
275
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
275
            vec_res.resize(col_left->get_data().size());
490
275
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
275
                              typename PrimitiveTypeTraits<PT>::CppType,
492
275
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
275
                                                     vec_res);
494
495
275
            block.replace_by_position(result, std::move(col_res));
496
275
        } else if (!left_is_const && right_is_const) {
497
59
            auto col_res = ColumnUInt8::create();
498
499
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
59
            vec_res.resize(col_left->size());
501
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
59
                              typename PrimitiveTypeTraits<PT>::CppType,
503
59
                              Op<PT>>::vector_constant(col_left->get_data(),
504
59
                                                       col_right->get_element(0), vec_res);
505
506
59
            block.replace_by_position(result, std::move(col_res));
507
59
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
334
        return Status::OK();
520
334
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
3
                            const ColumnPtr& col_right_ptr) const {
477
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
3
        DCHECK(!(left_is_const && right_is_const));
484
485
3
        if (!left_is_const && !right_is_const) {
486
2
            auto col_res = ColumnUInt8::create();
487
488
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
2
            vec_res.resize(col_left->get_data().size());
490
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
2
                              typename PrimitiveTypeTraits<PT>::CppType,
492
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
2
                                                     vec_res);
494
495
2
            block.replace_by_position(result, std::move(col_res));
496
2
        } else if (!left_is_const && right_is_const) {
497
1
            auto col_res = ColumnUInt8::create();
498
499
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
1
            vec_res.resize(col_left->size());
501
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
1
                              typename PrimitiveTypeTraits<PT>::CppType,
503
1
                              Op<PT>>::vector_constant(col_left->get_data(),
504
1
                                                       col_right->get_element(0), vec_res);
505
506
1
            block.replace_by_position(result, std::move(col_res));
507
1
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
3
        return Status::OK();
520
3
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
2.11k
                            const ColumnPtr& col_right_ptr) const {
477
2.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
2.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
2.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
2.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
2.11k
        DCHECK(!(left_is_const && right_is_const));
484
485
2.11k
        if (!left_is_const && !right_is_const) {
486
151
            auto col_res = ColumnUInt8::create();
487
488
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
151
            vec_res.resize(col_left->get_data().size());
490
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
151
                              typename PrimitiveTypeTraits<PT>::CppType,
492
151
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
151
                                                     vec_res);
494
495
151
            block.replace_by_position(result, std::move(col_res));
496
1.96k
        } else if (!left_is_const && right_is_const) {
497
1.76k
            auto col_res = ColumnUInt8::create();
498
499
1.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
1.76k
            vec_res.resize(col_left->size());
501
1.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
1.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
1.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
1.76k
                                                       col_right->get_element(0), vec_res);
505
506
1.76k
            block.replace_by_position(result, std::move(col_res));
507
1.76k
        } else if (left_is_const && !right_is_const) {
508
204
            auto col_res = ColumnUInt8::create();
509
510
204
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
204
            vec_res.resize(col_right->size());
512
204
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
204
                              typename PrimitiveTypeTraits<PT>::CppType,
514
204
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
204
                                                       col_right->get_data(), vec_res);
516
517
204
            block.replace_by_position(result, std::move(col_res));
518
204
        }
519
2.11k
        return Status::OK();
520
2.11k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
139
                            const ColumnPtr& col_right_ptr) const {
477
139
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
139
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
139
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
139
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
139
        DCHECK(!(left_is_const && right_is_const));
484
485
140
        if (!left_is_const && !right_is_const) {
486
126
            auto col_res = ColumnUInt8::create();
487
488
126
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
126
            vec_res.resize(col_left->get_data().size());
490
126
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
126
                              typename PrimitiveTypeTraits<PT>::CppType,
492
126
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
126
                                                     vec_res);
494
495
126
            block.replace_by_position(result, std::move(col_res));
496
126
        } else if (!left_is_const && right_is_const) {
497
14
            auto col_res = ColumnUInt8::create();
498
499
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
14
            vec_res.resize(col_left->size());
501
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
14
                              typename PrimitiveTypeTraits<PT>::CppType,
503
14
                              Op<PT>>::vector_constant(col_left->get_data(),
504
14
                                                       col_right->get_element(0), vec_res);
505
506
14
            block.replace_by_position(result, std::move(col_res));
507
18.4E
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
139
        return Status::OK();
520
139
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
1.10k
                            const ColumnPtr& col_right_ptr) const {
477
1.10k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
1.10k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
1.10k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
1.10k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
1.10k
        DCHECK(!(left_is_const && right_is_const));
484
485
1.10k
        if (!left_is_const && !right_is_const) {
486
166
            auto col_res = ColumnUInt8::create();
487
488
166
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
166
            vec_res.resize(col_left->get_data().size());
490
166
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
166
                              typename PrimitiveTypeTraits<PT>::CppType,
492
166
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
166
                                                     vec_res);
494
495
166
            block.replace_by_position(result, std::move(col_res));
496
936
        } else if (!left_is_const && right_is_const) {
497
816
            auto col_res = ColumnUInt8::create();
498
499
816
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
816
            vec_res.resize(col_left->size());
501
816
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
816
                              typename PrimitiveTypeTraits<PT>::CppType,
503
816
                              Op<PT>>::vector_constant(col_left->get_data(),
504
816
                                                       col_right->get_element(0), vec_res);
505
506
816
            block.replace_by_position(result, std::move(col_res));
507
816
        } else if (left_is_const && !right_is_const) {
508
121
            auto col_res = ColumnUInt8::create();
509
510
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
121
            vec_res.resize(col_right->size());
512
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
121
                              typename PrimitiveTypeTraits<PT>::CppType,
514
121
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
121
                                                       col_right->get_data(), vec_res);
516
517
121
            block.replace_by_position(result, std::move(col_res));
518
121
        }
519
1.10k
        return Status::OK();
520
1.10k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
821
                            const ColumnPtr& col_right_ptr) const {
477
821
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
821
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
821
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
821
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
821
        DCHECK(!(left_is_const && right_is_const));
484
485
821
        if (!left_is_const && !right_is_const) {
486
215
            auto col_res = ColumnUInt8::create();
487
488
215
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
215
            vec_res.resize(col_left->get_data().size());
490
215
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
215
                              typename PrimitiveTypeTraits<PT>::CppType,
492
215
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
215
                                                     vec_res);
494
495
215
            block.replace_by_position(result, std::move(col_res));
496
606
        } else if (!left_is_const && right_is_const) {
497
527
            auto col_res = ColumnUInt8::create();
498
499
527
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
527
            vec_res.resize(col_left->size());
501
527
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
527
                              typename PrimitiveTypeTraits<PT>::CppType,
503
527
                              Op<PT>>::vector_constant(col_left->get_data(),
504
527
                                                       col_right->get_element(0), vec_res);
505
506
527
            block.replace_by_position(result, std::move(col_res));
507
527
        } else if (left_is_const && !right_is_const) {
508
79
            auto col_res = ColumnUInt8::create();
509
510
79
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
79
            vec_res.resize(col_right->size());
512
79
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
79
                              typename PrimitiveTypeTraits<PT>::CppType,
514
79
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
79
                                                       col_right->get_data(), vec_res);
516
517
79
            block.replace_by_position(result, std::move(col_res));
518
79
        }
519
821
        return Status::OK();
520
821
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
307
                            const ColumnPtr& col_right_ptr) const {
477
307
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
307
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
307
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
307
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
307
        DCHECK(!(left_is_const && right_is_const));
484
485
307
        if (!left_is_const && !right_is_const) {
486
159
            auto col_res = ColumnUInt8::create();
487
488
159
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
159
            vec_res.resize(col_left->get_data().size());
490
159
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
159
                              typename PrimitiveTypeTraits<PT>::CppType,
492
159
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
159
                                                     vec_res);
494
495
159
            block.replace_by_position(result, std::move(col_res));
496
159
        } else if (!left_is_const && right_is_const) {
497
52
            auto col_res = ColumnUInt8::create();
498
499
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
52
            vec_res.resize(col_left->size());
501
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
52
                              typename PrimitiveTypeTraits<PT>::CppType,
503
52
                              Op<PT>>::vector_constant(col_left->get_data(),
504
52
                                                       col_right->get_element(0), vec_res);
505
506
52
            block.replace_by_position(result, std::move(col_res));
507
96
        } else if (left_is_const && !right_is_const) {
508
96
            auto col_res = ColumnUInt8::create();
509
510
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
96
            vec_res.resize(col_right->size());
512
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
96
                              typename PrimitiveTypeTraits<PT>::CppType,
514
96
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
96
                                                       col_right->get_data(), vec_res);
516
517
96
            block.replace_by_position(result, std::move(col_res));
518
96
        }
519
307
        return Status::OK();
520
307
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
18
                            const ColumnPtr& col_right_ptr) const {
477
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
18
        DCHECK(!(left_is_const && right_is_const));
484
485
18
        if (!left_is_const && !right_is_const) {
486
16
            auto col_res = ColumnUInt8::create();
487
488
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
16
            vec_res.resize(col_left->get_data().size());
490
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
16
                              typename PrimitiveTypeTraits<PT>::CppType,
492
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
16
                                                     vec_res);
494
495
16
            block.replace_by_position(result, std::move(col_res));
496
16
        } else if (!left_is_const && right_is_const) {
497
2
            auto col_res = ColumnUInt8::create();
498
499
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
2
            vec_res.resize(col_left->size());
501
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
2
                              typename PrimitiveTypeTraits<PT>::CppType,
503
2
                              Op<PT>>::vector_constant(col_left->get_data(),
504
2
                                                       col_right->get_element(0), vec_res);
505
506
2
            block.replace_by_position(result, std::move(col_res));
507
2
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
18
        return Status::OK();
520
18
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
16
                            const ColumnPtr& col_right_ptr) const {
477
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
16
        DCHECK(!(left_is_const && right_is_const));
484
485
16
        if (!left_is_const && !right_is_const) {
486
16
            auto col_res = ColumnUInt8::create();
487
488
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
16
            vec_res.resize(col_left->get_data().size());
490
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
16
                              typename PrimitiveTypeTraits<PT>::CppType,
492
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
16
                                                     vec_res);
494
495
16
            block.replace_by_position(result, std::move(col_res));
496
16
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
16
        return Status::OK();
520
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
161
                            const ColumnPtr& col_right_ptr) const {
477
161
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
161
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
161
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
161
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
161
        DCHECK(!(left_is_const && right_is_const));
484
485
161
        if (!left_is_const && !right_is_const) {
486
161
            auto col_res = ColumnUInt8::create();
487
488
161
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
161
            vec_res.resize(col_left->get_data().size());
490
161
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
161
                              typename PrimitiveTypeTraits<PT>::CppType,
492
161
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
161
                                                     vec_res);
494
495
161
            block.replace_by_position(result, std::move(col_res));
496
161
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
161
        return Status::OK();
520
161
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
337
                            const ColumnPtr& col_right_ptr) const {
477
337
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
337
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
337
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
337
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
337
        DCHECK(!(left_is_const && right_is_const));
484
485
337
        if (!left_is_const && !right_is_const) {
486
155
            auto col_res = ColumnUInt8::create();
487
488
155
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
155
            vec_res.resize(col_left->get_data().size());
490
155
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
155
                              typename PrimitiveTypeTraits<PT>::CppType,
492
155
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
155
                                                     vec_res);
494
495
155
            block.replace_by_position(result, std::move(col_res));
496
182
        } else if (!left_is_const && right_is_const) {
497
182
            auto col_res = ColumnUInt8::create();
498
499
182
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
182
            vec_res.resize(col_left->size());
501
182
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
182
                              typename PrimitiveTypeTraits<PT>::CppType,
503
182
                              Op<PT>>::vector_constant(col_left->get_data(),
504
182
                                                       col_right->get_element(0), vec_res);
505
506
182
            block.replace_by_position(result, std::move(col_res));
507
182
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
337
        return Status::OK();
520
337
    }
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
476
42
                            const ColumnPtr& col_right_ptr) const {
477
42
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
42
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
42
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
42
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
42
        DCHECK(!(left_is_const && right_is_const));
484
485
42
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
42
        } else if (!left_is_const && right_is_const) {
497
42
            auto col_res = ColumnUInt8::create();
498
499
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
42
            vec_res.resize(col_left->size());
501
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
42
                              typename PrimitiveTypeTraits<PT>::CppType,
503
42
                              Op<PT>>::vector_constant(col_left->get_data(),
504
42
                                                       col_right->get_element(0), vec_res);
505
506
42
            block.replace_by_position(result, std::move(col_res));
507
42
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
42
        return Status::OK();
520
42
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
571
                            const ColumnPtr& col_right_ptr) const {
477
571
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
571
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
571
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
571
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
571
        DCHECK(!(left_is_const && right_is_const));
484
485
571
        if (!left_is_const && !right_is_const) {
486
405
            auto col_res = ColumnUInt8::create();
487
488
405
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
405
            vec_res.resize(col_left->get_data().size());
490
405
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
405
                              typename PrimitiveTypeTraits<PT>::CppType,
492
405
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
405
                                                     vec_res);
494
495
405
            block.replace_by_position(result, std::move(col_res));
496
405
        } else if (!left_is_const && right_is_const) {
497
163
            auto col_res = ColumnUInt8::create();
498
499
163
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
163
            vec_res.resize(col_left->size());
501
163
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
163
                              typename PrimitiveTypeTraits<PT>::CppType,
503
163
                              Op<PT>>::vector_constant(col_left->get_data(),
504
163
                                                       col_right->get_element(0), vec_res);
505
506
163
            block.replace_by_position(result, std::move(col_res));
507
163
        } else if (left_is_const && !right_is_const) {
508
5
            auto col_res = ColumnUInt8::create();
509
510
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
5
            vec_res.resize(col_right->size());
512
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
5
                              typename PrimitiveTypeTraits<PT>::CppType,
514
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
5
                                                       col_right->get_data(), vec_res);
516
517
5
            block.replace_by_position(result, std::move(col_res));
518
5
        }
519
571
        return Status::OK();
520
571
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
73
                            const ColumnPtr& col_right_ptr) const {
477
73
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
73
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
73
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
73
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
73
        DCHECK(!(left_is_const && right_is_const));
484
485
73
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
73
        } else if (!left_is_const && right_is_const) {
497
73
            auto col_res = ColumnUInt8::create();
498
499
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
73
            vec_res.resize(col_left->size());
501
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
73
                              typename PrimitiveTypeTraits<PT>::CppType,
503
73
                              Op<PT>>::vector_constant(col_left->get_data(),
504
73
                                                       col_right->get_element(0), vec_res);
505
506
73
            block.replace_by_position(result, std::move(col_res));
507
73
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
73
        return Status::OK();
520
73
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
2
                            const ColumnPtr& col_right_ptr) const {
477
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
2
        DCHECK(!(left_is_const && right_is_const));
484
485
2
        if (!left_is_const && !right_is_const) {
486
2
            auto col_res = ColumnUInt8::create();
487
488
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
2
            vec_res.resize(col_left->get_data().size());
490
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
2
                              typename PrimitiveTypeTraits<PT>::CppType,
492
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
2
                                                     vec_res);
494
495
2
            block.replace_by_position(result, std::move(col_res));
496
2
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
2
        return Status::OK();
520
2
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
94
                            const ColumnPtr& col_right_ptr) const {
477
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
94
        DCHECK(!(left_is_const && right_is_const));
484
485
94
        if (!left_is_const && !right_is_const) {
486
1
            auto col_res = ColumnUInt8::create();
487
488
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
1
            vec_res.resize(col_left->get_data().size());
490
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
1
                              typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
1
                                                     vec_res);
494
495
1
            block.replace_by_position(result, std::move(col_res));
496
93
        } else if (!left_is_const && right_is_const) {
497
93
            auto col_res = ColumnUInt8::create();
498
499
93
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
93
            vec_res.resize(col_left->size());
501
93
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
93
                              typename PrimitiveTypeTraits<PT>::CppType,
503
93
                              Op<PT>>::vector_constant(col_left->get_data(),
504
93
                                                       col_right->get_element(0), vec_res);
505
506
93
            block.replace_by_position(result, std::move(col_res));
507
93
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
94
        return Status::OK();
520
94
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
133
                            const ColumnPtr& col_right_ptr) const {
477
133
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
133
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
133
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
133
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
133
        DCHECK(!(left_is_const && right_is_const));
484
485
133
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
133
        } else if (!left_is_const && right_is_const) {
497
133
            auto col_res = ColumnUInt8::create();
498
499
133
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
133
            vec_res.resize(col_left->size());
501
133
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
133
                              typename PrimitiveTypeTraits<PT>::CppType,
503
133
                              Op<PT>>::vector_constant(col_left->get_data(),
504
133
                                                       col_right->get_element(0), vec_res);
505
506
133
            block.replace_by_position(result, std::move(col_res));
507
133
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
133
        return Status::OK();
520
133
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
6.11k
                            const ColumnPtr& col_right_ptr) const {
477
6.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
6.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
6.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
6.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
6.11k
        DCHECK(!(left_is_const && right_is_const));
484
485
6.11k
        if (!left_is_const && !right_is_const) {
486
23
            auto col_res = ColumnUInt8::create();
487
488
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
23
            vec_res.resize(col_left->get_data().size());
490
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
23
                              typename PrimitiveTypeTraits<PT>::CppType,
492
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
23
                                                     vec_res);
494
495
23
            block.replace_by_position(result, std::move(col_res));
496
6.08k
        } else if (!left_is_const && right_is_const) {
497
5.76k
            auto col_res = ColumnUInt8::create();
498
499
5.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
5.76k
            vec_res.resize(col_left->size());
501
5.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
5.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
503
5.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
504
5.76k
                                                       col_right->get_element(0), vec_res);
505
506
5.76k
            block.replace_by_position(result, std::move(col_res));
507
5.76k
        } else if (left_is_const && !right_is_const) {
508
321
            auto col_res = ColumnUInt8::create();
509
510
321
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
321
            vec_res.resize(col_right->size());
512
321
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
321
                              typename PrimitiveTypeTraits<PT>::CppType,
514
321
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
321
                                                       col_right->get_data(), vec_res);
516
517
321
            block.replace_by_position(result, std::move(col_res));
518
321
        }
519
6.11k
        return Status::OK();
520
6.11k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
395
                            const ColumnPtr& col_right_ptr) const {
477
395
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
395
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
395
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
395
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
395
        DCHECK(!(left_is_const && right_is_const));
484
485
395
        if (!left_is_const && !right_is_const) {
486
31
            auto col_res = ColumnUInt8::create();
487
488
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
31
            vec_res.resize(col_left->get_data().size());
490
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
31
                              typename PrimitiveTypeTraits<PT>::CppType,
492
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
31
                                                     vec_res);
494
495
31
            block.replace_by_position(result, std::move(col_res));
496
364
        } else if (!left_is_const && right_is_const) {
497
316
            auto col_res = ColumnUInt8::create();
498
499
316
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
316
            vec_res.resize(col_left->size());
501
316
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
316
                              typename PrimitiveTypeTraits<PT>::CppType,
503
316
                              Op<PT>>::vector_constant(col_left->get_data(),
504
316
                                                       col_right->get_element(0), vec_res);
505
506
316
            block.replace_by_position(result, std::move(col_res));
507
316
        } else if (left_is_const && !right_is_const) {
508
48
            auto col_res = ColumnUInt8::create();
509
510
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
48
            vec_res.resize(col_right->size());
512
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
48
                              typename PrimitiveTypeTraits<PT>::CppType,
514
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
48
                                                       col_right->get_data(), vec_res);
516
517
48
            block.replace_by_position(result, std::move(col_res));
518
48
        }
519
395
        return Status::OK();
520
395
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
49
                            const ColumnPtr& col_right_ptr) const {
477
49
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
49
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
49
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
49
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
49
        DCHECK(!(left_is_const && right_is_const));
484
485
49
        if (!left_is_const && !right_is_const) {
486
0
            auto col_res = ColumnUInt8::create();
487
488
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
0
            vec_res.resize(col_left->get_data().size());
490
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
0
                              typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
0
                                                     vec_res);
494
495
0
            block.replace_by_position(result, std::move(col_res));
496
49
        } else if (!left_is_const && right_is_const) {
497
49
            auto col_res = ColumnUInt8::create();
498
499
49
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
49
            vec_res.resize(col_left->size());
501
49
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
49
                              typename PrimitiveTypeTraits<PT>::CppType,
503
49
                              Op<PT>>::vector_constant(col_left->get_data(),
504
49
                                                       col_right->get_element(0), vec_res);
505
506
49
            block.replace_by_position(result, std::move(col_res));
507
49
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
49
        return Status::OK();
520
49
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
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
476
20
                            const ColumnPtr& col_right_ptr) const {
477
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
20
        DCHECK(!(left_is_const && right_is_const));
484
485
20
        if (!left_is_const && !right_is_const) {
486
20
            auto col_res = ColumnUInt8::create();
487
488
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
20
            vec_res.resize(col_left->get_data().size());
490
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
20
                              typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
20
                                                     vec_res);
494
495
20
            block.replace_by_position(result, std::move(col_res));
496
20
        } else if (!left_is_const && right_is_const) {
497
0
            auto col_res = ColumnUInt8::create();
498
499
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
0
            vec_res.resize(col_left->size());
501
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
0
                              typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              Op<PT>>::vector_constant(col_left->get_data(),
504
0
                                                       col_right->get_element(0), vec_res);
505
506
0
            block.replace_by_position(result, std::move(col_res));
507
0
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
20
        return Status::OK();
520
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
476
113
                            const ColumnPtr& col_right_ptr) const {
477
113
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
478
113
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
479
480
113
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
481
113
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
482
483
113
        DCHECK(!(left_is_const && right_is_const));
484
485
113
        if (!left_is_const && !right_is_const) {
486
20
            auto col_res = ColumnUInt8::create();
487
488
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
489
20
            vec_res.resize(col_left->get_data().size());
490
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
491
20
                              typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
493
20
                                                     vec_res);
494
495
20
            block.replace_by_position(result, std::move(col_res));
496
93
        } else if (!left_is_const && right_is_const) {
497
93
            auto col_res = ColumnUInt8::create();
498
499
93
            ColumnUInt8::Container& vec_res = col_res->get_data();
500
93
            vec_res.resize(col_left->size());
501
93
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
502
93
                              typename PrimitiveTypeTraits<PT>::CppType,
503
93
                              Op<PT>>::vector_constant(col_left->get_data(),
504
93
                                                       col_right->get_element(0), vec_res);
505
506
93
            block.replace_by_position(result, std::move(col_res));
507
93
        } else if (left_is_const && !right_is_const) {
508
0
            auto col_res = ColumnUInt8::create();
509
510
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
511
0
            vec_res.resize(col_right->size());
512
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
513
0
                              typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
515
0
                                                       col_right->get_data(), vec_res);
516
517
0
            block.replace_by_position(result, std::move(col_res));
518
0
        }
519
113
        return Status::OK();
520
113
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
521
522
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
523
3.19k
                           const ColumnWithTypeAndName& col_right) const {
524
3.19k
        auto call = [&](const auto& type) -> bool {
525
3.19k
            using DispatchType = std::decay_t<decltype(type)>;
526
3.19k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
3.19k
                    block, result, col_left, col_right);
528
3.19k
            return true;
529
3.19k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
524
146
        auto call = [&](const auto& type) -> bool {
525
146
            using DispatchType = std::decay_t<decltype(type)>;
526
146
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
146
                    block, result, col_left, col_right);
528
146
            return true;
529
146
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
524
151
        auto call = [&](const auto& type) -> bool {
525
151
            using DispatchType = std::decay_t<decltype(type)>;
526
151
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
151
                    block, result, col_left, col_right);
528
151
            return true;
529
151
        };
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
524
810
        auto call = [&](const auto& type) -> bool {
525
810
            using DispatchType = std::decay_t<decltype(type)>;
526
810
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
810
                    block, result, col_left, col_right);
528
810
            return true;
529
810
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
524
34
        auto call = [&](const auto& type) -> bool {
525
34
            using DispatchType = std::decay_t<decltype(type)>;
526
34
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
34
                    block, result, col_left, col_right);
528
34
            return true;
529
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
524
64
        auto call = [&](const auto& type) -> bool {
525
64
            using DispatchType = std::decay_t<decltype(type)>;
526
64
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
64
                    block, result, col_left, col_right);
528
64
            return true;
529
64
        };
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
524
28
        auto call = [&](const auto& type) -> bool {
525
28
            using DispatchType = std::decay_t<decltype(type)>;
526
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
28
                    block, result, col_left, col_right);
528
28
            return true;
529
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
524
30
        auto call = [&](const auto& type) -> bool {
525
30
            using DispatchType = std::decay_t<decltype(type)>;
526
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
30
                    block, result, col_left, col_right);
528
30
            return true;
529
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
524
8
        auto call = [&](const auto& type) -> bool {
525
8
            using DispatchType = std::decay_t<decltype(type)>;
526
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
8
                    block, result, col_left, col_right);
528
8
            return true;
529
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
524
66
        auto call = [&](const auto& type) -> bool {
525
66
            using DispatchType = std::decay_t<decltype(type)>;
526
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
66
                    block, result, col_left, col_right);
528
66
            return true;
529
66
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
524
653
        auto call = [&](const auto& type) -> bool {
525
653
            using DispatchType = std::decay_t<decltype(type)>;
526
653
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
653
                    block, result, col_left, col_right);
528
653
            return true;
529
653
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
524
2
        auto call = [&](const auto& type) -> bool {
525
2
            using DispatchType = std::decay_t<decltype(type)>;
526
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
2
                    block, result, col_left, col_right);
528
2
            return true;
529
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
524
4
        auto call = [&](const auto& type) -> bool {
525
4
            using DispatchType = std::decay_t<decltype(type)>;
526
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
4
                    block, result, col_left, col_right);
528
4
            return true;
529
4
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
524
53
        auto call = [&](const auto& type) -> bool {
525
53
            using DispatchType = std::decay_t<decltype(type)>;
526
53
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
53
                    block, result, col_left, col_right);
528
53
            return true;
529
53
        };
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
524
93
        auto call = [&](const auto& type) -> bool {
525
93
            using DispatchType = std::decay_t<decltype(type)>;
526
93
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
93
                    block, result, col_left, col_right);
528
93
            return true;
529
93
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
524
17
        auto call = [&](const auto& type) -> bool {
525
17
            using DispatchType = std::decay_t<decltype(type)>;
526
17
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
17
                    block, result, col_left, col_right);
528
17
            return true;
529
17
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
524
210
        auto call = [&](const auto& type) -> bool {
525
210
            using DispatchType = std::decay_t<decltype(type)>;
526
210
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
210
                    block, result, col_left, col_right);
528
210
            return true;
529
210
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
524
236
        auto call = [&](const auto& type) -> bool {
525
236
            using DispatchType = std::decay_t<decltype(type)>;
526
236
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
236
                    block, result, col_left, col_right);
528
236
            return true;
529
236
        };
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
524
382
        auto call = [&](const auto& type) -> bool {
525
382
            using DispatchType = std::decay_t<decltype(type)>;
526
382
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
382
                    block, result, col_left, col_right);
528
382
            return true;
529
382
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
524
1
        auto call = [&](const auto& type) -> bool {
525
1
            using DispatchType = std::decay_t<decltype(type)>;
526
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
1
                    block, result, col_left, col_right);
528
1
            return true;
529
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
524
7
        auto call = [&](const auto& type) -> bool {
525
7
            using DispatchType = std::decay_t<decltype(type)>;
526
7
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
7
                    block, result, col_left, col_right);
528
7
            return true;
529
7
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
524
82
        auto call = [&](const auto& type) -> bool {
525
82
            using DispatchType = std::decay_t<decltype(type)>;
526
82
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
82
                    block, result, col_left, col_right);
528
82
            return true;
529
82
        };
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
524
104
        auto call = [&](const auto& type) -> bool {
525
104
            using DispatchType = std::decay_t<decltype(type)>;
526
104
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
104
                    block, result, col_left, col_right);
528
104
            return true;
529
104
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
524
12
        auto call = [&](const auto& type) -> bool {
525
12
            using DispatchType = std::decay_t<decltype(type)>;
526
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
12
                    block, result, col_left, col_right);
528
12
            return true;
529
12
        };
530
531
3.19k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
532
0
            return Status::RuntimeError(
533
0
                    "type of left column {} is not equal to type of right column {}",
534
0
                    col_left.type->get_name(), col_right.type->get_name());
535
0
        }
536
537
3.19k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
538
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
539
0
                                        col_left.type->get_name(), col_right.type->get_name());
540
0
        }
541
3.19k
        return Status::OK();
542
3.19k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
523
1.14k
                           const ColumnWithTypeAndName& col_right) const {
524
1.14k
        auto call = [&](const auto& type) -> bool {
525
1.14k
            using DispatchType = std::decay_t<decltype(type)>;
526
1.14k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
1.14k
                    block, result, col_left, col_right);
528
1.14k
            return true;
529
1.14k
        };
530
531
1.14k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
532
0
            return Status::RuntimeError(
533
0
                    "type of left column {} is not equal to type of right column {}",
534
0
                    col_left.type->get_name(), col_right.type->get_name());
535
0
        }
536
537
1.14k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
538
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
539
0
                                        col_left.type->get_name(), col_right.type->get_name());
540
0
        }
541
1.14k
        return Status::OK();
542
1.14k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
523
122
                           const ColumnWithTypeAndName& col_right) const {
524
122
        auto call = [&](const auto& type) -> bool {
525
122
            using DispatchType = std::decay_t<decltype(type)>;
526
122
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
122
                    block, result, col_left, col_right);
528
122
            return true;
529
122
        };
530
531
122
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
532
0
            return Status::RuntimeError(
533
0
                    "type of left column {} is not equal to type of right column {}",
534
0
                    col_left.type->get_name(), col_right.type->get_name());
535
0
        }
536
537
122
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
538
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
539
0
                                        col_left.type->get_name(), col_right.type->get_name());
540
0
        }
541
122
        return Status::OK();
542
122
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
523
729
                           const ColumnWithTypeAndName& col_right) const {
524
729
        auto call = [&](const auto& type) -> bool {
525
729
            using DispatchType = std::decay_t<decltype(type)>;
526
729
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
729
                    block, result, col_left, col_right);
528
729
            return true;
529
729
        };
530
531
729
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
532
0
            return Status::RuntimeError(
533
0
                    "type of left column {} is not equal to type of right column {}",
534
0
                    col_left.type->get_name(), col_right.type->get_name());
535
0
        }
536
537
729
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
538
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
539
0
                                        col_left.type->get_name(), col_right.type->get_name());
540
0
        }
541
729
        return Status::OK();
542
729
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
523
166
                           const ColumnWithTypeAndName& col_right) const {
524
166
        auto call = [&](const auto& type) -> bool {
525
166
            using DispatchType = std::decay_t<decltype(type)>;
526
166
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
166
                    block, result, col_left, col_right);
528
166
            return true;
529
166
        };
530
531
166
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
532
0
            return Status::RuntimeError(
533
0
                    "type of left column {} is not equal to type of right column {}",
534
0
                    col_left.type->get_name(), col_right.type->get_name());
535
0
        }
536
537
166
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
538
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
539
0
                                        col_left.type->get_name(), col_right.type->get_name());
540
0
        }
541
166
        return Status::OK();
542
166
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
523
829
                           const ColumnWithTypeAndName& col_right) const {
524
829
        auto call = [&](const auto& type) -> bool {
525
829
            using DispatchType = std::decay_t<decltype(type)>;
526
829
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
829
                    block, result, col_left, col_right);
528
829
            return true;
529
829
        };
530
531
829
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
532
0
            return Status::RuntimeError(
533
0
                    "type of left column {} is not equal to type of right column {}",
534
0
                    col_left.type->get_name(), col_right.type->get_name());
535
0
        }
536
537
829
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
538
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
539
0
                                        col_left.type->get_name(), col_right.type->get_name());
540
0
        }
541
829
        return Status::OK();
542
829
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
523
205
                           const ColumnWithTypeAndName& col_right) const {
524
205
        auto call = [&](const auto& type) -> bool {
525
205
            using DispatchType = std::decay_t<decltype(type)>;
526
205
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
527
205
                    block, result, col_left, col_right);
528
205
            return true;
529
205
        };
530
531
205
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
532
0
            return Status::RuntimeError(
533
0
                    "type of left column {} is not equal to type of right column {}",
534
0
                    col_left.type->get_name(), col_right.type->get_name());
535
0
        }
536
537
205
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
538
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
539
0
                                        col_left.type->get_name(), col_right.type->get_name());
540
0
        }
541
205
        return Status::OK();
542
205
    }
543
544
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
545
11.9k
                          const IColumn* c1) const {
546
11.9k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
547
11.9k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
548
11.9k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
549
11.9k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
550
11.9k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
551
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
552
0
                                        c0->get_name(), c1->get_name(), name);
553
0
        }
554
11.9k
        DCHECK(!(c0_const && c1_const));
555
11.9k
        const ColumnString::Chars* c0_const_chars = nullptr;
556
11.9k
        const ColumnString::Chars* c1_const_chars = nullptr;
557
11.9k
        ColumnString::Offset c0_const_size = 0;
558
11.9k
        ColumnString::Offset c1_const_size = 0;
559
560
11.9k
        if (c0_const) {
561
82
            const ColumnString* c0_const_string =
562
82
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
563
564
82
            if (c0_const_string) {
565
82
                c0_const_chars = &c0_const_string->get_chars();
566
82
                c0_const_size = c0_const_string->get_offsets()[0];
567
82
            } else {
568
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
569
0
                                            c0->get_name(), name);
570
0
            }
571
82
        }
572
573
11.9k
        if (c1_const) {
574
10.9k
            const ColumnString* c1_const_string =
575
10.9k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
576
577
10.9k
            if (c1_const_string) {
578
10.9k
                c1_const_chars = &c1_const_string->get_chars();
579
10.9k
                c1_const_size = c1_const_string->get_offsets()[0];
580
10.9k
            } else {
581
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
582
1
                                            c1->get_name(), name);
583
1
            }
584
10.9k
        }
585
586
11.9k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
587
588
11.9k
        auto c_res = ColumnUInt8::create();
589
11.9k
        ColumnUInt8::Container& vec_res = c_res->get_data();
590
11.9k
        vec_res.resize(c0->size());
591
592
11.9k
        if (c0_string && c1_string) {
593
927
            StringImpl::string_vector_string_vector(
594
927
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
595
927
                    c1_string->get_offsets(), vec_res);
596
11.0k
        } else if (c0_string && c1_const) {
597
10.9k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
598
10.9k
                                               *c1_const_chars, c1_const_size, vec_res);
599
10.9k
        } else if (c0_const && c1_string) {
600
82
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
601
82
                                               c1_string->get_chars(), c1_string->get_offsets(),
602
82
                                               vec_res);
603
18.4E
        } else {
604
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
605
18.4E
                                        c0->get_name(), c1->get_name(), name);
606
18.4E
        }
607
11.9k
        block.replace_by_position(result, std::move(c_res));
608
11.9k
        return Status::OK();
609
11.9k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
545
10.4k
                          const IColumn* c1) const {
546
10.4k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
547
10.4k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
548
10.4k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
549
10.4k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
550
10.4k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
551
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
552
0
                                        c0->get_name(), c1->get_name(), name);
553
0
        }
554
10.4k
        DCHECK(!(c0_const && c1_const));
555
10.4k
        const ColumnString::Chars* c0_const_chars = nullptr;
556
10.4k
        const ColumnString::Chars* c1_const_chars = nullptr;
557
10.4k
        ColumnString::Offset c0_const_size = 0;
558
10.4k
        ColumnString::Offset c1_const_size = 0;
559
560
10.4k
        if (c0_const) {
561
16
            const ColumnString* c0_const_string =
562
16
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
563
564
16
            if (c0_const_string) {
565
16
                c0_const_chars = &c0_const_string->get_chars();
566
16
                c0_const_size = c0_const_string->get_offsets()[0];
567
16
            } else {
568
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
569
0
                                            c0->get_name(), name);
570
0
            }
571
16
        }
572
573
10.4k
        if (c1_const) {
574
10.0k
            const ColumnString* c1_const_string =
575
10.0k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
576
577
10.0k
            if (c1_const_string) {
578
10.0k
                c1_const_chars = &c1_const_string->get_chars();
579
10.0k
                c1_const_size = c1_const_string->get_offsets()[0];
580
10.0k
            } else {
581
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
582
1
                                            c1->get_name(), name);
583
1
            }
584
10.0k
        }
585
586
10.4k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
587
588
10.4k
        auto c_res = ColumnUInt8::create();
589
10.4k
        ColumnUInt8::Container& vec_res = c_res->get_data();
590
10.4k
        vec_res.resize(c0->size());
591
592
10.4k
        if (c0_string && c1_string) {
593
441
            StringImpl::string_vector_string_vector(
594
441
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
595
441
                    c1_string->get_offsets(), vec_res);
596
10.0k
        } else if (c0_string && c1_const) {
597
10.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
598
10.0k
                                               *c1_const_chars, c1_const_size, vec_res);
599
10.0k
        } else if (c0_const && c1_string) {
600
16
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
601
16
                                               c1_string->get_chars(), c1_string->get_offsets(),
602
16
                                               vec_res);
603
18.4E
        } else {
604
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
605
18.4E
                                        c0->get_name(), c1->get_name(), name);
606
18.4E
        }
607
10.4k
        block.replace_by_position(result, std::move(c_res));
608
10.4k
        return Status::OK();
609
10.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
545
154
                          const IColumn* c1) const {
546
154
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
547
154
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
548
154
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
549
154
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
550
154
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
551
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
552
0
                                        c0->get_name(), c1->get_name(), name);
553
0
        }
554
154
        DCHECK(!(c0_const && c1_const));
555
154
        const ColumnString::Chars* c0_const_chars = nullptr;
556
154
        const ColumnString::Chars* c1_const_chars = nullptr;
557
154
        ColumnString::Offset c0_const_size = 0;
558
154
        ColumnString::Offset c1_const_size = 0;
559
560
154
        if (c0_const) {
561
0
            const ColumnString* c0_const_string =
562
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
563
564
0
            if (c0_const_string) {
565
0
                c0_const_chars = &c0_const_string->get_chars();
566
0
                c0_const_size = c0_const_string->get_offsets()[0];
567
0
            } else {
568
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
569
0
                                            c0->get_name(), name);
570
0
            }
571
0
        }
572
573
154
        if (c1_const) {
574
146
            const ColumnString* c1_const_string =
575
146
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
576
577
146
            if (c1_const_string) {
578
146
                c1_const_chars = &c1_const_string->get_chars();
579
146
                c1_const_size = c1_const_string->get_offsets()[0];
580
146
            } else {
581
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
582
0
                                            c1->get_name(), name);
583
0
            }
584
146
        }
585
586
154
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
587
588
154
        auto c_res = ColumnUInt8::create();
589
154
        ColumnUInt8::Container& vec_res = c_res->get_data();
590
154
        vec_res.resize(c0->size());
591
592
154
        if (c0_string && c1_string) {
593
8
            StringImpl::string_vector_string_vector(
594
8
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
595
8
                    c1_string->get_offsets(), vec_res);
596
146
        } else if (c0_string && c1_const) {
597
146
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
598
146
                                               *c1_const_chars, c1_const_size, vec_res);
599
146
        } else if (c0_const && c1_string) {
600
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
601
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
602
0
                                               vec_res);
603
0
        } else {
604
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
605
0
                                        c0->get_name(), c1->get_name(), name);
606
0
        }
607
154
        block.replace_by_position(result, std::move(c_res));
608
154
        return Status::OK();
609
154
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
545
174
                          const IColumn* c1) const {
546
174
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
547
174
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
548
174
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
549
174
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
550
174
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
551
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
552
0
                                        c0->get_name(), c1->get_name(), name);
553
0
        }
554
174
        DCHECK(!(c0_const && c1_const));
555
174
        const ColumnString::Chars* c0_const_chars = nullptr;
556
174
        const ColumnString::Chars* c1_const_chars = nullptr;
557
174
        ColumnString::Offset c0_const_size = 0;
558
174
        ColumnString::Offset c1_const_size = 0;
559
560
174
        if (c0_const) {
561
0
            const ColumnString* c0_const_string =
562
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
563
564
0
            if (c0_const_string) {
565
0
                c0_const_chars = &c0_const_string->get_chars();
566
0
                c0_const_size = c0_const_string->get_offsets()[0];
567
0
            } else {
568
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
569
0
                                            c0->get_name(), name);
570
0
            }
571
0
        }
572
573
174
        if (c1_const) {
574
172
            const ColumnString* c1_const_string =
575
172
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
576
577
172
            if (c1_const_string) {
578
172
                c1_const_chars = &c1_const_string->get_chars();
579
172
                c1_const_size = c1_const_string->get_offsets()[0];
580
172
            } else {
581
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
582
0
                                            c1->get_name(), name);
583
0
            }
584
172
        }
585
586
174
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
587
588
174
        auto c_res = ColumnUInt8::create();
589
174
        ColumnUInt8::Container& vec_res = c_res->get_data();
590
174
        vec_res.resize(c0->size());
591
592
174
        if (c0_string && c1_string) {
593
2
            StringImpl::string_vector_string_vector(
594
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
595
2
                    c1_string->get_offsets(), vec_res);
596
172
        } else if (c0_string && c1_const) {
597
172
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
598
172
                                               *c1_const_chars, c1_const_size, vec_res);
599
172
        } else if (c0_const && c1_string) {
600
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
601
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
602
0
                                               vec_res);
603
0
        } else {
604
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
605
0
                                        c0->get_name(), c1->get_name(), name);
606
0
        }
607
174
        block.replace_by_position(result, std::move(c_res));
608
174
        return Status::OK();
609
174
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
545
341
                          const IColumn* c1) const {
546
341
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
547
341
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
548
341
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
549
341
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
550
341
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
551
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
552
0
                                        c0->get_name(), c1->get_name(), name);
553
0
        }
554
341
        DCHECK(!(c0_const && c1_const));
555
341
        const ColumnString::Chars* c0_const_chars = nullptr;
556
341
        const ColumnString::Chars* c1_const_chars = nullptr;
557
341
        ColumnString::Offset c0_const_size = 0;
558
341
        ColumnString::Offset c1_const_size = 0;
559
560
341
        if (c0_const) {
561
60
            const ColumnString* c0_const_string =
562
60
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
563
564
60
            if (c0_const_string) {
565
60
                c0_const_chars = &c0_const_string->get_chars();
566
60
                c0_const_size = c0_const_string->get_offsets()[0];
567
60
            } else {
568
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
569
0
                                            c0->get_name(), name);
570
0
            }
571
60
        }
572
573
341
        if (c1_const) {
574
245
            const ColumnString* c1_const_string =
575
245
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
576
577
245
            if (c1_const_string) {
578
245
                c1_const_chars = &c1_const_string->get_chars();
579
245
                c1_const_size = c1_const_string->get_offsets()[0];
580
245
            } else {
581
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
582
0
                                            c1->get_name(), name);
583
0
            }
584
245
        }
585
586
341
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
587
588
341
        auto c_res = ColumnUInt8::create();
589
341
        ColumnUInt8::Container& vec_res = c_res->get_data();
590
341
        vec_res.resize(c0->size());
591
592
341
        if (c0_string && c1_string) {
593
36
            StringImpl::string_vector_string_vector(
594
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
595
36
                    c1_string->get_offsets(), vec_res);
596
305
        } else if (c0_string && c1_const) {
597
245
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
598
245
                                               *c1_const_chars, c1_const_size, vec_res);
599
245
        } else if (c0_const && c1_string) {
600
60
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
601
60
                                               c1_string->get_chars(), c1_string->get_offsets(),
602
60
                                               vec_res);
603
60
        } else {
604
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
605
0
                                        c0->get_name(), c1->get_name(), name);
606
0
        }
607
341
        block.replace_by_position(result, std::move(c_res));
608
341
        return Status::OK();
609
341
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
545
539
                          const IColumn* c1) const {
546
539
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
547
539
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
548
539
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
549
539
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
550
540
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
551
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
552
0
                                        c0->get_name(), c1->get_name(), name);
553
0
        }
554
539
        DCHECK(!(c0_const && c1_const));
555
539
        const ColumnString::Chars* c0_const_chars = nullptr;
556
539
        const ColumnString::Chars* c1_const_chars = nullptr;
557
539
        ColumnString::Offset c0_const_size = 0;
558
539
        ColumnString::Offset c1_const_size = 0;
559
560
539
        if (c0_const) {
561
6
            const ColumnString* c0_const_string =
562
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
563
564
6
            if (c0_const_string) {
565
6
                c0_const_chars = &c0_const_string->get_chars();
566
6
                c0_const_size = c0_const_string->get_offsets()[0];
567
6
            } else {
568
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
569
0
                                            c0->get_name(), name);
570
0
            }
571
6
        }
572
573
539
        if (c1_const) {
574
94
            const ColumnString* c1_const_string =
575
94
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
576
577
94
            if (c1_const_string) {
578
94
                c1_const_chars = &c1_const_string->get_chars();
579
94
                c1_const_size = c1_const_string->get_offsets()[0];
580
94
            } else {
581
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
582
0
                                            c1->get_name(), name);
583
0
            }
584
94
        }
585
586
539
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
587
588
539
        auto c_res = ColumnUInt8::create();
589
539
        ColumnUInt8::Container& vec_res = c_res->get_data();
590
539
        vec_res.resize(c0->size());
591
592
539
        if (c0_string && c1_string) {
593
440
            StringImpl::string_vector_string_vector(
594
440
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
595
440
                    c1_string->get_offsets(), vec_res);
596
440
        } else if (c0_string && c1_const) {
597
94
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
598
94
                                               *c1_const_chars, c1_const_size, vec_res);
599
94
        } else if (c0_const && c1_string) {
600
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
601
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
602
6
                                               vec_res);
603
18.4E
        } else {
604
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
605
18.4E
                                        c0->get_name(), c1->get_name(), name);
606
18.4E
        }
607
540
        block.replace_by_position(result, std::move(c_res));
608
540
        return Status::OK();
609
539
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
545
290
                          const IColumn* c1) const {
546
290
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
547
290
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
548
290
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
549
290
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
550
290
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
551
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
552
0
                                        c0->get_name(), c1->get_name(), name);
553
0
        }
554
290
        DCHECK(!(c0_const && c1_const));
555
290
        const ColumnString::Chars* c0_const_chars = nullptr;
556
290
        const ColumnString::Chars* c1_const_chars = nullptr;
557
290
        ColumnString::Offset c0_const_size = 0;
558
290
        ColumnString::Offset c1_const_size = 0;
559
560
290
        if (c0_const) {
561
0
            const ColumnString* c0_const_string =
562
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
563
564
0
            if (c0_const_string) {
565
0
                c0_const_chars = &c0_const_string->get_chars();
566
0
                c0_const_size = c0_const_string->get_offsets()[0];
567
0
            } else {
568
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
569
0
                                            c0->get_name(), name);
570
0
            }
571
0
        }
572
573
290
        if (c1_const) {
574
290
            const ColumnString* c1_const_string =
575
290
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
576
577
290
            if (c1_const_string) {
578
290
                c1_const_chars = &c1_const_string->get_chars();
579
290
                c1_const_size = c1_const_string->get_offsets()[0];
580
290
            } else {
581
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
582
0
                                            c1->get_name(), name);
583
0
            }
584
290
        }
585
586
290
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
587
588
290
        auto c_res = ColumnUInt8::create();
589
290
        ColumnUInt8::Container& vec_res = c_res->get_data();
590
290
        vec_res.resize(c0->size());
591
592
290
        if (c0_string && c1_string) {
593
0
            StringImpl::string_vector_string_vector(
594
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
595
0
                    c1_string->get_offsets(), vec_res);
596
290
        } else if (c0_string && c1_const) {
597
290
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
598
290
                                               *c1_const_chars, c1_const_size, vec_res);
599
290
        } else if (c0_const && c1_string) {
600
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
601
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
602
0
                                               vec_res);
603
0
        } else {
604
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
605
0
                                        c0->get_name(), c1->get_name(), name);
606
0
        }
607
290
        block.replace_by_position(result, std::move(c_res));
608
290
        return Status::OK();
609
290
    }
610
611
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
612
165
                                         const IColumn* c1) const {
613
165
        bool c0_const = is_column_const(*c0);
614
165
        bool c1_const = is_column_const(*c1);
615
616
165
        DCHECK(!(c0_const && c1_const));
617
618
165
        auto c_res = ColumnUInt8::create();
619
165
        ColumnUInt8::Container& vec_res = c_res->get_data();
620
165
        vec_res.resize(c0->size());
621
622
165
        if (c0_const) {
623
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
624
165
        } else if (c1_const) {
625
156
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
626
156
        } else {
627
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
628
9
        }
629
630
165
        block.replace_by_position(result, std::move(c_res));
631
165
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
612
17
                                         const IColumn* c1) const {
613
17
        bool c0_const = is_column_const(*c0);
614
17
        bool c1_const = is_column_const(*c1);
615
616
17
        DCHECK(!(c0_const && c1_const));
617
618
17
        auto c_res = ColumnUInt8::create();
619
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
620
17
        vec_res.resize(c0->size());
621
622
17
        if (c0_const) {
623
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
624
17
        } else if (c1_const) {
625
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
626
13
        } else {
627
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
628
4
        }
629
630
17
        block.replace_by_position(result, std::move(c_res));
631
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
612
8
                                         const IColumn* c1) const {
613
8
        bool c0_const = is_column_const(*c0);
614
8
        bool c1_const = is_column_const(*c1);
615
616
8
        DCHECK(!(c0_const && c1_const));
617
618
8
        auto c_res = ColumnUInt8::create();
619
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
620
8
        vec_res.resize(c0->size());
621
622
8
        if (c0_const) {
623
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
624
8
        } else if (c1_const) {
625
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
626
8
        } else {
627
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
628
0
        }
629
630
8
        block.replace_by_position(result, std::move(c_res));
631
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
612
9
                                         const IColumn* c1) const {
613
9
        bool c0_const = is_column_const(*c0);
614
9
        bool c1_const = is_column_const(*c1);
615
616
9
        DCHECK(!(c0_const && c1_const));
617
618
9
        auto c_res = ColumnUInt8::create();
619
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
620
9
        vec_res.resize(c0->size());
621
622
9
        if (c0_const) {
623
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
624
9
        } else if (c1_const) {
625
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
626
8
        } else {
627
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
628
1
        }
629
630
9
        block.replace_by_position(result, std::move(c_res));
631
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
612
69
                                         const IColumn* c1) const {
613
69
        bool c0_const = is_column_const(*c0);
614
69
        bool c1_const = is_column_const(*c1);
615
616
69
        DCHECK(!(c0_const && c1_const));
617
618
69
        auto c_res = ColumnUInt8::create();
619
69
        ColumnUInt8::Container& vec_res = c_res->get_data();
620
69
        vec_res.resize(c0->size());
621
622
69
        if (c0_const) {
623
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
624
69
        } else if (c1_const) {
625
68
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
626
68
        } else {
627
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
628
1
        }
629
630
69
        block.replace_by_position(result, std::move(c_res));
631
69
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
612
11
                                         const IColumn* c1) const {
613
11
        bool c0_const = is_column_const(*c0);
614
11
        bool c1_const = is_column_const(*c1);
615
616
11
        DCHECK(!(c0_const && c1_const));
617
618
11
        auto c_res = ColumnUInt8::create();
619
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
620
11
        vec_res.resize(c0->size());
621
622
11
        if (c0_const) {
623
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
624
11
        } else if (c1_const) {
625
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
626
8
        } else {
627
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
628
3
        }
629
630
11
        block.replace_by_position(result, std::move(c_res));
631
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
612
51
                                         const IColumn* c1) const {
613
51
        bool c0_const = is_column_const(*c0);
614
51
        bool c1_const = is_column_const(*c1);
615
616
51
        DCHECK(!(c0_const && c1_const));
617
618
51
        auto c_res = ColumnUInt8::create();
619
51
        ColumnUInt8::Container& vec_res = c_res->get_data();
620
51
        vec_res.resize(c0->size());
621
622
51
        if (c0_const) {
623
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
624
51
        } else if (c1_const) {
625
51
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
626
51
        } else {
627
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
628
0
        }
629
630
51
        block.replace_by_position(result, std::move(c_res));
631
51
    }
632
633
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
634
165
                           const ColumnWithTypeAndName& c1) const {
635
165
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
636
165
        return Status::OK();
637
165
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
634
17
                           const ColumnWithTypeAndName& c1) const {
635
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
636
17
        return Status::OK();
637
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
634
8
                           const ColumnWithTypeAndName& c1) const {
635
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
636
8
        return Status::OK();
637
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
634
9
                           const ColumnWithTypeAndName& c1) const {
635
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
636
9
        return Status::OK();
637
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
634
69
                           const ColumnWithTypeAndName& c1) const {
635
69
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
636
69
        return Status::OK();
637
69
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
634
11
                           const ColumnWithTypeAndName& c1) const {
635
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
636
11
        return Status::OK();
637
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
634
51
                           const ColumnWithTypeAndName& c1) const {
635
51
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
636
51
        return Status::OK();
637
51
    }
638
639
public:
640
222
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
640
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
640
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
640
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
640
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
640
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
640
1
    String get_name() const override { return name; }
641
642
270k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
642
241k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
642
1.15k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
642
4.99k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
642
8.66k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
642
3.00k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
642
10.9k
    size_t get_number_of_arguments() const override { return 2; }
643
644
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
645
3.00k
                                                const VExprSPtrs& arguments) const override {
646
3.00k
        auto op = comparison_zonemap_detail::op_from_name(name);
647
3.00k
        DORIS_CHECK(op.has_value());
648
3.00k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
649
3.00k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
645
1.53k
                                                const VExprSPtrs& arguments) const override {
646
1.53k
        auto op = comparison_zonemap_detail::op_from_name(name);
647
1.53k
        DORIS_CHECK(op.has_value());
648
1.53k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
649
1.53k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
645
139
                                                const VExprSPtrs& arguments) const override {
646
139
        auto op = comparison_zonemap_detail::op_from_name(name);
647
139
        DORIS_CHECK(op.has_value());
648
139
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
649
139
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
645
256
                                                const VExprSPtrs& arguments) const override {
646
256
        auto op = comparison_zonemap_detail::op_from_name(name);
647
256
        DORIS_CHECK(op.has_value());
648
256
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
649
256
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
645
407
                                                const VExprSPtrs& arguments) const override {
646
407
        auto op = comparison_zonemap_detail::op_from_name(name);
647
407
        DORIS_CHECK(op.has_value());
648
407
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
649
407
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
645
308
                                                const VExprSPtrs& arguments) const override {
646
308
        auto op = comparison_zonemap_detail::op_from_name(name);
647
308
        DORIS_CHECK(op.has_value());
648
308
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
649
308
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
645
363
                                                const VExprSPtrs& arguments) const override {
646
363
        auto op = comparison_zonemap_detail::op_from_name(name);
647
363
        DORIS_CHECK(op.has_value());
648
363
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
649
363
    }
650
651
30.2k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
652
30.2k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
653
30.3k
               comparison_zonemap_detail::can_evaluate(arguments);
654
30.2k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
651
14.0k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
652
14.0k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
653
14.0k
               comparison_zonemap_detail::can_evaluate(arguments);
654
14.0k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
651
1.56k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
652
1.56k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
653
1.56k
               comparison_zonemap_detail::can_evaluate(arguments);
654
1.56k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
651
5.39k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
652
5.39k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
653
5.42k
               comparison_zonemap_detail::can_evaluate(arguments);
654
5.39k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
651
3.97k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
652
3.97k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
653
3.98k
               comparison_zonemap_detail::can_evaluate(arguments);
654
3.97k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
651
3.13k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
652
3.13k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
653
3.13k
               comparison_zonemap_detail::can_evaluate(arguments);
654
3.13k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
651
2.12k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
652
2.12k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
653
2.13k
               comparison_zonemap_detail::can_evaluate(arguments);
654
2.12k
    }
655
656
    ZoneMapFilterResult evaluate_dictionary_filter(const DictionaryEvalContext& ctx,
657
14
                                                   const VExprSPtrs& arguments) const override {
658
14
        auto op = comparison_zonemap_detail::op_from_name(name);
659
14
        DORIS_CHECK(op.has_value());
660
14
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
661
14
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
657
4
                                                   const VExprSPtrs& arguments) const override {
658
4
        auto op = comparison_zonemap_detail::op_from_name(name);
659
4
        DORIS_CHECK(op.has_value());
660
4
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
661
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
657
3
                                                   const VExprSPtrs& arguments) const override {
658
3
        auto op = comparison_zonemap_detail::op_from_name(name);
659
3
        DORIS_CHECK(op.has_value());
660
3
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
661
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
657
7
                                                   const VExprSPtrs& arguments) const override {
658
7
        auto op = comparison_zonemap_detail::op_from_name(name);
659
7
        DORIS_CHECK(op.has_value());
660
7
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
661
7
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
662
663
142
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
664
142
        auto op = comparison_zonemap_detail::op_from_name(name);
665
142
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
666
142
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
663
25
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
664
25
        auto op = comparison_zonemap_detail::op_from_name(name);
665
25
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
666
25
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
663
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
664
1
        auto op = comparison_zonemap_detail::op_from_name(name);
665
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
666
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
663
91
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
664
91
        auto op = comparison_zonemap_detail::op_from_name(name);
665
91
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
666
91
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
663
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
664
1
        auto op = comparison_zonemap_detail::op_from_name(name);
665
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
666
1
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
663
23
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
664
23
        auto op = comparison_zonemap_detail::op_from_name(name);
665
23
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
666
23
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
663
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
664
1
        auto op = comparison_zonemap_detail::op_from_name(name);
665
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
666
1
    }
667
668
    ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
669
19
                                              const VExprSPtrs& arguments) const override {
670
19
        auto op = comparison_zonemap_detail::op_from_name(name);
671
19
        DORIS_CHECK(op.has_value());
672
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
673
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
669
19
                                              const VExprSPtrs& arguments) const override {
670
19
        auto op = comparison_zonemap_detail::op_from_name(name);
671
19
        DORIS_CHECK(op.has_value());
672
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
673
19
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
674
675
61
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
676
61
        auto op = comparison_zonemap_detail::op_from_name(name);
677
61
        return op == comparison_zonemap_detail::Op::EQ &&
678
61
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
679
61
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
675
27
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
676
27
        auto op = comparison_zonemap_detail::op_from_name(name);
677
27
        return op == comparison_zonemap_detail::Op::EQ &&
678
27
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
679
27
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
675
1
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
676
1
        auto op = comparison_zonemap_detail::op_from_name(name);
677
1
        return op == comparison_zonemap_detail::Op::EQ &&
678
1
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
679
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
675
27
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
676
27
        auto op = comparison_zonemap_detail::op_from_name(name);
677
27
        return op == comparison_zonemap_detail::Op::EQ &&
678
27
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
679
27
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
675
6
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
676
6
        auto op = comparison_zonemap_detail::op_from_name(name);
677
6
        return op == comparison_zonemap_detail::Op::EQ &&
678
6
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
679
6
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
680
681
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
682
270k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
683
270k
        return std::make_shared<DataTypeUInt8>();
684
270k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
682
241k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
683
241k
        return std::make_shared<DataTypeUInt8>();
684
241k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
682
1.14k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
683
1.14k
        return std::make_shared<DataTypeUInt8>();
684
1.14k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
682
4.99k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
683
4.99k
        return std::make_shared<DataTypeUInt8>();
684
4.99k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
682
8.67k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
683
8.67k
        return std::make_shared<DataTypeUInt8>();
684
8.67k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
682
3.00k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
683
3.00k
        return std::make_shared<DataTypeUInt8>();
684
3.00k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
682
10.9k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
683
10.9k
        return std::make_shared<DataTypeUInt8>();
684
10.9k
    }
685
686
    Status evaluate_inverted_index(
687
            const ColumnsWithTypeAndName& arguments,
688
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
689
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
690
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
691
1.30k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
692
1.30k
        DCHECK(arguments.size() == 1);
693
1.30k
        DCHECK(data_type_with_names.size() == 1);
694
1.30k
        DCHECK(iterators.size() == 1);
695
1.30k
        auto* iter = iterators[0];
696
1.30k
        auto data_type_with_name = data_type_with_names[0];
697
1.30k
        if (iter == nullptr) {
698
0
            return Status::OK();
699
0
        }
700
1.30k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
701
297
            return Status::OK();
702
297
        }
703
1.00k
        segment_v2::InvertedIndexQueryType query_type;
704
1.00k
        std::string_view name_view(name);
705
1.00k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
706
692
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
707
692
        } else if (name_view == NameLess::name) {
708
72
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
709
240
        } else if (name_view == NameLessOrEquals::name) {
710
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
711
159
        } else if (name_view == NameGreater::name) {
712
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
713
92
        } else if (name_view == NameGreaterOrEquals::name) {
714
92
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
715
18.4E
        } else {
716
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
717
18.4E
        }
718
719
1.01k
        if (segment_v2::is_range_query(query_type) &&
720
1.01k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
721
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
722
133
            return Status::OK();
723
133
        }
724
877
        Field param_value;
725
877
        arguments[0].column->get(0, param_value);
726
877
        if (param_value.is_null()) {
727
2
            return Status::OK();
728
2
        }
729
875
        segment_v2::InvertedIndexParam param;
730
875
        param.column_name = data_type_with_name.first;
731
875
        param.column_type = data_type_with_name.second;
732
875
        param.query_value = param_value;
733
875
        param.query_type = query_type;
734
875
        param.num_rows = num_rows;
735
875
        param.roaring = std::make_shared<roaring::Roaring>();
736
875
        param.analyzer_ctx = analyzer_ctx;
737
875
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
738
733
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
739
733
        if (iter->has_null()) {
740
732
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
741
732
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
742
732
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
743
732
        }
744
733
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
745
733
        bitmap_result = result;
746
733
        bitmap_result.mask_out_null();
747
748
733
        if (name_view == NameNotEquals::name) {
749
59
            roaring::Roaring full_result;
750
59
            full_result.addRange(0, num_rows);
751
59
            bitmap_result.op_not(&full_result);
752
59
        }
753
754
733
        return Status::OK();
755
733
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
691
655
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
692
655
        DCHECK(arguments.size() == 1);
693
655
        DCHECK(data_type_with_names.size() == 1);
694
655
        DCHECK(iterators.size() == 1);
695
655
        auto* iter = iterators[0];
696
655
        auto data_type_with_name = data_type_with_names[0];
697
655
        if (iter == nullptr) {
698
0
            return Status::OK();
699
0
        }
700
655
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
701
30
            return Status::OK();
702
30
        }
703
625
        segment_v2::InvertedIndexQueryType query_type;
704
625
        std::string_view name_view(name);
705
627
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
706
627
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
707
18.4E
        } else if (name_view == NameLess::name) {
708
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
709
18.4E
        } else if (name_view == NameLessOrEquals::name) {
710
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
711
18.4E
        } else if (name_view == NameGreater::name) {
712
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
713
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
714
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
715
18.4E
        } else {
716
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
717
18.4E
        }
718
719
627
        if (segment_v2::is_range_query(query_type) &&
720
627
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
721
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
722
0
            return Status::OK();
723
0
        }
724
627
        Field param_value;
725
627
        arguments[0].column->get(0, param_value);
726
627
        if (param_value.is_null()) {
727
2
            return Status::OK();
728
2
        }
729
625
        segment_v2::InvertedIndexParam param;
730
625
        param.column_name = data_type_with_name.first;
731
625
        param.column_type = data_type_with_name.second;
732
625
        param.query_value = param_value;
733
625
        param.query_type = query_type;
734
625
        param.num_rows = num_rows;
735
625
        param.roaring = std::make_shared<roaring::Roaring>();
736
625
        param.analyzer_ctx = analyzer_ctx;
737
625
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
738
589
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
739
589
        if (iter->has_null()) {
740
588
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
741
588
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
742
588
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
743
588
        }
744
589
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
745
589
        bitmap_result = result;
746
589
        bitmap_result.mask_out_null();
747
748
589
        if (name_view == NameNotEquals::name) {
749
0
            roaring::Roaring full_result;
750
0
            full_result.addRange(0, num_rows);
751
0
            bitmap_result.op_not(&full_result);
752
0
        }
753
754
589
        return Status::OK();
755
589
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
691
71
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
692
71
        DCHECK(arguments.size() == 1);
693
71
        DCHECK(data_type_with_names.size() == 1);
694
71
        DCHECK(iterators.size() == 1);
695
71
        auto* iter = iterators[0];
696
71
        auto data_type_with_name = data_type_with_names[0];
697
71
        if (iter == nullptr) {
698
0
            return Status::OK();
699
0
        }
700
71
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
701
6
            return Status::OK();
702
6
        }
703
65
        segment_v2::InvertedIndexQueryType query_type;
704
65
        std::string_view name_view(name);
705
65
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
706
65
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
707
65
        } else if (name_view == NameLess::name) {
708
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
709
0
        } else if (name_view == NameLessOrEquals::name) {
710
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
711
0
        } else if (name_view == NameGreater::name) {
712
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
713
0
        } else if (name_view == NameGreaterOrEquals::name) {
714
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
715
0
        } else {
716
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
717
0
        }
718
719
65
        if (segment_v2::is_range_query(query_type) &&
720
65
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
721
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
722
0
            return Status::OK();
723
0
        }
724
65
        Field param_value;
725
65
        arguments[0].column->get(0, param_value);
726
65
        if (param_value.is_null()) {
727
0
            return Status::OK();
728
0
        }
729
65
        segment_v2::InvertedIndexParam param;
730
65
        param.column_name = data_type_with_name.first;
731
65
        param.column_type = data_type_with_name.second;
732
65
        param.query_value = param_value;
733
65
        param.query_type = query_type;
734
65
        param.num_rows = num_rows;
735
65
        param.roaring = std::make_shared<roaring::Roaring>();
736
65
        param.analyzer_ctx = analyzer_ctx;
737
65
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
738
58
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
739
58
        if (iter->has_null()) {
740
58
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
741
58
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
742
58
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
743
58
        }
744
58
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
745
58
        bitmap_result = result;
746
58
        bitmap_result.mask_out_null();
747
748
59
        if (name_view == NameNotEquals::name) {
749
59
            roaring::Roaring full_result;
750
59
            full_result.addRange(0, num_rows);
751
59
            bitmap_result.op_not(&full_result);
752
59
        }
753
754
58
        return Status::OK();
755
58
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
691
112
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
692
112
        DCHECK(arguments.size() == 1);
693
112
        DCHECK(data_type_with_names.size() == 1);
694
112
        DCHECK(iterators.size() == 1);
695
112
        auto* iter = iterators[0];
696
112
        auto data_type_with_name = data_type_with_names[0];
697
112
        if (iter == nullptr) {
698
0
            return Status::OK();
699
0
        }
700
112
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
701
39
            return Status::OK();
702
39
        }
703
73
        segment_v2::InvertedIndexQueryType query_type;
704
73
        std::string_view name_view(name);
705
73
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
706
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
707
73
        } else if (name_view == NameLess::name) {
708
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
709
73
        } else if (name_view == NameLessOrEquals::name) {
710
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
711
73
        } else if (name_view == NameGreater::name) {
712
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
713
73
        } else if (name_view == NameGreaterOrEquals::name) {
714
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
715
0
        } else {
716
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
717
0
        }
718
719
73
        if (segment_v2::is_range_query(query_type) &&
720
73
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
721
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
722
17
            return Status::OK();
723
17
        }
724
56
        Field param_value;
725
56
        arguments[0].column->get(0, param_value);
726
56
        if (param_value.is_null()) {
727
0
            return Status::OK();
728
0
        }
729
56
        segment_v2::InvertedIndexParam param;
730
56
        param.column_name = data_type_with_name.first;
731
56
        param.column_type = data_type_with_name.second;
732
56
        param.query_value = param_value;
733
56
        param.query_type = query_type;
734
56
        param.num_rows = num_rows;
735
56
        param.roaring = std::make_shared<roaring::Roaring>();
736
56
        param.analyzer_ctx = analyzer_ctx;
737
56
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
738
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
739
37
        if (iter->has_null()) {
740
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
741
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
742
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
743
37
        }
744
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
745
37
        bitmap_result = result;
746
37
        bitmap_result.mask_out_null();
747
748
37
        if (name_view == NameNotEquals::name) {
749
0
            roaring::Roaring full_result;
750
0
            full_result.addRange(0, num_rows);
751
0
            bitmap_result.op_not(&full_result);
752
0
        }
753
754
37
        return Status::OK();
755
37
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
691
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
692
175
        DCHECK(arguments.size() == 1);
693
175
        DCHECK(data_type_with_names.size() == 1);
694
175
        DCHECK(iterators.size() == 1);
695
175
        auto* iter = iterators[0];
696
175
        auto data_type_with_name = data_type_with_names[0];
697
175
        if (iter == nullptr) {
698
0
            return Status::OK();
699
0
        }
700
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
701
85
            return Status::OK();
702
85
        }
703
90
        segment_v2::InvertedIndexQueryType query_type;
704
90
        std::string_view name_view(name);
705
92
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
706
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
707
90
        } else if (name_view == NameLess::name) {
708
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
709
90
        } else if (name_view == NameLessOrEquals::name) {
710
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
711
90
        } else if (name_view == NameGreater::name) {
712
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
713
92
        } else if (name_view == NameGreaterOrEquals::name) {
714
92
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
715
18.4E
        } else {
716
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
717
18.4E
        }
718
719
92
        if (segment_v2::is_range_query(query_type) &&
720
92
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
721
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
722
47
            return Status::OK();
723
47
        }
724
45
        Field param_value;
725
45
        arguments[0].column->get(0, param_value);
726
45
        if (param_value.is_null()) {
727
0
            return Status::OK();
728
0
        }
729
45
        segment_v2::InvertedIndexParam param;
730
45
        param.column_name = data_type_with_name.first;
731
45
        param.column_type = data_type_with_name.second;
732
45
        param.query_value = param_value;
733
45
        param.query_type = query_type;
734
45
        param.num_rows = num_rows;
735
45
        param.roaring = std::make_shared<roaring::Roaring>();
736
45
        param.analyzer_ctx = analyzer_ctx;
737
45
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
738
4
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
739
4
        if (iter->has_null()) {
740
4
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
741
4
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
742
4
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
743
4
        }
744
4
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
745
4
        bitmap_result = result;
746
4
        bitmap_result.mask_out_null();
747
748
4
        if (name_view == NameNotEquals::name) {
749
0
            roaring::Roaring full_result;
750
0
            full_result.addRange(0, num_rows);
751
0
            bitmap_result.op_not(&full_result);
752
0
        }
753
754
4
        return Status::OK();
755
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
691
115
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
692
115
        DCHECK(arguments.size() == 1);
693
115
        DCHECK(data_type_with_names.size() == 1);
694
115
        DCHECK(iterators.size() == 1);
695
115
        auto* iter = iterators[0];
696
115
        auto data_type_with_name = data_type_with_names[0];
697
115
        if (iter == nullptr) {
698
0
            return Status::OK();
699
0
        }
700
115
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
701
43
            return Status::OK();
702
43
        }
703
72
        segment_v2::InvertedIndexQueryType query_type;
704
72
        std::string_view name_view(name);
705
72
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
706
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
707
72
        } else if (name_view == NameLess::name) {
708
72
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
709
72
        } else if (name_view == NameLessOrEquals::name) {
710
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
711
0
        } else if (name_view == NameGreater::name) {
712
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
713
0
        } else if (name_view == NameGreaterOrEquals::name) {
714
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
715
0
        } else {
716
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
717
0
        }
718
719
72
        if (segment_v2::is_range_query(query_type) &&
720
72
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
721
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
722
18
            return Status::OK();
723
18
        }
724
54
        Field param_value;
725
54
        arguments[0].column->get(0, param_value);
726
54
        if (param_value.is_null()) {
727
0
            return Status::OK();
728
0
        }
729
54
        segment_v2::InvertedIndexParam param;
730
54
        param.column_name = data_type_with_name.first;
731
54
        param.column_type = data_type_with_name.second;
732
54
        param.query_value = param_value;
733
54
        param.query_type = query_type;
734
54
        param.num_rows = num_rows;
735
54
        param.roaring = std::make_shared<roaring::Roaring>();
736
54
        param.analyzer_ctx = analyzer_ctx;
737
54
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
738
36
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
739
36
        if (iter->has_null()) {
740
36
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
741
36
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
742
36
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
743
36
        }
744
36
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
745
36
        bitmap_result = result;
746
36
        bitmap_result.mask_out_null();
747
748
36
        if (name_view == NameNotEquals::name) {
749
0
            roaring::Roaring full_result;
750
0
            full_result.addRange(0, num_rows);
751
0
            bitmap_result.op_not(&full_result);
752
0
        }
753
754
36
        return Status::OK();
755
36
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
691
173
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
692
173
        DCHECK(arguments.size() == 1);
693
173
        DCHECK(data_type_with_names.size() == 1);
694
173
        DCHECK(iterators.size() == 1);
695
173
        auto* iter = iterators[0];
696
173
        auto data_type_with_name = data_type_with_names[0];
697
173
        if (iter == nullptr) {
698
0
            return Status::OK();
699
0
        }
700
173
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
701
94
            return Status::OK();
702
94
        }
703
79
        segment_v2::InvertedIndexQueryType query_type;
704
79
        std::string_view name_view(name);
705
81
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
706
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
707
79
        } else if (name_view == NameLess::name) {
708
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
709
81
        } else if (name_view == NameLessOrEquals::name) {
710
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
711
18.4E
        } else if (name_view == NameGreater::name) {
712
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
713
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
714
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
715
18.4E
        } else {
716
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
717
18.4E
        }
718
719
81
        if (segment_v2::is_range_query(query_type) &&
720
81
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
721
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
722
51
            return Status::OK();
723
51
        }
724
30
        Field param_value;
725
30
        arguments[0].column->get(0, param_value);
726
30
        if (param_value.is_null()) {
727
0
            return Status::OK();
728
0
        }
729
30
        segment_v2::InvertedIndexParam param;
730
30
        param.column_name = data_type_with_name.first;
731
30
        param.column_type = data_type_with_name.second;
732
30
        param.query_value = param_value;
733
30
        param.query_type = query_type;
734
30
        param.num_rows = num_rows;
735
30
        param.roaring = std::make_shared<roaring::Roaring>();
736
30
        param.analyzer_ctx = analyzer_ctx;
737
30
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
738
9
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
739
9
        if (iter->has_null()) {
740
9
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
741
9
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
742
9
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
743
9
        }
744
9
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
745
9
        bitmap_result = result;
746
9
        bitmap_result.mask_out_null();
747
748
9
        if (name_view == NameNotEquals::name) {
749
0
            roaring::Roaring full_result;
750
0
            full_result.addRange(0, num_rows);
751
0
            bitmap_result.op_not(&full_result);
752
0
        }
753
754
9
        return Status::OK();
755
9
    }
756
757
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
758
122k
                        uint32_t result, size_t input_rows_count) const override {
759
122k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
760
122k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
761
762
122k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
763
122k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
764
122k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
765
122k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
766
767
122k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
768
122k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
769
770
        /// The case when arguments are the same (tautological comparison). Return constant.
771
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
772
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
773
122k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
774
122k
            col_left_untyped == col_right_untyped) {
775
            /// Always true: =, <=, >=
776
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
777
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
778
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
779
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
780
0
                block.get_by_position(result).column =
781
0
                        DataTypeUInt8()
782
0
                                .create_column_const(input_rows_count,
783
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
784
0
                                ->convert_to_full_column_if_const();
785
0
                return Status::OK();
786
0
            } else {
787
0
                block.get_by_position(result).column =
788
0
                        DataTypeUInt8()
789
0
                                .create_column_const(input_rows_count,
790
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
791
0
                                ->convert_to_full_column_if_const();
792
0
                return Status::OK();
793
0
            }
794
0
        }
795
796
230k
        auto can_compare = [](PrimitiveType t) -> bool {
797
230k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
230k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
796
36.9k
        auto can_compare = [](PrimitiveType t) -> bool {
797
36.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
36.9k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
796
8.08k
        auto can_compare = [](PrimitiveType t) -> bool {
797
8.08k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
8.08k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
796
148k
        auto can_compare = [](PrimitiveType t) -> bool {
797
148k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
148k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
796
4.67k
        auto can_compare = [](PrimitiveType t) -> bool {
797
4.67k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
4.67k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
796
16.2k
        auto can_compare = [](PrimitiveType t) -> bool {
797
16.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
16.2k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
796
15.8k
        auto can_compare = [](PrimitiveType t) -> bool {
797
15.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
15.8k
        };
799
800
122k
        if (can_compare(left_type->get_primitive_type()) &&
801
122k
            can_compare(right_type->get_primitive_type())) {
802
            // check left type equals right type TODO: remove this after FE is aware of scales difference
803
107k
            if (!left_type->equals_ignore_precision(*right_type)) {
804
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
805
0
                                            get_name(), left_type->get_name(),
806
0
                                            right_type->get_name());
807
0
            }
808
107k
        }
809
810
122k
        auto compare_type = left_type->get_primitive_type();
811
122k
        switch (compare_type) {
812
257
        case TYPE_BOOLEAN:
813
257
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
814
4.97k
        case TYPE_DATEV2:
815
4.97k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
816
956
        case TYPE_DATETIMEV2:
817
956
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
818
12
        case TYPE_TIMESTAMPTZ:
819
12
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
820
8.43k
        case TYPE_TINYINT:
821
8.43k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
822
2.54k
        case TYPE_SMALLINT:
823
2.54k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
824
79.3k
        case TYPE_INT:
825
79.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
826
7.30k
        case TYPE_BIGINT:
827
7.30k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
828
767
        case TYPE_LARGEINT:
829
767
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
830
35
        case TYPE_IPV4:
831
35
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
832
35
        case TYPE_IPV6:
833
35
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
834
575
        case TYPE_FLOAT:
835
575
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
836
2.12k
        case TYPE_DOUBLE:
837
2.12k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
838
4
        case TYPE_TIMEV2:
839
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
840
0
        case TYPE_DECIMALV2:
841
375
        case TYPE_DECIMAL32:
842
1.02k
        case TYPE_DECIMAL64:
843
3.09k
        case TYPE_DECIMAL128I:
844
3.19k
        case TYPE_DECIMAL256:
845
3.19k
            return execute_decimal(block, result, col_with_type_and_name_left,
846
3.19k
                                   col_with_type_and_name_right);
847
769
        case TYPE_CHAR:
848
5.70k
        case TYPE_VARCHAR:
849
11.9k
        case TYPE_STRING:
850
11.9k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
851
165
        default:
852
165
            return execute_generic(block, result, col_with_type_and_name_left,
853
165
                                   col_with_type_and_name_right);
854
122k
        }
855
0
        return Status::OK();
856
122k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
758
24.2k
                        uint32_t result, size_t input_rows_count) const override {
759
24.2k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
760
24.2k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
761
762
24.2k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
763
24.2k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
764
24.2k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
765
24.2k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
766
767
24.2k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
768
24.2k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
769
770
        /// The case when arguments are the same (tautological comparison). Return constant.
771
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
772
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
773
24.2k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
774
24.2k
            col_left_untyped == col_right_untyped) {
775
            /// Always true: =, <=, >=
776
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
777
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
778
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
779
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
780
0
                block.get_by_position(result).column =
781
0
                        DataTypeUInt8()
782
0
                                .create_column_const(input_rows_count,
783
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
784
0
                                ->convert_to_full_column_if_const();
785
0
                return Status::OK();
786
            } else {
787
                block.get_by_position(result).column =
788
                        DataTypeUInt8()
789
                                .create_column_const(input_rows_count,
790
                                                     Field::create_field<TYPE_BOOLEAN>(0))
791
                                ->convert_to_full_column_if_const();
792
                return Status::OK();
793
            }
794
0
        }
795
796
0
        auto can_compare = [](PrimitiveType t) -> bool {
797
24.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
24.2k
        };
799
800
24.2k
        if (can_compare(left_type->get_primitive_type()) &&
801
24.2k
            can_compare(right_type->get_primitive_type())) {
802
            // check left type equals right type TODO: remove this after FE is aware of scales difference
803
12.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
804
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
805
0
                                            get_name(), left_type->get_name(),
806
0
                                            right_type->get_name());
807
0
            }
808
12.6k
        }
809
810
24.2k
        auto compare_type = left_type->get_primitive_type();
811
24.2k
        switch (compare_type) {
812
91
        case TYPE_BOOLEAN:
813
91
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
814
736
        case TYPE_DATEV2:
815
736
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
816
404
        case TYPE_DATETIMEV2:
817
404
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
818
3
        case TYPE_TIMESTAMPTZ:
819
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
820
4.89k
        case TYPE_TINYINT:
821
4.89k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
822
381
        case TYPE_SMALLINT:
823
381
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
824
1.99k
        case TYPE_INT:
825
1.99k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
826
2.93k
        case TYPE_BIGINT:
827
2.93k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
828
123
        case TYPE_LARGEINT:
829
123
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
830
12
        case TYPE_IPV4:
831
12
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
832
17
        case TYPE_IPV6:
833
17
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
834
102
        case TYPE_FLOAT:
835
102
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
836
930
        case TYPE_DOUBLE:
837
930
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
838
4
        case TYPE_TIMEV2:
839
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
840
0
        case TYPE_DECIMALV2:
841
146
        case TYPE_DECIMAL32:
842
297
        case TYPE_DECIMAL64:
843
1.10k
        case TYPE_DECIMAL128I:
844
1.14k
        case TYPE_DECIMAL256:
845
1.14k
            return execute_decimal(block, result, col_with_type_and_name_left,
846
1.14k
                                   col_with_type_and_name_right);
847
500
        case TYPE_CHAR:
848
4.81k
        case TYPE_VARCHAR:
849
10.4k
        case TYPE_STRING:
850
10.4k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
851
17
        default:
852
17
            return execute_generic(block, result, col_with_type_and_name_left,
853
17
                                   col_with_type_and_name_right);
854
24.2k
        }
855
0
        return Status::OK();
856
24.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
758
4.18k
                        uint32_t result, size_t input_rows_count) const override {
759
4.18k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
760
4.18k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
761
762
4.18k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
763
4.18k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
764
4.18k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
765
4.18k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
766
767
4.18k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
768
4.18k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
769
770
        /// The case when arguments are the same (tautological comparison). Return constant.
771
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
772
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
773
4.18k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
774
4.18k
            col_left_untyped == col_right_untyped) {
775
            /// Always true: =, <=, >=
776
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
777
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
778
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
779
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
780
                block.get_by_position(result).column =
781
                        DataTypeUInt8()
782
                                .create_column_const(input_rows_count,
783
                                                     Field::create_field<TYPE_BOOLEAN>(1))
784
                                ->convert_to_full_column_if_const();
785
                return Status::OK();
786
0
            } else {
787
0
                block.get_by_position(result).column =
788
0
                        DataTypeUInt8()
789
0
                                .create_column_const(input_rows_count,
790
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
791
0
                                ->convert_to_full_column_if_const();
792
0
                return Status::OK();
793
0
            }
794
0
        }
795
796
0
        auto can_compare = [](PrimitiveType t) -> bool {
797
4.18k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
4.18k
        };
799
800
4.18k
        if (can_compare(left_type->get_primitive_type()) &&
801
4.18k
            can_compare(right_type->get_primitive_type())) {
802
            // check left type equals right type TODO: remove this after FE is aware of scales difference
803
3.90k
            if (!left_type->equals_ignore_precision(*right_type)) {
804
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
805
0
                                            get_name(), left_type->get_name(),
806
0
                                            right_type->get_name());
807
0
            }
808
3.90k
        }
809
810
4.18k
        auto compare_type = left_type->get_primitive_type();
811
4.18k
        switch (compare_type) {
812
0
        case TYPE_BOOLEAN:
813
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
814
70
        case TYPE_DATEV2:
815
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
816
0
        case TYPE_DATETIMEV2:
817
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
818
0
        case TYPE_TIMESTAMPTZ:
819
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
820
84
        case TYPE_TINYINT:
821
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
822
0
        case TYPE_SMALLINT:
823
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
824
2.50k
        case TYPE_INT:
825
2.50k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
826
1.13k
        case TYPE_BIGINT:
827
1.13k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
828
0
        case TYPE_LARGEINT:
829
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
830
0
        case TYPE_IPV4:
831
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
832
0
        case TYPE_IPV6:
833
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
834
48
        case TYPE_FLOAT:
835
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
836
60
        case TYPE_DOUBLE:
837
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
838
0
        case TYPE_TIMEV2:
839
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
840
0
        case TYPE_DECIMALV2:
841
0
        case TYPE_DECIMAL32:
842
64
        case TYPE_DECIMAL64:
843
92
        case TYPE_DECIMAL128I:
844
122
        case TYPE_DECIMAL256:
845
122
            return execute_decimal(block, result, col_with_type_and_name_left,
846
122
                                   col_with_type_and_name_right);
847
1
        case TYPE_CHAR:
848
38
        case TYPE_VARCHAR:
849
154
        case TYPE_STRING:
850
154
            return execute_string(block, result, col_left_untyped, col_right_untyped);
851
8
        default:
852
8
            return execute_generic(block, result, col_with_type_and_name_left,
853
8
                                   col_with_type_and_name_right);
854
4.18k
        }
855
0
        return Status::OK();
856
4.18k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
758
74.7k
                        uint32_t result, size_t input_rows_count) const override {
759
74.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
760
74.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
761
762
74.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
763
74.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
764
74.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
765
74.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
766
767
74.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
768
74.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
769
770
        /// The case when arguments are the same (tautological comparison). Return constant.
771
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
772
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
773
74.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
774
74.7k
            col_left_untyped == col_right_untyped) {
775
            /// Always true: =, <=, >=
776
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
777
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
778
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
779
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
780
                block.get_by_position(result).column =
781
                        DataTypeUInt8()
782
                                .create_column_const(input_rows_count,
783
                                                     Field::create_field<TYPE_BOOLEAN>(1))
784
                                ->convert_to_full_column_if_const();
785
                return Status::OK();
786
0
            } else {
787
0
                block.get_by_position(result).column =
788
0
                        DataTypeUInt8()
789
0
                                .create_column_const(input_rows_count,
790
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
791
0
                                ->convert_to_full_column_if_const();
792
0
                return Status::OK();
793
0
            }
794
0
        }
795
796
0
        auto can_compare = [](PrimitiveType t) -> bool {
797
74.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
74.7k
        };
799
800
74.7k
        if (can_compare(left_type->get_primitive_type()) &&
801
74.7k
            can_compare(right_type->get_primitive_type())) {
802
            // check left type equals right type TODO: remove this after FE is aware of scales difference
803
73.8k
            if (!left_type->equals_ignore_precision(*right_type)) {
804
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
805
0
                                            get_name(), left_type->get_name(),
806
0
                                            right_type->get_name());
807
0
            }
808
73.8k
        }
809
810
74.7k
        auto compare_type = left_type->get_primitive_type();
811
74.7k
        switch (compare_type) {
812
0
        case TYPE_BOOLEAN:
813
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
814
1.14k
        case TYPE_DATEV2:
815
1.14k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
816
2
        case TYPE_DATETIMEV2:
817
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
818
2
        case TYPE_TIMESTAMPTZ:
819
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
820
1.14k
        case TYPE_TINYINT:
821
1.14k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
822
1.77k
        case TYPE_SMALLINT:
823
1.77k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
824
66.9k
        case TYPE_INT:
825
66.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
826
1.81k
        case TYPE_BIGINT:
827
1.81k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
828
252
        case TYPE_LARGEINT:
829
252
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
830
4
        case TYPE_IPV4:
831
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
832
1
        case TYPE_IPV6:
833
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
834
220
        case TYPE_FLOAT:
835
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
836
538
        case TYPE_DOUBLE:
837
538
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
838
0
        case TYPE_TIMEV2:
839
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
840
0
        case TYPE_DECIMALV2:
841
8
        case TYPE_DECIMAL32:
842
74
        case TYPE_DECIMAL64:
843
727
        case TYPE_DECIMAL128I:
844
729
        case TYPE_DECIMAL256:
845
729
            return execute_decimal(block, result, col_with_type_and_name_left,
846
729
                                   col_with_type_and_name_right);
847
14
        case TYPE_CHAR:
848
76
        case TYPE_VARCHAR:
849
174
        case TYPE_STRING:
850
174
            return execute_string(block, result, col_left_untyped, col_right_untyped);
851
9
        default:
852
9
            return execute_generic(block, result, col_with_type_and_name_left,
853
9
                                   col_with_type_and_name_right);
854
74.7k
        }
855
0
        return Status::OK();
856
74.7k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
758
2.59k
                        uint32_t result, size_t input_rows_count) const override {
759
2.59k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
760
2.59k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
761
762
2.59k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
763
2.59k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
764
2.59k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
765
2.59k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
766
767
2.59k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
768
2.59k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
769
770
        /// The case when arguments are the same (tautological comparison). Return constant.
771
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
772
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
773
2.59k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
774
2.59k
            col_left_untyped == col_right_untyped) {
775
            /// Always true: =, <=, >=
776
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
777
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
778
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
779
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
780
0
                block.get_by_position(result).column =
781
0
                        DataTypeUInt8()
782
0
                                .create_column_const(input_rows_count,
783
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
784
0
                                ->convert_to_full_column_if_const();
785
0
                return Status::OK();
786
            } else {
787
                block.get_by_position(result).column =
788
                        DataTypeUInt8()
789
                                .create_column_const(input_rows_count,
790
                                                     Field::create_field<TYPE_BOOLEAN>(0))
791
                                ->convert_to_full_column_if_const();
792
                return Status::OK();
793
            }
794
0
        }
795
796
0
        auto can_compare = [](PrimitiveType t) -> bool {
797
2.59k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
2.59k
        };
799
800
2.59k
        if (can_compare(left_type->get_primitive_type()) &&
801
2.59k
            can_compare(right_type->get_primitive_type())) {
802
            // check left type equals right type TODO: remove this after FE is aware of scales difference
803
2.08k
            if (!left_type->equals_ignore_precision(*right_type)) {
804
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
805
0
                                            get_name(), left_type->get_name(),
806
0
                                            right_type->get_name());
807
0
            }
808
2.08k
        }
809
810
2.59k
        auto compare_type = left_type->get_primitive_type();
811
2.59k
        switch (compare_type) {
812
32
        case TYPE_BOOLEAN:
813
32
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
814
453
        case TYPE_DATEV2:
815
453
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
816
143
        case TYPE_DATETIMEV2:
817
143
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
818
2
        case TYPE_TIMESTAMPTZ:
819
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
820
90
        case TYPE_TINYINT:
821
90
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
822
115
        case TYPE_SMALLINT:
823
115
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
824
759
        case TYPE_INT:
825
759
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
826
207
        case TYPE_BIGINT:
827
207
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
828
36
        case TYPE_LARGEINT:
829
36
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
830
1
        case TYPE_IPV4:
831
1
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
832
1
        case TYPE_IPV6:
833
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
834
24
        case TYPE_FLOAT:
835
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
836
151
        case TYPE_DOUBLE:
837
151
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
838
0
        case TYPE_TIMEV2:
839
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
840
0
        case TYPE_DECIMALV2:
841
4
        case TYPE_DECIMAL32:
842
57
        case TYPE_DECIMAL64:
843
149
        case TYPE_DECIMAL128I:
844
166
        case TYPE_DECIMAL256:
845
166
            return execute_decimal(block, result, col_with_type_and_name_left,
846
166
                                   col_with_type_and_name_right);
847
30
        case TYPE_CHAR:
848
234
        case TYPE_VARCHAR:
849
341
        case TYPE_STRING:
850
341
            return execute_string(block, result, col_left_untyped, col_right_untyped);
851
69
        default:
852
69
            return execute_generic(block, result, col_with_type_and_name_left,
853
69
                                   col_with_type_and_name_right);
854
2.59k
        }
855
0
        return Status::OK();
856
2.59k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
758
8.83k
                        uint32_t result, size_t input_rows_count) const override {
759
8.83k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
760
8.83k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
761
762
8.83k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
763
8.83k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
764
8.83k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
765
8.83k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
766
767
8.83k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
768
8.83k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
769
770
        /// The case when arguments are the same (tautological comparison). Return constant.
771
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
772
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
773
8.83k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
774
8.83k
            col_left_untyped == col_right_untyped) {
775
            /// Always true: =, <=, >=
776
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
777
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
778
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
779
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
780
                block.get_by_position(result).column =
781
                        DataTypeUInt8()
782
                                .create_column_const(input_rows_count,
783
                                                     Field::create_field<TYPE_BOOLEAN>(1))
784
                                ->convert_to_full_column_if_const();
785
                return Status::OK();
786
0
            } else {
787
0
                block.get_by_position(result).column =
788
0
                        DataTypeUInt8()
789
0
                                .create_column_const(input_rows_count,
790
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
791
0
                                ->convert_to_full_column_if_const();
792
0
                return Status::OK();
793
0
            }
794
0
        }
795
796
0
        auto can_compare = [](PrimitiveType t) -> bool {
797
8.83k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
8.83k
        };
799
800
8.83k
        if (can_compare(left_type->get_primitive_type()) &&
801
8.83k
            can_compare(right_type->get_primitive_type())) {
802
            // check left type equals right type TODO: remove this after FE is aware of scales difference
803
7.45k
            if (!left_type->equals_ignore_precision(*right_type)) {
804
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
805
0
                                            get_name(), left_type->get_name(),
806
0
                                            right_type->get_name());
807
0
            }
808
7.45k
        }
809
810
8.83k
        auto compare_type = left_type->get_primitive_type();
811
8.83k
        switch (compare_type) {
812
92
        case TYPE_BOOLEAN:
813
92
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
814
2.00k
        case TYPE_DATEV2:
815
2.00k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
816
334
        case TYPE_DATETIMEV2:
817
334
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
818
3
        case TYPE_TIMESTAMPTZ:
819
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
820
2.11k
        case TYPE_TINYINT:
821
2.11k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
822
140
        case TYPE_SMALLINT:
823
140
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
824
1.10k
        case TYPE_INT:
825
1.10k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
826
821
        case TYPE_BIGINT:
827
821
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
828
307
        case TYPE_LARGEINT:
829
307
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
830
18
        case TYPE_IPV4:
831
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
832
16
        case TYPE_IPV6:
833
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
834
161
        case TYPE_FLOAT:
835
161
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
836
337
        case TYPE_DOUBLE:
837
337
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
838
0
        case TYPE_TIMEV2:
839
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
840
0
        case TYPE_DECIMALV2:
841
210
        case TYPE_DECIMAL32:
842
446
        case TYPE_DECIMAL64:
843
828
        case TYPE_DECIMAL128I:
844
829
        case TYPE_DECIMAL256:
845
829
            return execute_decimal(block, result, col_with_type_and_name_left,
846
829
                                   col_with_type_and_name_right);
847
177
        case TYPE_CHAR:
848
369
        case TYPE_VARCHAR:
849
540
        case TYPE_STRING:
850
540
            return execute_string(block, result, col_left_untyped, col_right_untyped);
851
11
        default:
852
11
            return execute_generic(block, result, col_with_type_and_name_left,
853
11
                                   col_with_type_and_name_right);
854
8.83k
        }
855
0
        return Status::OK();
856
8.83k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
758
8.14k
                        uint32_t result, size_t input_rows_count) const override {
759
8.14k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
760
8.14k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
761
762
8.14k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
763
8.14k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
764
8.14k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
765
8.14k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
766
767
8.14k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
768
8.14k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
769
770
        /// The case when arguments are the same (tautological comparison). Return constant.
771
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
772
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
773
8.15k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
774
8.15k
            col_left_untyped == col_right_untyped) {
775
            /// Always true: =, <=, >=
776
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
777
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
778
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
779
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
780
0
                block.get_by_position(result).column =
781
0
                        DataTypeUInt8()
782
0
                                .create_column_const(input_rows_count,
783
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
784
0
                                ->convert_to_full_column_if_const();
785
0
                return Status::OK();
786
            } else {
787
                block.get_by_position(result).column =
788
                        DataTypeUInt8()
789
                                .create_column_const(input_rows_count,
790
                                                     Field::create_field<TYPE_BOOLEAN>(0))
791
                                ->convert_to_full_column_if_const();
792
                return Status::OK();
793
            }
794
0
        }
795
796
0
        auto can_compare = [](PrimitiveType t) -> bool {
797
8.14k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
798
8.14k
        };
799
800
8.14k
        if (can_compare(left_type->get_primitive_type()) &&
801
8.14k
            can_compare(right_type->get_primitive_type())) {
802
            // check left type equals right type TODO: remove this after FE is aware of scales difference
803
7.65k
            if (!left_type->equals_ignore_precision(*right_type)) {
804
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
805
0
                                            get_name(), left_type->get_name(),
806
0
                                            right_type->get_name());
807
0
            }
808
7.65k
        }
809
810
8.14k
        auto compare_type = left_type->get_primitive_type();
811
8.14k
        switch (compare_type) {
812
42
        case TYPE_BOOLEAN:
813
42
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
814
570
        case TYPE_DATEV2:
815
570
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
816
73
        case TYPE_DATETIMEV2:
817
73
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
818
2
        case TYPE_TIMESTAMPTZ:
819
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
820
94
        case TYPE_TINYINT:
821
94
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
822
133
        case TYPE_SMALLINT:
823
133
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
824
6.11k
        case TYPE_INT:
825
6.11k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
826
395
        case TYPE_BIGINT:
827
395
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
828
49
        case TYPE_LARGEINT:
829
49
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
830
0
        case TYPE_IPV4:
831
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
832
0
        case TYPE_IPV6:
833
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
834
20
        case TYPE_FLOAT:
835
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
836
112
        case TYPE_DOUBLE:
837
112
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
838
0
        case TYPE_TIMEV2:
839
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
840
0
        case TYPE_DECIMALV2:
841
7
        case TYPE_DECIMAL32:
842
89
        case TYPE_DECIMAL64:
843
193
        case TYPE_DECIMAL128I:
844
205
        case TYPE_DECIMAL256:
845
205
            return execute_decimal(block, result, col_with_type_and_name_left,
846
205
                                   col_with_type_and_name_right);
847
47
        case TYPE_CHAR:
848
167
        case TYPE_VARCHAR:
849
290
        case TYPE_STRING:
850
290
            return execute_string(block, result, col_left_untyped, col_right_untyped);
851
51
        default:
852
51
            return execute_generic(block, result, col_with_type_and_name_left,
853
51
                                   col_with_type_and_name_right);
854
8.14k
        }
855
0
        return Status::OK();
856
8.14k
    }
857
};
858
859
} // namespace doris