Coverage Report

Created: 2026-06-30 17:39

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
52
namespace doris {
53
/** Comparison functions: ==, !=, <, >, <=, >=.
54
  * The comparison functions always return 0 or 1 (UInt8).
55
  *
56
  * You can compare the following types:
57
  * - numbers and decimals;
58
  * - strings and fixed strings;
59
  * - dates;
60
  * - datetimes;
61
  *   within each group, but not from different groups;
62
  * - tuples (lexicographic comparison).
63
  *
64
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
65
  */
66
67
template <typename A, typename B, typename Op>
68
struct NumComparisonImpl {
69
    /// 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.
70
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
71
7.96k
                                        PaddedPODArray<UInt8>& c) {
72
7.96k
        size_t size = a.size();
73
7.96k
        const A* __restrict a_pos = a.data();
74
7.96k
        const B* __restrict b_pos = b.data();
75
7.96k
        UInt8* __restrict c_pos = c.data();
76
7.96k
        const A* __restrict a_end = a_pos + size;
77
78
4.77M
        while (a_pos < a_end) {
79
4.76M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4.76M
            ++a_pos;
81
4.76M
            ++b_pos;
82
4.76M
            ++c_pos;
83
4.76M
        }
84
7.96k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
71
76
                                        PaddedPODArray<UInt8>& c) {
72
76
        size_t size = a.size();
73
76
        const A* __restrict a_pos = a.data();
74
76
        const B* __restrict b_pos = b.data();
75
76
        UInt8* __restrict c_pos = c.data();
76
76
        const A* __restrict a_end = a_pos + size;
77
78
152
        while (a_pos < a_end) {
79
76
            *c_pos = Op::apply(*a_pos, *b_pos);
80
76
            ++a_pos;
81
76
            ++b_pos;
82
76
            ++c_pos;
83
76
        }
84
76
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
322
                                        PaddedPODArray<UInt8>& c) {
72
322
        size_t size = a.size();
73
322
        const A* __restrict a_pos = a.data();
74
322
        const B* __restrict b_pos = b.data();
75
322
        UInt8* __restrict c_pos = c.data();
76
322
        const A* __restrict a_end = a_pos + size;
77
78
1.49k
        while (a_pos < a_end) {
79
1.17k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.17k
            ++a_pos;
81
1.17k
            ++b_pos;
82
1.17k
            ++c_pos;
83
1.17k
        }
84
322
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
240
                                        PaddedPODArray<UInt8>& c) {
72
240
        size_t size = a.size();
73
240
        const A* __restrict a_pos = a.data();
74
240
        const B* __restrict b_pos = b.data();
75
240
        UInt8* __restrict c_pos = c.data();
76
240
        const A* __restrict a_end = a_pos + size;
77
78
498
        while (a_pos < a_end) {
79
258
            *c_pos = Op::apply(*a_pos, *b_pos);
80
258
            ++a_pos;
81
258
            ++b_pos;
82
258
            ++c_pos;
83
258
        }
84
240
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
2
                                        PaddedPODArray<UInt8>& c) {
72
2
        size_t size = a.size();
73
2
        const A* __restrict a_pos = a.data();
74
2
        const B* __restrict b_pos = b.data();
75
2
        UInt8* __restrict c_pos = c.data();
76
2
        const A* __restrict a_end = a_pos + size;
77
78
12
        while (a_pos < a_end) {
79
10
            *c_pos = Op::apply(*a_pos, *b_pos);
80
10
            ++a_pos;
81
10
            ++b_pos;
82
10
            ++c_pos;
83
10
        }
84
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
141
                                        PaddedPODArray<UInt8>& c) {
72
141
        size_t size = a.size();
73
141
        const A* __restrict a_pos = a.data();
74
141
        const B* __restrict b_pos = b.data();
75
141
        UInt8* __restrict c_pos = c.data();
76
141
        const A* __restrict a_end = a_pos + size;
77
78
424
        while (a_pos < a_end) {
79
283
            *c_pos = Op::apply(*a_pos, *b_pos);
80
283
            ++a_pos;
81
283
            ++b_pos;
82
283
            ++c_pos;
83
283
        }
84
141
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
70
                                        PaddedPODArray<UInt8>& c) {
72
70
        size_t size = a.size();
73
70
        const A* __restrict a_pos = a.data();
74
70
        const B* __restrict b_pos = b.data();
75
70
        UInt8* __restrict c_pos = c.data();
76
70
        const A* __restrict a_end = a_pos + size;
77
78
140
        while (a_pos < a_end) {
79
70
            *c_pos = Op::apply(*a_pos, *b_pos);
80
70
            ++a_pos;
81
70
            ++b_pos;
82
70
            ++c_pos;
83
70
        }
84
70
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
254
                                        PaddedPODArray<UInt8>& c) {
72
254
        size_t size = a.size();
73
254
        const A* __restrict a_pos = a.data();
74
254
        const B* __restrict b_pos = b.data();
75
254
        UInt8* __restrict c_pos = c.data();
76
254
        const A* __restrict a_end = a_pos + size;
77
78
1.69k
        while (a_pos < a_end) {
79
1.44k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.44k
            ++a_pos;
81
1.44k
            ++b_pos;
82
1.44k
            ++c_pos;
83
1.44k
        }
84
254
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
257
                                        PaddedPODArray<UInt8>& c) {
72
257
        size_t size = a.size();
73
257
        const A* __restrict a_pos = a.data();
74
257
        const B* __restrict b_pos = b.data();
75
257
        UInt8* __restrict c_pos = c.data();
76
257
        const A* __restrict a_end = a_pos + size;
77
78
1.78k
        while (a_pos < a_end) {
79
1.52k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.52k
            ++a_pos;
81
1.52k
            ++b_pos;
82
1.52k
            ++c_pos;
83
1.52k
        }
84
257
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
67
                                        PaddedPODArray<UInt8>& c) {
72
67
        size_t size = a.size();
73
67
        const A* __restrict a_pos = a.data();
74
67
        const B* __restrict b_pos = b.data();
75
67
        UInt8* __restrict c_pos = c.data();
76
67
        const A* __restrict a_end = a_pos + size;
77
78
134
        while (a_pos < a_end) {
79
67
            *c_pos = Op::apply(*a_pos, *b_pos);
80
67
            ++a_pos;
81
67
            ++b_pos;
82
67
            ++c_pos;
83
67
        }
84
67
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
5
                                        PaddedPODArray<UInt8>& c) {
72
5
        size_t size = a.size();
73
5
        const A* __restrict a_pos = a.data();
74
5
        const B* __restrict b_pos = b.data();
75
5
        UInt8* __restrict c_pos = c.data();
76
5
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
5
            *c_pos = Op::apply(*a_pos, *b_pos);
80
5
            ++a_pos;
81
5
            ++b_pos;
82
5
            ++c_pos;
83
5
        }
84
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
13
                                        PaddedPODArray<UInt8>& c) {
72
13
        size_t size = a.size();
73
13
        const A* __restrict a_pos = a.data();
74
13
        const B* __restrict b_pos = b.data();
75
13
        UInt8* __restrict c_pos = c.data();
76
13
        const A* __restrict a_end = a_pos + size;
77
78
26
        while (a_pos < a_end) {
79
13
            *c_pos = Op::apply(*a_pos, *b_pos);
80
13
            ++a_pos;
81
13
            ++b_pos;
82
13
            ++c_pos;
83
13
        }
84
13
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
95
                                        PaddedPODArray<UInt8>& c) {
72
95
        size_t size = a.size();
73
95
        const A* __restrict a_pos = a.data();
74
95
        const B* __restrict b_pos = b.data();
75
95
        UInt8* __restrict c_pos = c.data();
76
95
        const A* __restrict a_end = a_pos + size;
77
78
209
        while (a_pos < a_end) {
79
114
            *c_pos = Op::apply(*a_pos, *b_pos);
80
114
            ++a_pos;
81
114
            ++b_pos;
82
114
            ++c_pos;
83
114
        }
84
95
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
93
                                        PaddedPODArray<UInt8>& c) {
72
93
        size_t size = a.size();
73
93
        const A* __restrict a_pos = a.data();
74
93
        const B* __restrict b_pos = b.data();
75
93
        UInt8* __restrict c_pos = c.data();
76
93
        const A* __restrict a_end = a_pos + size;
77
78
207
        while (a_pos < a_end) {
79
114
            *c_pos = Op::apply(*a_pos, *b_pos);
80
114
            ++a_pos;
81
114
            ++b_pos;
82
114
            ++c_pos;
83
114
        }
84
93
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
4
                                        PaddedPODArray<UInt8>& c) {
72
4
        size_t size = a.size();
73
4
        const A* __restrict a_pos = a.data();
74
4
        const B* __restrict b_pos = b.data();
75
4
        UInt8* __restrict c_pos = c.data();
76
4
        const A* __restrict a_end = a_pos + size;
77
78
8
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
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
71
39
                                        PaddedPODArray<UInt8>& c) {
72
39
        size_t size = a.size();
73
39
        const A* __restrict a_pos = a.data();
74
39
        const B* __restrict b_pos = b.data();
75
39
        UInt8* __restrict c_pos = c.data();
76
39
        const A* __restrict a_end = a_pos + size;
77
78
108
        while (a_pos < a_end) {
79
69
            *c_pos = Op::apply(*a_pos, *b_pos);
80
69
            ++a_pos;
81
69
            ++b_pos;
82
69
            ++c_pos;
83
69
        }
84
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
71
56
                                        PaddedPODArray<UInt8>& c) {
72
56
        size_t size = a.size();
73
56
        const A* __restrict a_pos = a.data();
74
56
        const B* __restrict b_pos = b.data();
75
56
        UInt8* __restrict c_pos = c.data();
76
56
        const A* __restrict a_end = a_pos + size;
77
78
252
        while (a_pos < a_end) {
79
196
            *c_pos = Op::apply(*a_pos, *b_pos);
80
196
            ++a_pos;
81
196
            ++b_pos;
82
196
            ++c_pos;
83
196
        }
84
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
71
786
                                        PaddedPODArray<UInt8>& c) {
72
786
        size_t size = a.size();
73
786
        const A* __restrict a_pos = a.data();
74
786
        const B* __restrict b_pos = b.data();
75
786
        UInt8* __restrict c_pos = c.data();
76
786
        const A* __restrict a_end = a_pos + size;
77
78
296k
        while (a_pos < a_end) {
79
295k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
295k
            ++a_pos;
81
295k
            ++b_pos;
82
295k
            ++c_pos;
83
295k
        }
84
786
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
346
                                        PaddedPODArray<UInt8>& c) {
72
346
        size_t size = a.size();
73
346
        const A* __restrict a_pos = a.data();
74
346
        const B* __restrict b_pos = b.data();
75
346
        UInt8* __restrict c_pos = c.data();
76
346
        const A* __restrict a_end = a_pos + size;
77
78
6.28k
        while (a_pos < a_end) {
79
5.94k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
5.94k
            ++a_pos;
81
5.94k
            ++b_pos;
82
5.94k
            ++c_pos;
83
5.94k
        }
84
346
    }
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
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
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
71
953
                                        PaddedPODArray<UInt8>& c) {
72
953
        size_t size = a.size();
73
953
        const A* __restrict a_pos = a.data();
74
953
        const B* __restrict b_pos = b.data();
75
953
        UInt8* __restrict c_pos = c.data();
76
953
        const A* __restrict a_end = a_pos + size;
77
78
2.64M
        while (a_pos < a_end) {
79
2.64M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
2.64M
            ++a_pos;
81
2.64M
            ++b_pos;
82
2.64M
            ++c_pos;
83
2.64M
        }
84
953
    }
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
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
38
                                        PaddedPODArray<UInt8>& c) {
72
38
        size_t size = a.size();
73
38
        const A* __restrict a_pos = a.data();
74
38
        const B* __restrict b_pos = b.data();
75
38
        UInt8* __restrict c_pos = c.data();
76
38
        const A* __restrict a_end = a_pos + size;
77
78
322
        while (a_pos < a_end) {
79
284
            *c_pos = Op::apply(*a_pos, *b_pos);
80
284
            ++a_pos;
81
284
            ++b_pos;
82
284
            ++c_pos;
83
284
        }
84
38
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
110
                                        PaddedPODArray<UInt8>& c) {
72
110
        size_t size = a.size();
73
110
        const A* __restrict a_pos = a.data();
74
110
        const B* __restrict b_pos = b.data();
75
110
        UInt8* __restrict c_pos = c.data();
76
110
        const A* __restrict a_end = a_pos + size;
77
78
371
        while (a_pos < a_end) {
79
261
            *c_pos = Op::apply(*a_pos, *b_pos);
80
261
            ++a_pos;
81
261
            ++b_pos;
82
261
            ++c_pos;
83
261
        }
84
110
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
47
                                        PaddedPODArray<UInt8>& c) {
72
47
        size_t size = a.size();
73
47
        const A* __restrict a_pos = a.data();
74
47
        const B* __restrict b_pos = b.data();
75
47
        UInt8* __restrict c_pos = c.data();
76
47
        const A* __restrict a_end = a_pos + size;
77
78
267
        while (a_pos < a_end) {
79
220
            *c_pos = Op::apply(*a_pos, *b_pos);
80
220
            ++a_pos;
81
220
            ++b_pos;
82
220
            ++c_pos;
83
220
        }
84
47
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
64
                                        PaddedPODArray<UInt8>& c) {
72
64
        size_t size = a.size();
73
64
        const A* __restrict a_pos = a.data();
74
64
        const B* __restrict b_pos = b.data();
75
64
        UInt8* __restrict c_pos = c.data();
76
64
        const A* __restrict a_end = a_pos + size;
77
78
567
        while (a_pos < a_end) {
79
503
            *c_pos = Op::apply(*a_pos, *b_pos);
80
503
            ++a_pos;
81
503
            ++b_pos;
82
503
            ++c_pos;
83
503
        }
84
64
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
2
                                        PaddedPODArray<UInt8>& c) {
72
2
        size_t size = a.size();
73
2
        const A* __restrict a_pos = a.data();
74
2
        const B* __restrict b_pos = b.data();
75
2
        UInt8* __restrict c_pos = c.data();
76
2
        const A* __restrict a_end = a_pos + size;
77
78
6
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
2
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
27
                                        PaddedPODArray<UInt8>& c) {
72
27
        size_t size = a.size();
73
27
        const A* __restrict a_pos = a.data();
74
27
        const B* __restrict b_pos = b.data();
75
27
        UInt8* __restrict c_pos = c.data();
76
27
        const A* __restrict a_end = a_pos + size;
77
78
97
        while (a_pos < a_end) {
79
70
            *c_pos = Op::apply(*a_pos, *b_pos);
80
70
            ++a_pos;
81
70
            ++b_pos;
82
70
            ++c_pos;
83
70
        }
84
27
    }
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
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
6
                                        PaddedPODArray<UInt8>& c) {
72
6
        size_t size = a.size();
73
6
        const A* __restrict a_pos = a.data();
74
6
        const B* __restrict b_pos = b.data();
75
6
        UInt8* __restrict c_pos = c.data();
76
6
        const A* __restrict a_end = a_pos + size;
77
78
70
        while (a_pos < a_end) {
79
64
            *c_pos = Op::apply(*a_pos, *b_pos);
80
64
            ++a_pos;
81
64
            ++b_pos;
82
64
            ++c_pos;
83
64
        }
84
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
1
    }
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
71
3
                                        PaddedPODArray<UInt8>& c) {
72
3
        size_t size = a.size();
73
3
        const A* __restrict a_pos = a.data();
74
3
        const B* __restrict b_pos = b.data();
75
3
        UInt8* __restrict c_pos = c.data();
76
3
        const A* __restrict a_end = a_pos + size;
77
78
7
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
8
                                        PaddedPODArray<UInt8>& c) {
72
8
        size_t size = a.size();
73
8
        const A* __restrict a_pos = a.data();
74
8
        const B* __restrict b_pos = b.data();
75
8
        UInt8* __restrict c_pos = c.data();
76
8
        const A* __restrict a_end = a_pos + size;
77
78
62
        while (a_pos < a_end) {
79
54
            *c_pos = Op::apply(*a_pos, *b_pos);
80
54
            ++a_pos;
81
54
            ++b_pos;
82
54
            ++c_pos;
83
54
        }
84
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
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
24
                                        PaddedPODArray<UInt8>& c) {
72
24
        size_t size = a.size();
73
24
        const A* __restrict a_pos = a.data();
74
24
        const B* __restrict b_pos = b.data();
75
24
        UInt8* __restrict c_pos = c.data();
76
24
        const A* __restrict a_end = a_pos + size;
77
78
67
        while (a_pos < a_end) {
79
43
            *c_pos = Op::apply(*a_pos, *b_pos);
80
43
            ++a_pos;
81
43
            ++b_pos;
82
43
            ++c_pos;
83
43
        }
84
24
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
71
101
                                        PaddedPODArray<UInt8>& c) {
72
101
        size_t size = a.size();
73
101
        const A* __restrict a_pos = a.data();
74
101
        const B* __restrict b_pos = b.data();
75
101
        UInt8* __restrict c_pos = c.data();
76
101
        const A* __restrict a_end = a_pos + size;
77
78
376
        while (a_pos < a_end) {
79
275
            *c_pos = Op::apply(*a_pos, *b_pos);
80
275
            ++a_pos;
81
275
            ++b_pos;
82
275
            ++c_pos;
83
275
        }
84
101
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
1.71k
                                        PaddedPODArray<UInt8>& c) {
72
1.71k
        size_t size = a.size();
73
1.71k
        const A* __restrict a_pos = a.data();
74
1.71k
        const B* __restrict b_pos = b.data();
75
1.71k
        UInt8* __restrict c_pos = c.data();
76
1.71k
        const A* __restrict a_end = a_pos + size;
77
78
1.80M
        while (a_pos < a_end) {
79
1.80M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.80M
            ++a_pos;
81
1.80M
            ++b_pos;
82
1.80M
            ++c_pos;
83
1.80M
        }
84
1.71k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
278
                                        PaddedPODArray<UInt8>& c) {
72
278
        size_t size = a.size();
73
278
        const A* __restrict a_pos = a.data();
74
278
        const B* __restrict b_pos = b.data();
75
278
        UInt8* __restrict c_pos = c.data();
76
278
        const A* __restrict a_end = a_pos + size;
77
78
904
        while (a_pos < a_end) {
79
626
            *c_pos = Op::apply(*a_pos, *b_pos);
80
626
            ++a_pos;
81
626
            ++b_pos;
82
626
            ++c_pos;
83
626
        }
84
278
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
146
                                        PaddedPODArray<UInt8>& c) {
72
146
        size_t size = a.size();
73
146
        const A* __restrict a_pos = a.data();
74
146
        const B* __restrict b_pos = b.data();
75
146
        UInt8* __restrict c_pos = c.data();
76
146
        const A* __restrict a_end = a_pos + size;
77
78
466
        while (a_pos < a_end) {
79
320
            *c_pos = Op::apply(*a_pos, *b_pos);
80
320
            ++a_pos;
81
320
            ++b_pos;
82
320
            ++c_pos;
83
320
        }
84
146
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
133
                                        PaddedPODArray<UInt8>& c) {
72
133
        size_t size = a.size();
73
133
        const A* __restrict a_pos = a.data();
74
133
        const B* __restrict b_pos = b.data();
75
133
        UInt8* __restrict c_pos = c.data();
76
133
        const A* __restrict a_end = a_pos + size;
77
78
442
        while (a_pos < a_end) {
79
309
            *c_pos = Op::apply(*a_pos, *b_pos);
80
309
            ++a_pos;
81
309
            ++b_pos;
82
309
            ++c_pos;
83
309
        }
84
133
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
168
                                        PaddedPODArray<UInt8>& c) {
72
168
        size_t size = a.size();
73
168
        const A* __restrict a_pos = a.data();
74
168
        const B* __restrict b_pos = b.data();
75
168
        UInt8* __restrict c_pos = c.data();
76
168
        const A* __restrict a_end = a_pos + size;
77
78
1.01k
        while (a_pos < a_end) {
79
845
            *c_pos = Op::apply(*a_pos, *b_pos);
80
845
            ++a_pos;
81
845
            ++b_pos;
82
845
            ++c_pos;
83
845
        }
84
168
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
199
                                        PaddedPODArray<UInt8>& c) {
72
199
        size_t size = a.size();
73
199
        const A* __restrict a_pos = a.data();
74
199
        const B* __restrict b_pos = b.data();
75
199
        UInt8* __restrict c_pos = c.data();
76
199
        const A* __restrict a_end = a_pos + size;
77
78
5.40k
        while (a_pos < a_end) {
79
5.20k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
5.20k
            ++a_pos;
81
5.20k
            ++b_pos;
82
5.20k
            ++c_pos;
83
5.20k
        }
84
199
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
144
                                        PaddedPODArray<UInt8>& c) {
72
144
        size_t size = a.size();
73
144
        const A* __restrict a_pos = a.data();
74
144
        const B* __restrict b_pos = b.data();
75
144
        UInt8* __restrict c_pos = c.data();
76
144
        const A* __restrict a_end = a_pos + size;
77
78
462
        while (a_pos < a_end) {
79
318
            *c_pos = Op::apply(*a_pos, *b_pos);
80
318
            ++a_pos;
81
318
            ++b_pos;
82
318
            ++c_pos;
83
318
        }
84
144
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
16
                                        PaddedPODArray<UInt8>& c) {
72
16
        size_t size = a.size();
73
16
        const A* __restrict a_pos = a.data();
74
16
        const B* __restrict b_pos = b.data();
75
16
        UInt8* __restrict c_pos = c.data();
76
16
        const A* __restrict a_end = a_pos + size;
77
78
32
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
16
                                        PaddedPODArray<UInt8>& c) {
72
16
        size_t size = a.size();
73
16
        const A* __restrict a_pos = a.data();
74
16
        const B* __restrict b_pos = b.data();
75
16
        UInt8* __restrict c_pos = c.data();
76
16
        const A* __restrict a_end = a_pos + size;
77
78
32
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
150
                                        PaddedPODArray<UInt8>& c) {
72
150
        size_t size = a.size();
73
150
        const A* __restrict a_pos = a.data();
74
150
        const B* __restrict b_pos = b.data();
75
150
        UInt8* __restrict c_pos = c.data();
76
150
        const A* __restrict a_end = a_pos + size;
77
78
493
        while (a_pos < a_end) {
79
343
            *c_pos = Op::apply(*a_pos, *b_pos);
80
343
            ++a_pos;
81
343
            ++b_pos;
82
343
            ++c_pos;
83
343
        }
84
150
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
150
                                        PaddedPODArray<UInt8>& c) {
72
150
        size_t size = a.size();
73
150
        const A* __restrict a_pos = a.data();
74
150
        const B* __restrict b_pos = b.data();
75
150
        UInt8* __restrict c_pos = c.data();
76
150
        const A* __restrict a_end = a_pos + size;
77
78
505
        while (a_pos < a_end) {
79
355
            *c_pos = Op::apply(*a_pos, *b_pos);
80
355
            ++a_pos;
81
355
            ++b_pos;
82
355
            ++c_pos;
83
355
        }
84
150
    }
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
71
416
                                        PaddedPODArray<UInt8>& c) {
72
416
        size_t size = a.size();
73
416
        const A* __restrict a_pos = a.data();
74
416
        const B* __restrict b_pos = b.data();
75
416
        UInt8* __restrict c_pos = c.data();
76
416
        const A* __restrict a_end = a_pos + size;
77
78
6.50k
        while (a_pos < a_end) {
79
6.09k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
6.09k
            ++a_pos;
81
6.09k
            ++b_pos;
82
6.09k
            ++c_pos;
83
6.09k
        }
84
416
    }
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
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
10
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
1
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
5
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
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
71
23
                                        PaddedPODArray<UInt8>& c) {
72
23
        size_t size = a.size();
73
23
        const A* __restrict a_pos = a.data();
74
23
        const B* __restrict b_pos = b.data();
75
23
        UInt8* __restrict c_pos = c.data();
76
23
        const A* __restrict a_end = a_pos + size;
77
78
105
        while (a_pos < a_end) {
79
82
            *c_pos = Op::apply(*a_pos, *b_pos);
80
82
            ++a_pos;
81
82
            ++b_pos;
82
82
            ++c_pos;
83
82
        }
84
23
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
30
                                        PaddedPODArray<UInt8>& c) {
72
30
        size_t size = a.size();
73
30
        const A* __restrict a_pos = a.data();
74
30
        const B* __restrict b_pos = b.data();
75
30
        UInt8* __restrict c_pos = c.data();
76
30
        const A* __restrict a_end = a_pos + size;
77
78
64
        while (a_pos < a_end) {
79
34
            *c_pos = Op::apply(*a_pos, *b_pos);
80
34
            ++a_pos;
81
34
            ++b_pos;
82
34
            ++c_pos;
83
34
        }
84
30
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
85
86
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
87
174k
                                          PaddedPODArray<UInt8>& c) {
88
174k
        size_t size = a.size();
89
174k
        const A* __restrict a_pos = a.data();
90
174k
        UInt8* __restrict c_pos = c.data();
91
174k
        const A* __restrict a_end = a_pos + size;
92
93
143M
        while (a_pos < a_end) {
94
143M
            *c_pos = Op::apply(*a_pos, b);
95
143M
            ++a_pos;
96
143M
            ++c_pos;
97
143M
        }
98
174k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
87
1.55k
                                          PaddedPODArray<UInt8>& c) {
88
1.55k
        size_t size = a.size();
89
1.55k
        const A* __restrict a_pos = a.data();
90
1.55k
        UInt8* __restrict c_pos = c.data();
91
1.55k
        const A* __restrict a_end = a_pos + size;
92
93
5.05k
        while (a_pos < a_end) {
94
3.50k
            *c_pos = Op::apply(*a_pos, b);
95
3.50k
            ++a_pos;
96
3.50k
            ++c_pos;
97
3.50k
        }
98
1.55k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
1.21k
                                          PaddedPODArray<UInt8>& c) {
88
1.21k
        size_t size = a.size();
89
1.21k
        const A* __restrict a_pos = a.data();
90
1.21k
        UInt8* __restrict c_pos = c.data();
91
1.21k
        const A* __restrict a_end = a_pos + size;
92
93
206k
        while (a_pos < a_end) {
94
205k
            *c_pos = Op::apply(*a_pos, b);
95
205k
            ++a_pos;
96
205k
            ++c_pos;
97
205k
        }
98
1.21k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
365
                                          PaddedPODArray<UInt8>& c) {
88
365
        size_t size = a.size();
89
365
        const A* __restrict a_pos = a.data();
90
365
        UInt8* __restrict c_pos = c.data();
91
365
        const A* __restrict a_end = a_pos + size;
92
93
101k
        while (a_pos < a_end) {
94
100k
            *c_pos = Op::apply(*a_pos, b);
95
100k
            ++a_pos;
96
100k
            ++c_pos;
97
100k
        }
98
365
    }
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
87
6.12k
                                          PaddedPODArray<UInt8>& c) {
88
6.12k
        size_t size = a.size();
89
6.12k
        const A* __restrict a_pos = a.data();
90
6.12k
        UInt8* __restrict c_pos = c.data();
91
6.12k
        const A* __restrict a_end = a_pos + size;
92
93
9.14M
        while (a_pos < a_end) {
94
9.13M
            *c_pos = Op::apply(*a_pos, b);
95
9.13M
            ++a_pos;
96
9.13M
            ++c_pos;
97
9.13M
        }
98
6.12k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.32k
                                          PaddedPODArray<UInt8>& c) {
88
1.32k
        size_t size = a.size();
89
1.32k
        const A* __restrict a_pos = a.data();
90
1.32k
        UInt8* __restrict c_pos = c.data();
91
1.32k
        const A* __restrict a_end = a_pos + size;
92
93
127k
        while (a_pos < a_end) {
94
126k
            *c_pos = Op::apply(*a_pos, b);
95
126k
            ++a_pos;
96
126k
            ++c_pos;
97
126k
        }
98
1.32k
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
30.7k
                                          PaddedPODArray<UInt8>& c) {
88
30.7k
        size_t size = a.size();
89
30.7k
        const A* __restrict a_pos = a.data();
90
30.7k
        UInt8* __restrict c_pos = c.data();
91
30.7k
        const A* __restrict a_end = a_pos + size;
92
93
2.03M
        while (a_pos < a_end) {
94
2.00M
            *c_pos = Op::apply(*a_pos, b);
95
2.00M
            ++a_pos;
96
2.00M
            ++c_pos;
97
2.00M
        }
98
30.7k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
23.2k
                                          PaddedPODArray<UInt8>& c) {
88
23.2k
        size_t size = a.size();
89
23.2k
        const A* __restrict a_pos = a.data();
90
23.2k
        UInt8* __restrict c_pos = c.data();
91
23.2k
        const A* __restrict a_end = a_pos + size;
92
93
3.11M
        while (a_pos < a_end) {
94
3.08M
            *c_pos = Op::apply(*a_pos, b);
95
3.08M
            ++a_pos;
96
3.08M
            ++c_pos;
97
3.08M
        }
98
23.2k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
69
                                          PaddedPODArray<UInt8>& c) {
88
69
        size_t size = a.size();
89
69
        const A* __restrict a_pos = a.data();
90
69
        UInt8* __restrict c_pos = c.data();
91
69
        const A* __restrict a_end = a_pos + size;
92
93
101k
        while (a_pos < a_end) {
94
101k
            *c_pos = Op::apply(*a_pos, b);
95
101k
            ++a_pos;
96
101k
            ++c_pos;
97
101k
        }
98
69
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
13
                                          PaddedPODArray<UInt8>& c) {
88
13
        size_t size = a.size();
89
13
        const A* __restrict a_pos = a.data();
90
13
        UInt8* __restrict c_pos = c.data();
91
13
        const A* __restrict a_end = a_pos + size;
92
93
127
        while (a_pos < a_end) {
94
114
            *c_pos = Op::apply(*a_pos, b);
95
114
            ++a_pos;
96
114
            ++c_pos;
97
114
        }
98
13
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
6
                                          PaddedPODArray<UInt8>& c) {
88
6
        size_t size = a.size();
89
6
        const A* __restrict a_pos = a.data();
90
6
        UInt8* __restrict c_pos = c.data();
91
6
        const A* __restrict a_end = a_pos + size;
92
93
12
        while (a_pos < a_end) {
94
6
            *c_pos = Op::apply(*a_pos, b);
95
6
            ++a_pos;
96
6
            ++c_pos;
97
6
        }
98
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
4
                                          PaddedPODArray<UInt8>& c) {
88
4
        size_t size = a.size();
89
4
        const A* __restrict a_pos = a.data();
90
4
        UInt8* __restrict c_pos = c.data();
91
4
        const A* __restrict a_end = a_pos + size;
92
93
26
        while (a_pos < a_end) {
94
22
            *c_pos = Op::apply(*a_pos, b);
95
22
            ++a_pos;
96
22
            ++c_pos;
97
22
        }
98
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
289
                                          PaddedPODArray<UInt8>& c) {
88
289
        size_t size = a.size();
89
289
        const A* __restrict a_pos = a.data();
90
289
        UInt8* __restrict c_pos = c.data();
91
289
        const A* __restrict a_end = a_pos + size;
92
93
701k
        while (a_pos < a_end) {
94
701k
            *c_pos = Op::apply(*a_pos, b);
95
701k
            ++a_pos;
96
701k
            ++c_pos;
97
701k
        }
98
289
    }
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
87
43
                                          PaddedPODArray<UInt8>& c) {
88
43
        size_t size = a.size();
89
43
        const A* __restrict a_pos = a.data();
90
43
        UInt8* __restrict c_pos = c.data();
91
43
        const A* __restrict a_end = a_pos + size;
92
93
106
        while (a_pos < a_end) {
94
63
            *c_pos = Op::apply(*a_pos, b);
95
63
            ++a_pos;
96
63
            ++c_pos;
97
63
        }
98
43
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
2
                                          PaddedPODArray<UInt8>& c) {
88
2
        size_t size = a.size();
89
2
        const A* __restrict a_pos = a.data();
90
2
        UInt8* __restrict c_pos = c.data();
91
2
        const A* __restrict a_end = a_pos + size;
92
93
4
        while (a_pos < a_end) {
94
2
            *c_pos = Op::apply(*a_pos, b);
95
2
            ++a_pos;
96
2
            ++c_pos;
97
2
        }
98
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
44
                                          PaddedPODArray<UInt8>& c) {
88
44
        size_t size = a.size();
89
44
        const A* __restrict a_pos = a.data();
90
44
        UInt8* __restrict c_pos = c.data();
91
44
        const A* __restrict a_end = a_pos + size;
92
93
1.24k
        while (a_pos < a_end) {
94
1.19k
            *c_pos = Op::apply(*a_pos, b);
95
1.19k
            ++a_pos;
96
1.19k
            ++c_pos;
97
1.19k
        }
98
44
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
26
                                          PaddedPODArray<UInt8>& c) {
88
26
        size_t size = a.size();
89
26
        const A* __restrict a_pos = a.data();
90
26
        UInt8* __restrict c_pos = c.data();
91
26
        const A* __restrict a_end = a_pos + size;
92
93
802
        while (a_pos < a_end) {
94
776
            *c_pos = Op::apply(*a_pos, b);
95
776
            ++a_pos;
96
776
            ++c_pos;
97
776
        }
98
26
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
2.85k
                                          PaddedPODArray<UInt8>& c) {
88
2.85k
        size_t size = a.size();
89
2.85k
        const A* __restrict a_pos = a.data();
90
2.85k
        UInt8* __restrict c_pos = c.data();
91
2.85k
        const A* __restrict a_end = a_pos + size;
92
93
658k
        while (a_pos < a_end) {
94
655k
            *c_pos = Op::apply(*a_pos, b);
95
655k
            ++a_pos;
96
655k
            ++c_pos;
97
655k
        }
98
2.85k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
2.53k
                                          PaddedPODArray<UInt8>& c) {
88
2.53k
        size_t size = a.size();
89
2.53k
        const A* __restrict a_pos = a.data();
90
2.53k
        UInt8* __restrict c_pos = c.data();
91
2.53k
        const A* __restrict a_end = a_pos + size;
92
93
272k
        while (a_pos < a_end) {
94
270k
            *c_pos = Op::apply(*a_pos, b);
95
270k
            ++a_pos;
96
270k
            ++c_pos;
97
270k
        }
98
2.53k
    }
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
87
28
                                          PaddedPODArray<UInt8>& c) {
88
28
        size_t size = a.size();
89
28
        const A* __restrict a_pos = a.data();
90
28
        UInt8* __restrict c_pos = c.data();
91
28
        const A* __restrict a_end = a_pos + size;
92
93
70
        while (a_pos < a_end) {
94
42
            *c_pos = Op::apply(*a_pos, b);
95
42
            ++a_pos;
96
42
            ++c_pos;
97
42
        }
98
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
40
                                          PaddedPODArray<UInt8>& c) {
88
40
        size_t size = a.size();
89
40
        const A* __restrict a_pos = a.data();
90
40
        UInt8* __restrict c_pos = c.data();
91
40
        const A* __restrict a_end = a_pos + size;
92
93
282
        while (a_pos < a_end) {
94
242
            *c_pos = Op::apply(*a_pos, b);
95
242
            ++a_pos;
96
242
            ++c_pos;
97
242
        }
98
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
87
159
                                          PaddedPODArray<UInt8>& c) {
88
159
        size_t size = a.size();
89
159
        const A* __restrict a_pos = a.data();
90
159
        UInt8* __restrict c_pos = c.data();
91
159
        const A* __restrict a_end = a_pos + size;
92
93
747
        while (a_pos < a_end) {
94
588
            *c_pos = Op::apply(*a_pos, b);
95
588
            ++a_pos;
96
588
            ++c_pos;
97
588
        }
98
159
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
488
                                          PaddedPODArray<UInt8>& c) {
88
488
        size_t size = a.size();
89
488
        const A* __restrict a_pos = a.data();
90
488
        UInt8* __restrict c_pos = c.data();
91
488
        const A* __restrict a_end = a_pos + size;
92
93
1.34M
        while (a_pos < a_end) {
94
1.34M
            *c_pos = Op::apply(*a_pos, b);
95
1.34M
            ++a_pos;
96
1.34M
            ++c_pos;
97
1.34M
        }
98
488
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
94
                                          PaddedPODArray<UInt8>& c) {
88
94
        size_t size = a.size();
89
94
        const A* __restrict a_pos = a.data();
90
94
        UInt8* __restrict c_pos = c.data();
91
94
        const A* __restrict a_end = a_pos + size;
92
93
210
        while (a_pos < a_end) {
94
116
            *c_pos = Op::apply(*a_pos, b);
95
116
            ++a_pos;
96
116
            ++c_pos;
97
116
        }
98
94
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
373
                                          PaddedPODArray<UInt8>& c) {
88
373
        size_t size = a.size();
89
373
        const A* __restrict a_pos = a.data();
90
373
        UInt8* __restrict c_pos = c.data();
91
373
        const A* __restrict a_end = a_pos + size;
92
93
45.5k
        while (a_pos < a_end) {
94
45.1k
            *c_pos = Op::apply(*a_pos, b);
95
45.1k
            ++a_pos;
96
45.1k
            ++c_pos;
97
45.1k
        }
98
373
    }
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
87
1
                                          PaddedPODArray<UInt8>& c) {
88
1
        size_t size = a.size();
89
1
        const A* __restrict a_pos = a.data();
90
1
        UInt8* __restrict c_pos = c.data();
91
1
        const A* __restrict a_end = a_pos + size;
92
93
8
        while (a_pos < a_end) {
94
7
            *c_pos = Op::apply(*a_pos, b);
95
7
            ++a_pos;
96
7
            ++c_pos;
97
7
        }
98
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.12k
                                          PaddedPODArray<UInt8>& c) {
88
1.12k
        size_t size = a.size();
89
1.12k
        const A* __restrict a_pos = a.data();
90
1.12k
        UInt8* __restrict c_pos = c.data();
91
1.12k
        const A* __restrict a_end = a_pos + size;
92
93
7.63k
        while (a_pos < a_end) {
94
6.50k
            *c_pos = Op::apply(*a_pos, b);
95
6.50k
            ++a_pos;
96
6.50k
            ++c_pos;
97
6.50k
        }
98
1.12k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.18k
                                          PaddedPODArray<UInt8>& c) {
88
1.18k
        size_t size = a.size();
89
1.18k
        const A* __restrict a_pos = a.data();
90
1.18k
        UInt8* __restrict c_pos = c.data();
91
1.18k
        const A* __restrict a_end = a_pos + size;
92
93
6.22k
        while (a_pos < a_end) {
94
5.04k
            *c_pos = Op::apply(*a_pos, b);
95
5.04k
            ++a_pos;
96
5.04k
            ++c_pos;
97
5.04k
        }
98
1.18k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.08k
                                          PaddedPODArray<UInt8>& c) {
88
1.08k
        size_t size = a.size();
89
1.08k
        const A* __restrict a_pos = a.data();
90
1.08k
        UInt8* __restrict c_pos = c.data();
91
1.08k
        const A* __restrict a_end = a_pos + size;
92
93
9.39k
        while (a_pos < a_end) {
94
8.30k
            *c_pos = Op::apply(*a_pos, b);
95
8.30k
            ++a_pos;
96
8.30k
            ++c_pos;
97
8.30k
        }
98
1.08k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
657
                                          PaddedPODArray<UInt8>& c) {
88
657
        size_t size = a.size();
89
657
        const A* __restrict a_pos = a.data();
90
657
        UInt8* __restrict c_pos = c.data();
91
657
        const A* __restrict a_end = a_pos + size;
92
93
15.1k
        while (a_pos < a_end) {
94
14.4k
            *c_pos = Op::apply(*a_pos, b);
95
14.4k
            ++a_pos;
96
14.4k
            ++c_pos;
97
14.4k
        }
98
657
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
25.0k
                                          PaddedPODArray<UInt8>& c) {
88
25.0k
        size_t size = a.size();
89
25.0k
        const A* __restrict a_pos = a.data();
90
25.0k
        UInt8* __restrict c_pos = c.data();
91
25.0k
        const A* __restrict a_end = a_pos + size;
92
93
6.66M
        while (a_pos < a_end) {
94
6.63M
            *c_pos = Op::apply(*a_pos, b);
95
6.63M
            ++a_pos;
96
6.63M
            ++c_pos;
97
6.63M
        }
98
25.0k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
9.29k
                                          PaddedPODArray<UInt8>& c) {
88
9.29k
        size_t size = a.size();
89
9.29k
        const A* __restrict a_pos = a.data();
90
9.29k
        UInt8* __restrict c_pos = c.data();
91
9.29k
        const A* __restrict a_end = a_pos + size;
92
93
5.37M
        while (a_pos < a_end) {
94
5.36M
            *c_pos = Op::apply(*a_pos, b);
95
5.36M
            ++a_pos;
96
5.36M
            ++c_pos;
97
5.36M
        }
98
9.29k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
13.4k
                                          PaddedPODArray<UInt8>& c) {
88
13.4k
        size_t size = a.size();
89
13.4k
        const A* __restrict a_pos = a.data();
90
13.4k
        UInt8* __restrict c_pos = c.data();
91
13.4k
        const A* __restrict a_end = a_pos + size;
92
93
173k
        while (a_pos < a_end) {
94
160k
            *c_pos = Op::apply(*a_pos, b);
95
160k
            ++a_pos;
96
160k
            ++c_pos;
97
160k
        }
98
13.4k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.91k
                                          PaddedPODArray<UInt8>& c) {
88
1.91k
        size_t size = a.size();
89
1.91k
        const A* __restrict a_pos = a.data();
90
1.91k
        UInt8* __restrict c_pos = c.data();
91
1.91k
        const A* __restrict a_end = a_pos + size;
92
93
14.1k
        while (a_pos < a_end) {
94
12.2k
            *c_pos = Op::apply(*a_pos, b);
95
12.2k
            ++a_pos;
96
12.2k
            ++c_pos;
97
12.2k
        }
98
1.91k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
281
                                          PaddedPODArray<UInt8>& c) {
88
281
        size_t size = a.size();
89
281
        const A* __restrict a_pos = a.data();
90
281
        UInt8* __restrict c_pos = c.data();
91
281
        const A* __restrict a_end = a_pos + size;
92
93
1.91k
        while (a_pos < a_end) {
94
1.63k
            *c_pos = Op::apply(*a_pos, b);
95
1.63k
            ++a_pos;
96
1.63k
            ++c_pos;
97
1.63k
        }
98
281
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
105
                                          PaddedPODArray<UInt8>& c) {
88
105
        size_t size = a.size();
89
105
        const A* __restrict a_pos = a.data();
90
105
        UInt8* __restrict c_pos = c.data();
91
105
        const A* __restrict a_end = a_pos + size;
92
93
86.2k
        while (a_pos < a_end) {
94
86.1k
            *c_pos = Op::apply(*a_pos, b);
95
86.1k
            ++a_pos;
96
86.1k
            ++c_pos;
97
86.1k
        }
98
105
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
3
                                          PaddedPODArray<UInt8>& c) {
88
3
        size_t size = a.size();
89
3
        const A* __restrict a_pos = a.data();
90
3
        UInt8* __restrict c_pos = c.data();
91
3
        const A* __restrict a_end = a_pos + size;
92
93
31
        while (a_pos < a_end) {
94
28
            *c_pos = Op::apply(*a_pos, b);
95
28
            ++a_pos;
96
28
            ++c_pos;
97
28
        }
98
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
2
                                          PaddedPODArray<UInt8>& c) {
88
2
        size_t size = a.size();
89
2
        const A* __restrict a_pos = a.data();
90
2
        UInt8* __restrict c_pos = c.data();
91
2
        const A* __restrict a_end = a_pos + size;
92
93
22
        while (a_pos < a_end) {
94
20
            *c_pos = Op::apply(*a_pos, b);
95
20
            ++a_pos;
96
20
            ++c_pos;
97
20
        }
98
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
87
216
                                          PaddedPODArray<UInt8>& c) {
88
216
        size_t size = a.size();
89
216
        const A* __restrict a_pos = a.data();
90
216
        UInt8* __restrict c_pos = c.data();
91
216
        const A* __restrict a_end = a_pos + size;
92
93
3.77k
        while (a_pos < a_end) {
94
3.55k
            *c_pos = Op::apply(*a_pos, b);
95
3.55k
            ++a_pos;
96
3.55k
            ++c_pos;
97
3.55k
        }
98
216
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
26
                                          PaddedPODArray<UInt8>& c) {
88
26
        size_t size = a.size();
89
26
        const A* __restrict a_pos = a.data();
90
26
        UInt8* __restrict c_pos = c.data();
91
26
        const A* __restrict a_end = a_pos + size;
92
93
64
        while (a_pos < a_end) {
94
38
            *c_pos = Op::apply(*a_pos, b);
95
38
            ++a_pos;
96
38
            ++c_pos;
97
38
        }
98
26
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
2.45k
                                          PaddedPODArray<UInt8>& c) {
88
2.45k
        size_t size = a.size();
89
2.45k
        const A* __restrict a_pos = a.data();
90
2.45k
        UInt8* __restrict c_pos = c.data();
91
2.45k
        const A* __restrict a_end = a_pos + size;
92
93
346k
        while (a_pos < a_end) {
94
344k
            *c_pos = Op::apply(*a_pos, b);
95
344k
            ++a_pos;
96
344k
            ++c_pos;
97
344k
        }
98
2.45k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
223
                                          PaddedPODArray<UInt8>& c) {
88
223
        size_t size = a.size();
89
223
        const A* __restrict a_pos = a.data();
90
223
        UInt8* __restrict c_pos = c.data();
91
223
        const A* __restrict a_end = a_pos + size;
92
93
316k
        while (a_pos < a_end) {
94
316k
            *c_pos = Op::apply(*a_pos, b);
95
316k
            ++a_pos;
96
316k
            ++c_pos;
97
316k
        }
98
223
    }
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
87
204
                                          PaddedPODArray<UInt8>& c) {
88
204
        size_t size = a.size();
89
204
        const A* __restrict a_pos = a.data();
90
204
        UInt8* __restrict c_pos = c.data();
91
204
        const A* __restrict a_end = a_pos + size;
92
93
172k
        while (a_pos < a_end) {
94
172k
            *c_pos = Op::apply(*a_pos, b);
95
172k
            ++a_pos;
96
172k
            ++c_pos;
97
172k
        }
98
204
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
87
421
                                          PaddedPODArray<UInt8>& c) {
88
421
        size_t size = a.size();
89
421
        const A* __restrict a_pos = a.data();
90
421
        UInt8* __restrict c_pos = c.data();
91
421
        const A* __restrict a_end = a_pos + size;
92
93
66.8k
        while (a_pos < a_end) {
94
66.4k
            *c_pos = Op::apply(*a_pos, b);
95
66.4k
            ++a_pos;
96
66.4k
            ++c_pos;
97
66.4k
        }
98
421
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
1.59k
                                          PaddedPODArray<UInt8>& c) {
88
1.59k
        size_t size = a.size();
89
1.59k
        const A* __restrict a_pos = a.data();
90
1.59k
        UInt8* __restrict c_pos = c.data();
91
1.59k
        const A* __restrict a_end = a_pos + size;
92
93
4.59M
        while (a_pos < a_end) {
94
4.59M
            *c_pos = Op::apply(*a_pos, b);
95
4.59M
            ++a_pos;
96
4.59M
            ++c_pos;
97
4.59M
        }
98
1.59k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
4.33k
                                          PaddedPODArray<UInt8>& c) {
88
4.33k
        size_t size = a.size();
89
4.33k
        const A* __restrict a_pos = a.data();
90
4.33k
        UInt8* __restrict c_pos = c.data();
91
4.33k
        const A* __restrict a_end = a_pos + size;
92
93
27.6M
        while (a_pos < a_end) {
94
27.6M
            *c_pos = Op::apply(*a_pos, b);
95
27.6M
            ++a_pos;
96
27.6M
            ++c_pos;
97
27.6M
        }
98
4.33k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
772
                                          PaddedPODArray<UInt8>& c) {
88
772
        size_t size = a.size();
89
772
        const A* __restrict a_pos = a.data();
90
772
        UInt8* __restrict c_pos = c.data();
91
772
        const A* __restrict a_end = a_pos + size;
92
93
30.9k
        while (a_pos < a_end) {
94
30.1k
            *c_pos = Op::apply(*a_pos, b);
95
30.1k
            ++a_pos;
96
30.1k
            ++c_pos;
97
30.1k
        }
98
772
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
615
                                          PaddedPODArray<UInt8>& c) {
88
615
        size_t size = a.size();
89
615
        const A* __restrict a_pos = a.data();
90
615
        UInt8* __restrict c_pos = c.data();
91
615
        const A* __restrict a_end = a_pos + size;
92
93
29.5k
        while (a_pos < a_end) {
94
28.9k
            *c_pos = Op::apply(*a_pos, b);
95
28.9k
            ++a_pos;
96
28.9k
            ++c_pos;
97
28.9k
        }
98
615
    }
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
87
60
                                          PaddedPODArray<UInt8>& c) {
88
60
        size_t size = a.size();
89
60
        const A* __restrict a_pos = a.data();
90
60
        UInt8* __restrict c_pos = c.data();
91
60
        const A* __restrict a_end = a_pos + size;
92
93
90.5k
        while (a_pos < a_end) {
94
90.4k
            *c_pos = Op::apply(*a_pos, b);
95
90.4k
            ++a_pos;
96
90.4k
            ++c_pos;
97
90.4k
        }
98
60
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
283
                                          PaddedPODArray<UInt8>& c) {
88
283
        size_t size = a.size();
89
283
        const A* __restrict a_pos = a.data();
90
283
        UInt8* __restrict c_pos = c.data();
91
283
        const A* __restrict a_end = a_pos + size;
92
93
124k
        while (a_pos < a_end) {
94
124k
            *c_pos = Op::apply(*a_pos, b);
95
124k
            ++a_pos;
96
124k
            ++c_pos;
97
124k
        }
98
283
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
70
                                          PaddedPODArray<UInt8>& c) {
88
70
        size_t size = a.size();
89
70
        const A* __restrict a_pos = a.data();
90
70
        UInt8* __restrict c_pos = c.data();
91
70
        const A* __restrict a_end = a_pos + size;
92
93
130k
        while (a_pos < a_end) {
94
130k
            *c_pos = Op::apply(*a_pos, b);
95
130k
            ++a_pos;
96
130k
            ++c_pos;
97
130k
        }
98
70
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
277
                                          PaddedPODArray<UInt8>& c) {
88
277
        size_t size = a.size();
89
277
        const A* __restrict a_pos = a.data();
90
277
        UInt8* __restrict c_pos = c.data();
91
277
        const A* __restrict a_end = a_pos + size;
92
93
131k
        while (a_pos < a_end) {
94
131k
            *c_pos = Op::apply(*a_pos, b);
95
131k
            ++a_pos;
96
131k
            ++c_pos;
97
131k
        }
98
277
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
13.6k
                                          PaddedPODArray<UInt8>& c) {
88
13.6k
        size_t size = a.size();
89
13.6k
        const A* __restrict a_pos = a.data();
90
13.6k
        UInt8* __restrict c_pos = c.data();
91
13.6k
        const A* __restrict a_end = a_pos + size;
92
93
37.3M
        while (a_pos < a_end) {
94
37.3M
            *c_pos = Op::apply(*a_pos, b);
95
37.3M
            ++a_pos;
96
37.3M
            ++c_pos;
97
37.3M
        }
98
13.6k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
21.2k
                                          PaddedPODArray<UInt8>& c) {
88
21.2k
        size_t size = a.size();
89
21.2k
        const A* __restrict a_pos = a.data();
90
21.2k
        UInt8* __restrict c_pos = c.data();
91
21.2k
        const A* __restrict a_end = a_pos + size;
92
93
41.7M
        while (a_pos < a_end) {
94
41.7M
            *c_pos = Op::apply(*a_pos, b);
95
41.7M
            ++a_pos;
96
41.7M
            ++c_pos;
97
41.7M
        }
98
21.2k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
906
                                          PaddedPODArray<UInt8>& c) {
88
906
        size_t size = a.size();
89
906
        const A* __restrict a_pos = a.data();
90
906
        UInt8* __restrict c_pos = c.data();
91
906
        const A* __restrict a_end = a_pos + size;
92
93
41.0k
        while (a_pos < a_end) {
94
40.1k
            *c_pos = Op::apply(*a_pos, b);
95
40.1k
            ++a_pos;
96
40.1k
            ++c_pos;
97
40.1k
        }
98
906
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
926
                                          PaddedPODArray<UInt8>& c) {
88
926
        size_t size = a.size();
89
926
        const A* __restrict a_pos = a.data();
90
926
        UInt8* __restrict c_pos = c.data();
91
926
        const A* __restrict a_end = a_pos + size;
92
93
41.8k
        while (a_pos < a_end) {
94
40.8k
            *c_pos = Op::apply(*a_pos, b);
95
40.8k
            ++a_pos;
96
40.8k
            ++c_pos;
97
40.8k
        }
98
926
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
56
                                          PaddedPODArray<UInt8>& c) {
88
56
        size_t size = a.size();
89
56
        const A* __restrict a_pos = a.data();
90
56
        UInt8* __restrict c_pos = c.data();
91
56
        const A* __restrict a_end = a_pos + size;
92
93
150k
        while (a_pos < a_end) {
94
150k
            *c_pos = Op::apply(*a_pos, b);
95
150k
            ++a_pos;
96
150k
            ++c_pos;
97
150k
        }
98
56
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
54
                                          PaddedPODArray<UInt8>& c) {
88
54
        size_t size = a.size();
89
54
        const A* __restrict a_pos = a.data();
90
54
        UInt8* __restrict c_pos = c.data();
91
54
        const A* __restrict a_end = a_pos + size;
92
93
100k
        while (a_pos < a_end) {
94
100k
            *c_pos = Op::apply(*a_pos, b);
95
100k
            ++a_pos;
96
100k
            ++c_pos;
97
100k
        }
98
54
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
10
                                          PaddedPODArray<UInt8>& c) {
88
10
        size_t size = a.size();
89
10
        const A* __restrict a_pos = a.data();
90
10
        UInt8* __restrict c_pos = c.data();
91
10
        const A* __restrict a_end = a_pos + size;
92
93
110
        while (a_pos < a_end) {
94
100
            *c_pos = Op::apply(*a_pos, b);
95
100
            ++a_pos;
96
100
            ++c_pos;
97
100
        }
98
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
10
                                          PaddedPODArray<UInt8>& c) {
88
10
        size_t size = a.size();
89
10
        const A* __restrict a_pos = a.data();
90
10
        UInt8* __restrict c_pos = c.data();
91
10
        const A* __restrict a_end = a_pos + size;
92
93
110
        while (a_pos < a_end) {
94
100
            *c_pos = Op::apply(*a_pos, b);
95
100
            ++a_pos;
96
100
            ++c_pos;
97
100
        }
98
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
208
                                          PaddedPODArray<UInt8>& c) {
88
208
        size_t size = a.size();
89
208
        const A* __restrict a_pos = a.data();
90
208
        UInt8* __restrict c_pos = c.data();
91
208
        const A* __restrict a_end = a_pos + size;
92
93
418
        while (a_pos < a_end) {
94
210
            *c_pos = Op::apply(*a_pos, b);
95
210
            ++a_pos;
96
210
            ++c_pos;
97
210
        }
98
208
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
204
                                          PaddedPODArray<UInt8>& c) {
88
204
        size_t size = a.size();
89
204
        const A* __restrict a_pos = a.data();
90
204
        UInt8* __restrict c_pos = c.data();
91
204
        const A* __restrict a_end = a_pos + size;
92
93
408
        while (a_pos < a_end) {
94
204
            *c_pos = Op::apply(*a_pos, b);
95
204
            ++a_pos;
96
204
            ++c_pos;
97
204
        }
98
204
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
112
                                          PaddedPODArray<UInt8>& c) {
88
112
        size_t size = a.size();
89
112
        const A* __restrict a_pos = a.data();
90
112
        UInt8* __restrict c_pos = c.data();
91
112
        const A* __restrict a_end = a_pos + size;
92
93
276k
        while (a_pos < a_end) {
94
276k
            *c_pos = Op::apply(*a_pos, b);
95
276k
            ++a_pos;
96
276k
            ++c_pos;
97
276k
        }
98
112
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
116
                                          PaddedPODArray<UInt8>& c) {
88
116
        size_t size = a.size();
89
116
        const A* __restrict a_pos = a.data();
90
116
        UInt8* __restrict c_pos = c.data();
91
116
        const A* __restrict a_end = a_pos + size;
92
93
275k
        while (a_pos < a_end) {
94
275k
            *c_pos = Op::apply(*a_pos, b);
95
275k
            ++a_pos;
96
275k
            ++c_pos;
97
275k
        }
98
116
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
99
100
7.35k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
7.35k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
7.35k
    }
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
100
498
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
498
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
498
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
30
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
30
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
30
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
142
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
142
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
142
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
609
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
609
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
609
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
12
    }
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
100
594
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
594
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
594
    }
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
100
273
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
273
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
273
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
389
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
389
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
389
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
3.33k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
3.33k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
3.33k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
520
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
520
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
520
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
44
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
44
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
44
    }
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
100
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
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
100
456
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
456
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
456
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
119
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
119
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
119
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
58
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
58
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
58
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
80
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
80
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
80
    }
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
100
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
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
100
133
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
133
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
133
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
48
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
1
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
1
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
103
};
104
105
/// Generic version, implemented for columns of same type.
106
template <typename Op>
107
struct GenericComparisonImpl {
108
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
11
        }
112
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
6
        }
112
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
1
        }
112
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
1
        }
112
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
3
        }
112
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
113
114
178
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
178
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
389k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
389k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
389k
        }
119
178
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
18
        }
119
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
43
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
43
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
193k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
193k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
193k
        }
119
43
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
98
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
98
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
196k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
196k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
196k
        }
119
98
    }
120
121
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
122
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
123
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
124
};
125
126
template <typename Op>
127
struct StringComparisonImpl {
128
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
129
                                                      const ColumnString::Offsets& a_offsets,
130
                                                      const ColumnString::Chars& b_data,
131
                                                      const ColumnString::Offsets& b_offsets,
132
469
                                                      PaddedPODArray<UInt8>& c) {
133
469
        size_t size = a_offsets.size();
134
469
        ColumnString::Offset prev_a_offset = 0;
135
469
        ColumnString::Offset prev_b_offset = 0;
136
469
        const auto* a_pos = a_data.data();
137
469
        const auto* b_pos = b_data.data();
138
139
1.66k
        for (size_t i = 0; i < size; ++i) {
140
1.19k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
1.19k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
1.19k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
1.19k
                             0);
144
145
1.19k
            prev_a_offset = a_offsets[i];
146
1.19k
            prev_b_offset = b_offsets[i];
147
1.19k
        }
148
469
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
2
                                                      PaddedPODArray<UInt8>& c) {
133
2
        size_t size = a_offsets.size();
134
2
        ColumnString::Offset prev_a_offset = 0;
135
2
        ColumnString::Offset prev_b_offset = 0;
136
2
        const auto* a_pos = a_data.data();
137
2
        const auto* b_pos = b_data.data();
138
139
49
        for (size_t i = 0; i < size; ++i) {
140
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
47
                             0);
144
145
47
            prev_a_offset = a_offsets[i];
146
47
            prev_b_offset = b_offsets[i];
147
47
        }
148
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
36
                                                      PaddedPODArray<UInt8>& c) {
133
36
        size_t size = a_offsets.size();
134
36
        ColumnString::Offset prev_a_offset = 0;
135
36
        ColumnString::Offset prev_b_offset = 0;
136
36
        const auto* a_pos = a_data.data();
137
36
        const auto* b_pos = b_data.data();
138
139
230
        for (size_t i = 0; i < size; ++i) {
140
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
194
                             0);
144
145
194
            prev_a_offset = a_offsets[i];
146
194
            prev_b_offset = b_offsets[i];
147
194
        }
148
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
431
                                                      PaddedPODArray<UInt8>& c) {
133
431
        size_t size = a_offsets.size();
134
431
        ColumnString::Offset prev_a_offset = 0;
135
431
        ColumnString::Offset prev_b_offset = 0;
136
431
        const auto* a_pos = a_data.data();
137
431
        const auto* b_pos = b_data.data();
138
139
1.38k
        for (size_t i = 0; i < size; ++i) {
140
953
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
953
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
953
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
953
                             0);
144
145
953
            prev_a_offset = a_offsets[i];
146
953
            prev_b_offset = b_offsets[i];
147
953
        }
148
431
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
149
150
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
151
                                                 const ColumnString::Offsets& a_offsets,
152
                                                 const ColumnString::Chars& b_data,
153
                                                 ColumnString::Offset b_size,
154
3.09k
                                                 PaddedPODArray<UInt8>& c) {
155
3.09k
        size_t size = a_offsets.size();
156
3.09k
        ColumnString::Offset prev_a_offset = 0;
157
3.09k
        const auto* a_pos = a_data.data();
158
3.09k
        const auto* b_pos = b_data.data();
159
160
1.55M
        for (size_t i = 0; i < size; ++i) {
161
1.55M
            c[i] = Op::apply(
162
1.55M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
1.55M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
1.55M
                    0);
165
166
1.55M
            prev_a_offset = a_offsets[i];
167
1.55M
        }
168
3.09k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
210
                                                 PaddedPODArray<UInt8>& c) {
155
210
        size_t size = a_offsets.size();
156
210
        ColumnString::Offset prev_a_offset = 0;
157
210
        const auto* a_pos = a_data.data();
158
210
        const auto* b_pos = b_data.data();
159
160
322k
        for (size_t i = 0; i < size; ++i) {
161
321k
            c[i] = Op::apply(
162
321k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
321k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
321k
                    0);
165
166
321k
            prev_a_offset = a_offsets[i];
167
321k
        }
168
210
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
281
                                                 PaddedPODArray<UInt8>& c) {
155
281
        size_t size = a_offsets.size();
156
281
        ColumnString::Offset prev_a_offset = 0;
157
281
        const auto* a_pos = a_data.data();
158
281
        const auto* b_pos = b_data.data();
159
160
146k
        for (size_t i = 0; i < size; ++i) {
161
146k
            c[i] = Op::apply(
162
146k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
146k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
146k
                    0);
165
166
146k
            prev_a_offset = a_offsets[i];
167
146k
        }
168
281
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
657
                                                 PaddedPODArray<UInt8>& c) {
155
657
        size_t size = a_offsets.size();
156
657
        ColumnString::Offset prev_a_offset = 0;
157
657
        const auto* a_pos = a_data.data();
158
657
        const auto* b_pos = b_data.data();
159
160
450k
        for (size_t i = 0; i < size; ++i) {
161
450k
            c[i] = Op::apply(
162
450k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
450k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
450k
                    0);
165
166
450k
            prev_a_offset = a_offsets[i];
167
450k
        }
168
657
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
1.94k
                                                 PaddedPODArray<UInt8>& c) {
155
1.94k
        size_t size = a_offsets.size();
156
1.94k
        ColumnString::Offset prev_a_offset = 0;
157
1.94k
        const auto* a_pos = a_data.data();
158
1.94k
        const auto* b_pos = b_data.data();
159
160
637k
        for (size_t i = 0; i < size; ++i) {
161
635k
            c[i] = Op::apply(
162
635k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
635k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
635k
                    0);
165
166
635k
            prev_a_offset = a_offsets[i];
167
635k
        }
168
1.94k
    }
169
170
    static void constant_string_vector(const ColumnString::Chars& a_data,
171
                                       ColumnString::Offset a_size,
172
                                       const ColumnString::Chars& b_data,
173
                                       const ColumnString::Offsets& b_offsets,
174
6
                                       PaddedPODArray<UInt8>& c) {
175
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
176
6
                                                                               a_data, a_size, c);
177
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
174
6
                                       PaddedPODArray<UInt8>& c) {
175
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
176
6
                                                                               a_data, a_size, c);
177
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
178
};
179
180
template <bool positive>
181
struct StringEqualsImpl {
182
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
183
                                                      const ColumnString::Offsets& a_offsets,
184
                                                      const ColumnString::Chars& b_data,
185
                                                      const ColumnString::Offsets& b_offsets,
186
434
                                                      PaddedPODArray<UInt8>& c) {
187
434
        size_t size = a_offsets.size();
188
434
        ColumnString::Offset prev_a_offset = 0;
189
434
        ColumnString::Offset prev_b_offset = 0;
190
434
        const auto* a_pos = a_data.data();
191
434
        const auto* b_pos = b_data.data();
192
193
1.33k
        for (size_t i = 0; i < size; ++i) {
194
901
            auto a_size = a_offsets[i] - prev_a_offset;
195
901
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
901
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
901
                                                               b_pos + prev_b_offset, b_size);
199
200
901
            prev_a_offset = a_offsets[i];
201
901
            prev_b_offset = b_offsets[i];
202
901
        }
203
434
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
186
433
                                                      PaddedPODArray<UInt8>& c) {
187
433
        size_t size = a_offsets.size();
188
433
        ColumnString::Offset prev_a_offset = 0;
189
433
        ColumnString::Offset prev_b_offset = 0;
190
433
        const auto* a_pos = a_data.data();
191
433
        const auto* b_pos = b_data.data();
192
193
1.33k
        for (size_t i = 0; i < size; ++i) {
194
897
            auto a_size = a_offsets[i] - prev_a_offset;
195
897
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
897
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
897
                                                               b_pos + prev_b_offset, b_size);
199
200
897
            prev_a_offset = a_offsets[i];
201
897
            prev_b_offset = b_offsets[i];
202
897
        }
203
433
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
186
1
                                                      PaddedPODArray<UInt8>& c) {
187
1
        size_t size = a_offsets.size();
188
1
        ColumnString::Offset prev_a_offset = 0;
189
1
        ColumnString::Offset prev_b_offset = 0;
190
1
        const auto* a_pos = a_data.data();
191
1
        const auto* b_pos = b_data.data();
192
193
5
        for (size_t i = 0; i < size; ++i) {
194
4
            auto a_size = a_offsets[i] - prev_a_offset;
195
4
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
4
                                                               b_pos + prev_b_offset, b_size);
199
200
4
            prev_a_offset = a_offsets[i];
201
4
            prev_b_offset = b_offsets[i];
202
4
        }
203
1
    }
204
205
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
206
                                                 const ColumnString::Offsets& a_offsets,
207
                                                 const ColumnString::Chars& b_data,
208
                                                 ColumnString::Offset b_size,
209
23.2k
                                                 PaddedPODArray<UInt8>& c) {
210
23.2k
        size_t size = a_offsets.size();
211
23.2k
        if (b_size == 0) {
212
1
            auto* __restrict data = c.data();
213
1
            auto* __restrict offsets = a_offsets.data();
214
215
1
            ColumnString::Offset prev_a_offset = 0;
216
4
            for (size_t i = 0; i < size; ++i) {
217
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
3
                prev_a_offset = offsets[i];
219
3
            }
220
23.2k
        } else {
221
23.2k
            ColumnString::Offset prev_a_offset = 0;
222
23.2k
            const auto* a_pos = a_data.data();
223
23.2k
            const auto* b_pos = b_data.data();
224
9.16M
            for (size_t i = 0; i < size; ++i) {
225
9.14M
                auto a_size = a_offsets[i] - prev_a_offset;
226
9.14M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
9.14M
                                                                   b_pos, b_size);
228
9.14M
                prev_a_offset = a_offsets[i];
229
9.14M
            }
230
23.2k
        }
231
23.2k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
209
21.7k
                                                 PaddedPODArray<UInt8>& c) {
210
21.7k
        size_t size = a_offsets.size();
211
21.7k
        if (b_size == 0) {
212
0
            auto* __restrict data = c.data();
213
0
            auto* __restrict offsets = a_offsets.data();
214
215
0
            ColumnString::Offset prev_a_offset = 0;
216
0
            for (size_t i = 0; i < size; ++i) {
217
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
0
                prev_a_offset = offsets[i];
219
0
            }
220
21.7k
        } else {
221
21.7k
            ColumnString::Offset prev_a_offset = 0;
222
21.7k
            const auto* a_pos = a_data.data();
223
21.7k
            const auto* b_pos = b_data.data();
224
8.19M
            for (size_t i = 0; i < size; ++i) {
225
8.17M
                auto a_size = a_offsets[i] - prev_a_offset;
226
8.17M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
8.17M
                                                                   b_pos, b_size);
228
8.17M
                prev_a_offset = a_offsets[i];
229
8.17M
            }
230
21.7k
        }
231
21.7k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
209
1.50k
                                                 PaddedPODArray<UInt8>& c) {
210
1.50k
        size_t size = a_offsets.size();
211
1.50k
        if (b_size == 0) {
212
1
            auto* __restrict data = c.data();
213
1
            auto* __restrict offsets = a_offsets.data();
214
215
1
            ColumnString::Offset prev_a_offset = 0;
216
4
            for (size_t i = 0; i < size; ++i) {
217
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
3
                prev_a_offset = offsets[i];
219
3
            }
220
1.50k
        } else {
221
1.50k
            ColumnString::Offset prev_a_offset = 0;
222
1.50k
            const auto* a_pos = a_data.data();
223
1.50k
            const auto* b_pos = b_data.data();
224
968k
            for (size_t i = 0; i < size; ++i) {
225
967k
                auto a_size = a_offsets[i] - prev_a_offset;
226
967k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
967k
                                                                   b_pos, b_size);
228
967k
                prev_a_offset = a_offsets[i];
229
967k
            }
230
1.50k
        }
231
1.50k
    }
232
233
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
234
                                                 ColumnString::Offset a_size,
235
                                                 const ColumnString::Chars& b_data,
236
                                                 const ColumnString::Offsets& b_offsets,
237
0
                                                 PaddedPODArray<UInt8>& c) {
238
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
239
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
240
};
241
242
template <PrimitiveType PT>
243
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
244
245
template <PrimitiveType PT>
246
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
247
248
struct NameEquals {
249
    static constexpr auto name = "eq";
250
};
251
struct NameNotEquals {
252
    static constexpr auto name = "ne";
253
};
254
struct NameLess {
255
    static constexpr auto name = "lt";
256
};
257
struct NameGreater {
258
    static constexpr auto name = "gt";
259
};
260
struct NameLessOrEquals {
261
    static constexpr auto name = "le";
262
};
263
struct NameGreaterOrEquals {
264
    static constexpr auto name = "ge";
265
};
266
267
namespace comparison_zonemap_detail {
268
enum class Op {
269
    EQ,
270
    NE,
271
    LT,
272
    LE,
273
    GT,
274
    GE,
275
};
276
277
4
inline Op symmetric_op(Op op) {
278
4
    switch (op) {
279
0
    case Op::EQ:
280
0
    case Op::NE:
281
0
        return op;
282
2
    case Op::LT:
283
2
        return Op::GT;
284
0
    case Op::LE:
285
0
        return Op::GE;
286
0
    case Op::GT:
287
0
        return Op::LT;
288
2
    case Op::GE:
289
2
        return Op::LE;
290
4
    }
291
0
    __builtin_unreachable();
292
4
}
293
294
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
295
32.3k
                                    Op op) {
296
32.3k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
297
298
32.3k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal->slot_index,
299
32.3k
                                                              slot_literal->slot_type);
300
32.3k
    if (slot_type == nullptr) {
301
1
        return unsupported_zonemap_filter(ctx);
302
1
    }
303
32.3k
    auto zone_map_ptr = ctx.zone_map(slot_literal->slot_index);
304
32.3k
    if (zone_map_ptr == nullptr) {
305
1.70k
        return unsupported_zonemap_filter(ctx);
306
1.70k
    }
307
30.6k
    const auto& zone_map = *zone_map_ptr;
308
30.6k
    if (!zone_map.has_not_null) {
309
62
        return ZoneMapFilterResult::kNoMatch;
310
62
    }
311
30.5k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
312
99
        return unsupported_zonemap_filter(ctx);
313
99
    }
314
315
30.4k
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
316
30.4k
    const auto& literal = slot_literal->literal;
317
30.4k
    switch (effective_op) {
318
7.14k
    case Op::EQ:
319
7.14k
        return literal < zone_map.min_value || zone_map.max_value < literal
320
7.14k
                       ? ZoneMapFilterResult::kNoMatch
321
7.14k
                       : ZoneMapFilterResult::kMayMatch;
322
1.04k
    case Op::NE:
323
1.04k
        return zone_map.min_value == literal && zone_map.max_value == literal
324
1.04k
                       ? ZoneMapFilterResult::kNoMatch
325
1.04k
                       : ZoneMapFilterResult::kMayMatch;
326
1.86k
    case Op::LT:
327
1.86k
        return zone_map.min_value >= literal ? ZoneMapFilterResult::kNoMatch
328
1.86k
                                             : ZoneMapFilterResult::kMayMatch;
329
8.37k
    case Op::LE:
330
8.37k
        return zone_map.min_value > literal ? ZoneMapFilterResult::kNoMatch
331
8.37k
                                            : ZoneMapFilterResult::kMayMatch;
332
3.90k
    case Op::GT:
333
3.90k
        return zone_map.max_value <= literal ? ZoneMapFilterResult::kNoMatch
334
3.90k
                                             : ZoneMapFilterResult::kMayMatch;
335
8.14k
    case Op::GE:
336
8.14k
        return zone_map.max_value < literal ? ZoneMapFilterResult::kNoMatch
337
8.14k
                                            : ZoneMapFilterResult::kMayMatch;
338
30.4k
    }
339
340
    // keep this to avoid compile failure with g++.
341
0
    __builtin_unreachable();
342
30.4k
}
343
344
82.7k
inline bool can_evaluate(const VExprSPtrs& arguments) {
345
82.7k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
346
82.7k
    if (!slot_literal.has_value()) {
347
29.2k
        return false;
348
29.2k
    }
349
350
    // A NULL literal makes the comparison evaluate to NULL instead of a byte range predicate on
351
    // the slot. This zonemap evaluator only derives bounds from non-NULL literals, so reject this
352
    // shape here before evaluate_zonemap_filter is called.
353
53.5k
    if (slot_literal->literal.is_null()) {
354
4
        return false;
355
4
    }
356
357
53.5k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
358
53.5k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
359
53.5k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
360
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
361
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
362
        // values without running expression casts, so conservatively skip this optimization.
363
5
        return false;
364
5
    }
365
366
53.4k
    return true;
367
53.5k
}
368
369
115k
inline std::optional<Op> op_from_name(std::string_view name) {
370
115k
    if (name == NameEquals::name) {
371
39.4k
        return Op::EQ;
372
39.4k
    }
373
75.6k
    if (name == NameNotEquals::name) {
374
4.62k
        return Op::NE;
375
4.62k
    }
376
71.0k
    if (name == NameLess::name) {
377
8.29k
        return Op::LT;
378
8.29k
    }
379
62.7k
    if (name == NameLessOrEquals::name) {
380
22.5k
        return Op::LE;
381
22.5k
    }
382
40.2k
    if (name == NameGreater::name) {
383
16.0k
        return Op::GT;
384
16.0k
    }
385
24.2k
    if (name == NameGreaterOrEquals::name) {
386
24.2k
        return Op::GE;
387
24.2k
    }
388
18.4E
    return std::nullopt;
389
24.1k
}
390
} // namespace comparison_zonemap_detail
391
392
template <template <PrimitiveType> class Op, typename Name>
393
class FunctionComparison : public IFunction {
394
public:
395
    static constexpr auto name = Name::name;
396
470k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
396
436k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
396
1.34k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
396
6.33k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
396
9.66k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
396
3.46k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
396
13.8k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
397
398
470k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
398
436k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
398
1.34k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
398
6.33k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
398
9.66k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
398
3.46k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
398
13.8k
    FunctionComparison() = default;
399
400
1.21M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
400
1.18M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
400
915
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
400
4.09k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
400
14.2k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
400
2.16k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
400
9.94k
    double execute_cost() const override { return 0.5; }
401
402
private:
403
    template <PrimitiveType PT>
404
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
405
182k
                            const ColumnPtr& col_right_ptr) const {
406
182k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
182k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
182k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
182k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
182k
        DCHECK(!(left_is_const && right_is_const));
413
414
182k
        if (!left_is_const && !right_is_const) {
415
7.96k
            auto col_res = ColumnUInt8::create();
416
417
7.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
7.96k
            vec_res.resize(col_left->get_data().size());
419
7.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
7.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
7.96k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
7.96k
                                                     vec_res);
423
424
7.96k
            block.replace_by_position(result, std::move(col_res));
425
174k
        } else if (!left_is_const && right_is_const) {
426
167k
            auto col_res = ColumnUInt8::create();
427
428
167k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
167k
            vec_res.resize(col_left->size());
430
167k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
167k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
167k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
167k
                                                       col_right->get_element(0), vec_res);
434
435
167k
            block.replace_by_position(result, std::move(col_res));
436
167k
        } else if (left_is_const && !right_is_const) {
437
7.35k
            auto col_res = ColumnUInt8::create();
438
439
7.35k
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
7.35k
            vec_res.resize(col_right->size());
441
7.35k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
7.35k
                              typename PrimitiveTypeTraits<PT>::CppType,
443
7.35k
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
7.35k
                                                       col_right->get_data(), vec_res);
445
446
7.35k
            block.replace_by_position(result, std::move(col_res));
447
7.35k
        }
448
182k
        return Status::OK();
449
182k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.62k
                            const ColumnPtr& col_right_ptr) const {
406
1.62k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.62k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.62k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.62k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.62k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.62k
        if (!left_is_const && !right_is_const) {
415
76
            auto col_res = ColumnUInt8::create();
416
417
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
76
            vec_res.resize(col_left->get_data().size());
419
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
76
                              typename PrimitiveTypeTraits<PT>::CppType,
421
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
76
                                                     vec_res);
423
424
76
            block.replace_by_position(result, std::move(col_res));
425
1.55k
        } else if (!left_is_const && right_is_const) {
426
1.55k
            auto col_res = ColumnUInt8::create();
427
428
1.55k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.55k
            vec_res.resize(col_left->size());
430
1.55k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.55k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.55k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.55k
                                                       col_right->get_element(0), vec_res);
434
435
1.55k
            block.replace_by_position(result, std::move(col_res));
436
1.55k
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.62k
        return Status::OK();
449
1.62k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.53k
                            const ColumnPtr& col_right_ptr) const {
406
1.53k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.53k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.53k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.53k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.53k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.53k
        if (!left_is_const && !right_is_const) {
415
322
            auto col_res = ColumnUInt8::create();
416
417
322
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
322
            vec_res.resize(col_left->get_data().size());
419
322
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
322
                              typename PrimitiveTypeTraits<PT>::CppType,
421
322
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
322
                                                     vec_res);
423
424
322
            block.replace_by_position(result, std::move(col_res));
425
1.21k
        } else if (!left_is_const && right_is_const) {
426
1.21k
            auto col_res = ColumnUInt8::create();
427
428
1.21k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.21k
            vec_res.resize(col_left->size());
430
1.21k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.21k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.21k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.21k
                                                       col_right->get_element(0), vec_res);
434
435
1.21k
            block.replace_by_position(result, std::move(col_res));
436
1.21k
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.53k
        return Status::OK();
449
1.53k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
605
                            const ColumnPtr& col_right_ptr) const {
406
605
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
605
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
605
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
605
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
605
        DCHECK(!(left_is_const && right_is_const));
413
414
605
        if (!left_is_const && !right_is_const) {
415
240
            auto col_res = ColumnUInt8::create();
416
417
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
240
            vec_res.resize(col_left->get_data().size());
419
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
240
                              typename PrimitiveTypeTraits<PT>::CppType,
421
240
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
240
                                                     vec_res);
423
424
240
            block.replace_by_position(result, std::move(col_res));
425
365
        } else if (!left_is_const && right_is_const) {
426
365
            auto col_res = ColumnUInt8::create();
427
428
365
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
365
            vec_res.resize(col_left->size());
430
365
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
365
                              typename PrimitiveTypeTraits<PT>::CppType,
432
365
                              Op<PT>>::vector_constant(col_left->get_data(),
433
365
                                                       col_right->get_element(0), vec_res);
434
435
365
            block.replace_by_position(result, std::move(col_res));
436
365
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
605
        return Status::OK();
449
605
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2
                            const ColumnPtr& col_right_ptr) const {
406
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2
        DCHECK(!(left_is_const && right_is_const));
413
414
2
        if (!left_is_const && !right_is_const) {
415
2
            auto col_res = ColumnUInt8::create();
416
417
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
2
            vec_res.resize(col_left->get_data().size());
419
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
2
                              typename PrimitiveTypeTraits<PT>::CppType,
421
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
2
                                                     vec_res);
423
424
2
            block.replace_by_position(result, std::move(col_res));
425
2
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2
        return Status::OK();
449
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
6.27k
                            const ColumnPtr& col_right_ptr) const {
406
6.27k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
6.27k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
6.27k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
6.27k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
6.27k
        DCHECK(!(left_is_const && right_is_const));
413
414
6.27k
        if (!left_is_const && !right_is_const) {
415
141
            auto col_res = ColumnUInt8::create();
416
417
141
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
141
            vec_res.resize(col_left->get_data().size());
419
141
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
141
                              typename PrimitiveTypeTraits<PT>::CppType,
421
141
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
141
                                                     vec_res);
423
424
141
            block.replace_by_position(result, std::move(col_res));
425
6.12k
        } else if (!left_is_const && right_is_const) {
426
5.63k
            auto col_res = ColumnUInt8::create();
427
428
5.63k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
5.63k
            vec_res.resize(col_left->size());
430
5.63k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
5.63k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
5.63k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
5.63k
                                                       col_right->get_element(0), vec_res);
434
435
5.63k
            block.replace_by_position(result, std::move(col_res));
436
5.63k
        } else if (left_is_const && !right_is_const) {
437
498
            auto col_res = ColumnUInt8::create();
438
439
498
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
498
            vec_res.resize(col_right->size());
441
498
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
498
                              typename PrimitiveTypeTraits<PT>::CppType,
443
498
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
498
                                                       col_right->get_data(), vec_res);
445
446
498
            block.replace_by_position(result, std::move(col_res));
447
498
        }
448
6.27k
        return Status::OK();
449
6.27k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.39k
                            const ColumnPtr& col_right_ptr) const {
406
1.39k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.39k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.39k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.39k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.39k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.39k
        if (!left_is_const && !right_is_const) {
415
70
            auto col_res = ColumnUInt8::create();
416
417
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
70
            vec_res.resize(col_left->get_data().size());
419
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
70
                              typename PrimitiveTypeTraits<PT>::CppType,
421
70
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
70
                                                     vec_res);
423
424
70
            block.replace_by_position(result, std::move(col_res));
425
1.32k
        } else if (!left_is_const && right_is_const) {
426
1.29k
            auto col_res = ColumnUInt8::create();
427
428
1.29k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.29k
            vec_res.resize(col_left->size());
430
1.29k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.29k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.29k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.29k
                                                       col_right->get_element(0), vec_res);
434
435
1.29k
            block.replace_by_position(result, std::move(col_res));
436
1.29k
        } else if (left_is_const && !right_is_const) {
437
30
            auto col_res = ColumnUInt8::create();
438
439
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
30
            vec_res.resize(col_right->size());
441
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
30
                              typename PrimitiveTypeTraits<PT>::CppType,
443
30
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
30
                                                       col_right->get_data(), vec_res);
445
446
30
            block.replace_by_position(result, std::move(col_res));
447
30
        }
448
1.39k
        return Status::OK();
449
1.39k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
30.9k
                            const ColumnPtr& col_right_ptr) const {
406
30.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
30.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
30.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
30.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
30.9k
        DCHECK(!(left_is_const && right_is_const));
413
414
30.9k
        if (!left_is_const && !right_is_const) {
415
254
            auto col_res = ColumnUInt8::create();
416
417
254
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
254
            vec_res.resize(col_left->get_data().size());
419
254
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
254
                              typename PrimitiveTypeTraits<PT>::CppType,
421
254
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
254
                                                     vec_res);
423
424
254
            block.replace_by_position(result, std::move(col_res));
425
30.7k
        } else if (!left_is_const && right_is_const) {
426
30.5k
            auto col_res = ColumnUInt8::create();
427
428
30.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
30.5k
            vec_res.resize(col_left->size());
430
30.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
30.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
30.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
30.5k
                                                       col_right->get_element(0), vec_res);
434
435
30.5k
            block.replace_by_position(result, std::move(col_res));
436
30.5k
        } else if (left_is_const && !right_is_const) {
437
142
            auto col_res = ColumnUInt8::create();
438
439
142
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
142
            vec_res.resize(col_right->size());
441
142
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
142
                              typename PrimitiveTypeTraits<PT>::CppType,
443
142
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
142
                                                       col_right->get_data(), vec_res);
445
446
142
            block.replace_by_position(result, std::move(col_res));
447
142
        }
448
30.9k
        return Status::OK();
449
30.9k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
23.5k
                            const ColumnPtr& col_right_ptr) const {
406
23.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
23.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
23.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
23.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
23.5k
        DCHECK(!(left_is_const && right_is_const));
413
414
23.5k
        if (!left_is_const && !right_is_const) {
415
257
            auto col_res = ColumnUInt8::create();
416
417
257
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
257
            vec_res.resize(col_left->get_data().size());
419
257
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
257
                              typename PrimitiveTypeTraits<PT>::CppType,
421
257
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
257
                                                     vec_res);
423
424
257
            block.replace_by_position(result, std::move(col_res));
425
23.2k
        } else if (!left_is_const && right_is_const) {
426
22.6k
            auto col_res = ColumnUInt8::create();
427
428
22.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
22.6k
            vec_res.resize(col_left->size());
430
22.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
22.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
22.6k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
22.6k
                                                       col_right->get_element(0), vec_res);
434
435
22.6k
            block.replace_by_position(result, std::move(col_res));
436
22.6k
        } else if (left_is_const && !right_is_const) {
437
609
            auto col_res = ColumnUInt8::create();
438
439
609
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
609
            vec_res.resize(col_right->size());
441
609
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
609
                              typename PrimitiveTypeTraits<PT>::CppType,
443
609
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
609
                                                       col_right->get_data(), vec_res);
445
446
609
            block.replace_by_position(result, std::move(col_res));
447
609
        }
448
23.5k
        return Status::OK();
449
23.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
136
                            const ColumnPtr& col_right_ptr) const {
406
136
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
136
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
136
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
136
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
136
        DCHECK(!(left_is_const && right_is_const));
413
414
136
        if (!left_is_const && !right_is_const) {
415
67
            auto col_res = ColumnUInt8::create();
416
417
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
67
            vec_res.resize(col_left->get_data().size());
419
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
67
                              typename PrimitiveTypeTraits<PT>::CppType,
421
67
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
67
                                                     vec_res);
423
424
67
            block.replace_by_position(result, std::move(col_res));
425
69
        } else if (!left_is_const && right_is_const) {
426
57
            auto col_res = ColumnUInt8::create();
427
428
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
57
            vec_res.resize(col_left->size());
430
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
57
                              typename PrimitiveTypeTraits<PT>::CppType,
432
57
                              Op<PT>>::vector_constant(col_left->get_data(),
433
57
                                                       col_right->get_element(0), vec_res);
434
435
57
            block.replace_by_position(result, std::move(col_res));
436
57
        } else if (left_is_const && !right_is_const) {
437
12
            auto col_res = ColumnUInt8::create();
438
439
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
12
            vec_res.resize(col_right->size());
441
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
12
                              typename PrimitiveTypeTraits<PT>::CppType,
443
12
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
12
                                                       col_right->get_data(), vec_res);
445
446
12
            block.replace_by_position(result, std::move(col_res));
447
12
        }
448
136
        return Status::OK();
449
136
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
18
                            const ColumnPtr& col_right_ptr) const {
406
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
18
        DCHECK(!(left_is_const && right_is_const));
413
414
18
        if (!left_is_const && !right_is_const) {
415
5
            auto col_res = ColumnUInt8::create();
416
417
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
5
            vec_res.resize(col_left->get_data().size());
419
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
5
                              typename PrimitiveTypeTraits<PT>::CppType,
421
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
5
                                                     vec_res);
423
424
5
            block.replace_by_position(result, std::move(col_res));
425
13
        } else if (!left_is_const && right_is_const) {
426
13
            auto col_res = ColumnUInt8::create();
427
428
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
13
            vec_res.resize(col_left->size());
430
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
13
                              typename PrimitiveTypeTraits<PT>::CppType,
432
13
                              Op<PT>>::vector_constant(col_left->get_data(),
433
13
                                                       col_right->get_element(0), vec_res);
434
435
13
            block.replace_by_position(result, std::move(col_res));
436
13
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
18
        return Status::OK();
449
18
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
19
                            const ColumnPtr& col_right_ptr) const {
406
19
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
19
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
19
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
19
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
19
        DCHECK(!(left_is_const && right_is_const));
413
414
19
        if (!left_is_const && !right_is_const) {
415
13
            auto col_res = ColumnUInt8::create();
416
417
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
13
            vec_res.resize(col_left->get_data().size());
419
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
13
                              typename PrimitiveTypeTraits<PT>::CppType,
421
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
13
                                                     vec_res);
423
424
13
            block.replace_by_position(result, std::move(col_res));
425
13
        } else if (!left_is_const && right_is_const) {
426
6
            auto col_res = ColumnUInt8::create();
427
428
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
6
            vec_res.resize(col_left->size());
430
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
6
                              typename PrimitiveTypeTraits<PT>::CppType,
432
6
                              Op<PT>>::vector_constant(col_left->get_data(),
433
6
                                                       col_right->get_element(0), vec_res);
434
435
6
            block.replace_by_position(result, std::move(col_res));
436
6
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
19
        return Status::OK();
449
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
99
                            const ColumnPtr& col_right_ptr) const {
406
99
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
99
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
99
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
99
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
99
        DCHECK(!(left_is_const && right_is_const));
413
414
99
        if (!left_is_const && !right_is_const) {
415
95
            auto col_res = ColumnUInt8::create();
416
417
95
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
95
            vec_res.resize(col_left->get_data().size());
419
95
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
95
                              typename PrimitiveTypeTraits<PT>::CppType,
421
95
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
95
                                                     vec_res);
423
424
95
            block.replace_by_position(result, std::move(col_res));
425
95
        } else if (!left_is_const && right_is_const) {
426
4
            auto col_res = ColumnUInt8::create();
427
428
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
4
            vec_res.resize(col_left->size());
430
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
4
                              typename PrimitiveTypeTraits<PT>::CppType,
432
4
                              Op<PT>>::vector_constant(col_left->get_data(),
433
4
                                                       col_right->get_element(0), vec_res);
434
435
4
            block.replace_by_position(result, std::move(col_res));
436
4
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
99
        return Status::OK();
449
99
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
382
                            const ColumnPtr& col_right_ptr) const {
406
382
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
382
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
382
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
382
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
382
        DCHECK(!(left_is_const && right_is_const));
413
414
382
        if (!left_is_const && !right_is_const) {
415
93
            auto col_res = ColumnUInt8::create();
416
417
93
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
93
            vec_res.resize(col_left->get_data().size());
419
93
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
93
                              typename PrimitiveTypeTraits<PT>::CppType,
421
93
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
93
                                                     vec_res);
423
424
93
            block.replace_by_position(result, std::move(col_res));
425
289
        } else if (!left_is_const && right_is_const) {
426
289
            auto col_res = ColumnUInt8::create();
427
428
289
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
289
            vec_res.resize(col_left->size());
430
289
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
289
                              typename PrimitiveTypeTraits<PT>::CppType,
432
289
                              Op<PT>>::vector_constant(col_left->get_data(),
433
289
                                                       col_right->get_element(0), vec_res);
434
435
289
            block.replace_by_position(result, std::move(col_res));
436
289
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
382
        return Status::OK();
449
382
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4
                            const ColumnPtr& col_right_ptr) const {
406
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4
        DCHECK(!(left_is_const && right_is_const));
413
414
4
        if (!left_is_const && !right_is_const) {
415
4
            auto col_res = ColumnUInt8::create();
416
417
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
4
            vec_res.resize(col_left->get_data().size());
419
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
4
                              typename PrimitiveTypeTraits<PT>::CppType,
421
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
4
                                                     vec_res);
423
424
4
            block.replace_by_position(result, std::move(col_res));
425
4
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
4
        return Status::OK();
449
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
405
82
                            const ColumnPtr& col_right_ptr) const {
406
82
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
82
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
82
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
82
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
82
        DCHECK(!(left_is_const && right_is_const));
413
414
82
        if (!left_is_const && !right_is_const) {
415
39
            auto col_res = ColumnUInt8::create();
416
417
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
39
            vec_res.resize(col_left->get_data().size());
419
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
39
                              typename PrimitiveTypeTraits<PT>::CppType,
421
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
39
                                                     vec_res);
423
424
39
            block.replace_by_position(result, std::move(col_res));
425
43
        } else if (!left_is_const && right_is_const) {
426
43
            auto col_res = ColumnUInt8::create();
427
428
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
43
            vec_res.resize(col_left->size());
430
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
43
                              typename PrimitiveTypeTraits<PT>::CppType,
432
43
                              Op<PT>>::vector_constant(col_left->get_data(),
433
43
                                                       col_right->get_element(0), vec_res);
434
435
43
            block.replace_by_position(result, std::move(col_res));
436
43
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
82
        return Status::OK();
449
82
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2
                            const ColumnPtr& col_right_ptr) const {
406
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2
        DCHECK(!(left_is_const && right_is_const));
413
414
2
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
2
        } else if (!left_is_const && right_is_const) {
426
2
            auto col_res = ColumnUInt8::create();
427
428
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
2
            vec_res.resize(col_left->size());
430
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
2
                              typename PrimitiveTypeTraits<PT>::CppType,
432
2
                              Op<PT>>::vector_constant(col_left->get_data(),
433
2
                                                       col_right->get_element(0), vec_res);
434
435
2
            block.replace_by_position(result, std::move(col_res));
436
2
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2
        return Status::OK();
449
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
100
                            const ColumnPtr& col_right_ptr) const {
406
100
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
100
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
100
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
100
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
100
        DCHECK(!(left_is_const && right_is_const));
413
414
100
        if (!left_is_const && !right_is_const) {
415
56
            auto col_res = ColumnUInt8::create();
416
417
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
56
            vec_res.resize(col_left->get_data().size());
419
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
56
                              typename PrimitiveTypeTraits<PT>::CppType,
421
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
56
                                                     vec_res);
423
424
56
            block.replace_by_position(result, std::move(col_res));
425
56
        } else if (!left_is_const && right_is_const) {
426
44
            auto col_res = ColumnUInt8::create();
427
428
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
44
            vec_res.resize(col_left->size());
430
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
44
                              typename PrimitiveTypeTraits<PT>::CppType,
432
44
                              Op<PT>>::vector_constant(col_left->get_data(),
433
44
                                                       col_right->get_element(0), vec_res);
434
435
44
            block.replace_by_position(result, std::move(col_res));
436
44
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
100
        return Status::OK();
449
100
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
26
                            const ColumnPtr& col_right_ptr) const {
406
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
26
        DCHECK(!(left_is_const && right_is_const));
413
414
26
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
26
        } else if (!left_is_const && right_is_const) {
426
26
            auto col_res = ColumnUInt8::create();
427
428
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
26
            vec_res.resize(col_left->size());
430
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
26
                              typename PrimitiveTypeTraits<PT>::CppType,
432
26
                              Op<PT>>::vector_constant(col_left->get_data(),
433
26
                                                       col_right->get_element(0), vec_res);
434
435
26
            block.replace_by_position(result, std::move(col_res));
436
26
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
26
        return Status::OK();
449
26
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
3.64k
                            const ColumnPtr& col_right_ptr) const {
406
3.64k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
3.64k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
3.64k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
3.64k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
3.64k
        DCHECK(!(left_is_const && right_is_const));
413
414
3.64k
        if (!left_is_const && !right_is_const) {
415
786
            auto col_res = ColumnUInt8::create();
416
417
786
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
786
            vec_res.resize(col_left->get_data().size());
419
786
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
786
                              typename PrimitiveTypeTraits<PT>::CppType,
421
786
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
786
                                                     vec_res);
423
424
786
            block.replace_by_position(result, std::move(col_res));
425
2.85k
        } else if (!left_is_const && right_is_const) {
426
2.85k
            auto col_res = ColumnUInt8::create();
427
428
2.85k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
2.85k
            vec_res.resize(col_left->size());
430
2.85k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
2.85k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
2.85k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
2.85k
                                                       col_right->get_element(0), vec_res);
434
435
2.85k
            block.replace_by_position(result, std::move(col_res));
436
2.85k
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
3.64k
        return Status::OK();
449
3.64k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2.87k
                            const ColumnPtr& col_right_ptr) const {
406
2.87k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2.87k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2.87k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2.87k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2.87k
        DCHECK(!(left_is_const && right_is_const));
413
414
2.87k
        if (!left_is_const && !right_is_const) {
415
346
            auto col_res = ColumnUInt8::create();
416
417
346
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
346
            vec_res.resize(col_left->get_data().size());
419
346
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
346
                              typename PrimitiveTypeTraits<PT>::CppType,
421
346
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
346
                                                     vec_res);
423
424
346
            block.replace_by_position(result, std::move(col_res));
425
2.53k
        } else if (!left_is_const && right_is_const) {
426
1.93k
            auto col_res = ColumnUInt8::create();
427
428
1.93k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.93k
            vec_res.resize(col_left->size());
430
1.93k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.93k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.93k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.93k
                                                       col_right->get_element(0), vec_res);
434
435
1.93k
            block.replace_by_position(result, std::move(col_res));
436
1.93k
        } else if (left_is_const && !right_is_const) {
437
594
            auto col_res = ColumnUInt8::create();
438
439
594
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
594
            vec_res.resize(col_right->size());
441
594
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
594
                              typename PrimitiveTypeTraits<PT>::CppType,
443
594
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
594
                                                       col_right->get_data(), vec_res);
445
446
594
            block.replace_by_position(result, std::move(col_res));
447
594
        }
448
2.87k
        return Status::OK();
449
2.87k
    }
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
405
48
                            const ColumnPtr& col_right_ptr) const {
406
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
48
        DCHECK(!(left_is_const && right_is_const));
413
414
48
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
28
        } else if (!left_is_const && right_is_const) {
426
28
            auto col_res = ColumnUInt8::create();
427
428
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
28
            vec_res.resize(col_left->size());
430
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
28
                              typename PrimitiveTypeTraits<PT>::CppType,
432
28
                              Op<PT>>::vector_constant(col_left->get_data(),
433
28
                                                       col_right->get_element(0), vec_res);
434
435
28
            block.replace_by_position(result, std::move(col_res));
436
28
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
48
        return Status::OK();
449
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
60
                            const ColumnPtr& col_right_ptr) const {
406
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
60
        DCHECK(!(left_is_const && right_is_const));
413
414
60
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
40
        } else if (!left_is_const && right_is_const) {
426
40
            auto col_res = ColumnUInt8::create();
427
428
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
40
            vec_res.resize(col_left->size());
430
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
40
                              typename PrimitiveTypeTraits<PT>::CppType,
432
40
                              Op<PT>>::vector_constant(col_left->get_data(),
433
40
                                                       col_right->get_element(0), vec_res);
434
435
40
            block.replace_by_position(result, std::move(col_res));
436
40
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
60
        return Status::OK();
449
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
405
1.11k
                            const ColumnPtr& col_right_ptr) const {
406
1.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.11k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.11k
        if (!left_is_const && !right_is_const) {
415
953
            auto col_res = ColumnUInt8::create();
416
417
953
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
953
            vec_res.resize(col_left->get_data().size());
419
953
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
953
                              typename PrimitiveTypeTraits<PT>::CppType,
421
953
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
953
                                                     vec_res);
423
424
953
            block.replace_by_position(result, std::move(col_res));
425
953
        } else if (!left_is_const && right_is_const) {
426
159
            auto col_res = ColumnUInt8::create();
427
428
159
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
159
            vec_res.resize(col_left->size());
430
159
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
159
                              typename PrimitiveTypeTraits<PT>::CppType,
432
159
                              Op<PT>>::vector_constant(col_left->get_data(),
433
159
                                                       col_right->get_element(0), vec_res);
434
435
159
            block.replace_by_position(result, std::move(col_res));
436
159
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.11k
        return Status::OK();
449
1.11k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
94
                            const ColumnPtr& col_right_ptr) const {
406
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
94
        DCHECK(!(left_is_const && right_is_const));
413
414
94
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
94
        } else if (!left_is_const && right_is_const) {
426
94
            auto col_res = ColumnUInt8::create();
427
428
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
94
            vec_res.resize(col_left->size());
430
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
94
                              typename PrimitiveTypeTraits<PT>::CppType,
432
94
                              Op<PT>>::vector_constant(col_left->get_data(),
433
94
                                                       col_right->get_element(0), vec_res);
434
435
94
            block.replace_by_position(result, std::move(col_res));
436
94
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
94
        return Status::OK();
449
94
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
981
                            const ColumnPtr& col_right_ptr) const {
406
981
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
981
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
981
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
981
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
981
        DCHECK(!(left_is_const && right_is_const));
413
414
981
        if (!left_is_const && !right_is_const) {
415
38
            auto col_res = ColumnUInt8::create();
416
417
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
38
            vec_res.resize(col_left->get_data().size());
419
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
38
                              typename PrimitiveTypeTraits<PT>::CppType,
421
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
38
                                                     vec_res);
423
424
38
            block.replace_by_position(result, std::move(col_res));
425
943
        } else if (!left_is_const && right_is_const) {
426
670
            auto col_res = ColumnUInt8::create();
427
428
670
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
670
            vec_res.resize(col_left->size());
430
670
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
670
                              typename PrimitiveTypeTraits<PT>::CppType,
432
670
                              Op<PT>>::vector_constant(col_left->get_data(),
433
670
                                                       col_right->get_element(0), vec_res);
434
435
670
            block.replace_by_position(result, std::move(col_res));
436
670
        } else if (left_is_const && !right_is_const) {
437
273
            auto col_res = ColumnUInt8::create();
438
439
273
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
273
            vec_res.resize(col_right->size());
441
273
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
273
                              typename PrimitiveTypeTraits<PT>::CppType,
443
273
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
273
                                                       col_right->get_data(), vec_res);
445
446
273
            block.replace_by_position(result, std::move(col_res));
447
273
        }
448
981
        return Status::OK();
449
981
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.58k
                            const ColumnPtr& col_right_ptr) const {
406
1.58k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.58k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.58k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.58k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.58k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.58k
        if (!left_is_const && !right_is_const) {
415
110
            auto col_res = ColumnUInt8::create();
416
417
110
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
110
            vec_res.resize(col_left->get_data().size());
419
110
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
110
                              typename PrimitiveTypeTraits<PT>::CppType,
421
110
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
110
                                                     vec_res);
423
424
110
            block.replace_by_position(result, std::move(col_res));
425
1.47k
        } else if (!left_is_const && right_is_const) {
426
1.08k
            auto col_res = ColumnUInt8::create();
427
428
1.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.08k
            vec_res.resize(col_left->size());
430
1.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.08k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.08k
                                                       col_right->get_element(0), vec_res);
434
435
1.08k
            block.replace_by_position(result, std::move(col_res));
436
1.08k
        } else if (left_is_const && !right_is_const) {
437
389
            auto col_res = ColumnUInt8::create();
438
439
389
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
389
            vec_res.resize(col_right->size());
441
389
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
389
                              typename PrimitiveTypeTraits<PT>::CppType,
443
389
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
389
                                                       col_right->get_data(), vec_res);
445
446
389
            block.replace_by_position(result, std::move(col_res));
447
389
        }
448
1.58k
        return Status::OK();
449
1.58k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
28.2k
                            const ColumnPtr& col_right_ptr) const {
406
28.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
28.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
28.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
28.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
28.2k
        DCHECK(!(left_is_const && right_is_const));
413
414
28.2k
        if (!left_is_const && !right_is_const) {
415
47
            auto col_res = ColumnUInt8::create();
416
417
47
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
47
            vec_res.resize(col_left->get_data().size());
419
47
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
47
                              typename PrimitiveTypeTraits<PT>::CppType,
421
47
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
47
                                                     vec_res);
423
424
47
            block.replace_by_position(result, std::move(col_res));
425
28.2k
        } else if (!left_is_const && right_is_const) {
426
24.9k
            auto col_res = ColumnUInt8::create();
427
428
24.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
24.9k
            vec_res.resize(col_left->size());
430
24.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
24.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
24.9k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
24.9k
                                                       col_right->get_element(0), vec_res);
434
435
24.9k
            block.replace_by_position(result, std::move(col_res));
436
24.9k
        } else if (left_is_const && !right_is_const) {
437
3.33k
            auto col_res = ColumnUInt8::create();
438
439
3.33k
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
3.33k
            vec_res.resize(col_right->size());
441
3.33k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
3.33k
                              typename PrimitiveTypeTraits<PT>::CppType,
443
3.33k
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
3.33k
                                                       col_right->get_data(), vec_res);
445
446
3.33k
            block.replace_by_position(result, std::move(col_res));
447
3.33k
        }
448
28.2k
        return Status::OK();
449
28.2k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
13.9k
                            const ColumnPtr& col_right_ptr) const {
406
13.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
13.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
13.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
13.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
13.9k
        DCHECK(!(left_is_const && right_is_const));
413
414
13.9k
        if (!left_is_const && !right_is_const) {
415
64
            auto col_res = ColumnUInt8::create();
416
417
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
64
            vec_res.resize(col_left->get_data().size());
419
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
64
                              typename PrimitiveTypeTraits<PT>::CppType,
421
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
64
                                                     vec_res);
423
424
64
            block.replace_by_position(result, std::move(col_res));
425
13.8k
        } else if (!left_is_const && right_is_const) {
426
13.3k
            auto col_res = ColumnUInt8::create();
427
428
13.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
13.3k
            vec_res.resize(col_left->size());
430
13.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
13.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
13.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
13.3k
                                                       col_right->get_element(0), vec_res);
434
435
13.3k
            block.replace_by_position(result, std::move(col_res));
436
13.3k
        } else if (left_is_const && !right_is_const) {
437
520
            auto col_res = ColumnUInt8::create();
438
439
520
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
520
            vec_res.resize(col_right->size());
441
520
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
520
                              typename PrimitiveTypeTraits<PT>::CppType,
443
520
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
520
                                                       col_right->get_data(), vec_res);
445
446
520
            block.replace_by_position(result, std::move(col_res));
447
520
        }
448
13.9k
        return Status::OK();
449
13.9k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
247
                            const ColumnPtr& col_right_ptr) const {
406
247
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
247
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
247
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
247
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
247
        DCHECK(!(left_is_const && right_is_const));
413
414
247
        if (!left_is_const && !right_is_const) {
415
2
            auto col_res = ColumnUInt8::create();
416
417
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
2
            vec_res.resize(col_left->get_data().size());
419
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
2
                              typename PrimitiveTypeTraits<PT>::CppType,
421
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
2
                                                     vec_res);
423
424
2
            block.replace_by_position(result, std::move(col_res));
425
245
        } else if (!left_is_const && right_is_const) {
426
201
            auto col_res = ColumnUInt8::create();
427
428
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
201
            vec_res.resize(col_left->size());
430
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
201
                              typename PrimitiveTypeTraits<PT>::CppType,
432
201
                              Op<PT>>::vector_constant(col_left->get_data(),
433
201
                                                       col_right->get_element(0), vec_res);
434
435
201
            block.replace_by_position(result, std::move(col_res));
436
201
        } else if (left_is_const && !right_is_const) {
437
44
            auto col_res = ColumnUInt8::create();
438
439
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
44
            vec_res.resize(col_right->size());
441
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
44
                              typename PrimitiveTypeTraits<PT>::CppType,
443
44
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
44
                                                       col_right->get_data(), vec_res);
445
446
44
            block.replace_by_position(result, std::move(col_res));
447
44
        }
448
247
        return Status::OK();
449
247
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4
                            const ColumnPtr& col_right_ptr) const {
406
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4
        DCHECK(!(left_is_const && right_is_const));
413
414
4
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
3
        } else if (!left_is_const && right_is_const) {
426
3
            auto col_res = ColumnUInt8::create();
427
428
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
3
            vec_res.resize(col_left->size());
430
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
3
                              typename PrimitiveTypeTraits<PT>::CppType,
432
3
                              Op<PT>>::vector_constant(col_left->get_data(),
433
3
                                                       col_right->get_element(0), vec_res);
434
435
3
            block.replace_by_position(result, std::move(col_res));
436
3
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
4
        return Status::OK();
449
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
236
                            const ColumnPtr& col_right_ptr) const {
406
236
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
236
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
236
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
236
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
236
        DCHECK(!(left_is_const && right_is_const));
413
414
236
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
216
        } else if (!left_is_const && right_is_const) {
426
216
            auto col_res = ColumnUInt8::create();
427
428
216
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
216
            vec_res.resize(col_left->size());
430
216
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
216
                              typename PrimitiveTypeTraits<PT>::CppType,
432
216
                              Op<PT>>::vector_constant(col_left->get_data(),
433
216
                                                       col_right->get_element(0), vec_res);
434
435
216
            block.replace_by_position(result, std::move(col_res));
436
216
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
236
        return Status::OK();
449
236
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2.47k
                            const ColumnPtr& col_right_ptr) const {
406
2.47k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2.47k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2.47k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2.47k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2.47k
        DCHECK(!(left_is_const && right_is_const));
413
414
2.47k
        if (!left_is_const && !right_is_const) {
415
27
            auto col_res = ColumnUInt8::create();
416
417
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
27
            vec_res.resize(col_left->get_data().size());
419
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
27
                              typename PrimitiveTypeTraits<PT>::CppType,
421
27
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
27
                                                     vec_res);
423
424
27
            block.replace_by_position(result, std::move(col_res));
425
2.45k
        } else if (!left_is_const && right_is_const) {
426
2.45k
            auto col_res = ColumnUInt8::create();
427
428
2.45k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
2.45k
            vec_res.resize(col_left->size());
430
2.45k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
2.45k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
2.45k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
2.45k
                                                       col_right->get_element(0), vec_res);
434
435
2.45k
            block.replace_by_position(result, std::move(col_res));
436
2.45k
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2.47k
        return Status::OK();
449
2.47k
    }
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
405
204
                            const ColumnPtr& col_right_ptr) const {
406
204
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
204
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
204
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
204
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
204
        DCHECK(!(left_is_const && right_is_const));
413
414
204
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
204
        } else if (!left_is_const && right_is_const) {
426
204
            auto col_res = ColumnUInt8::create();
427
428
204
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
204
            vec_res.resize(col_left->size());
430
204
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
204
                              typename PrimitiveTypeTraits<PT>::CppType,
432
204
                              Op<PT>>::vector_constant(col_left->get_data(),
433
204
                                                       col_right->get_element(0), vec_res);
434
435
204
            block.replace_by_position(result, std::move(col_res));
436
204
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
204
        return Status::OK();
449
204
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.59k
                            const ColumnPtr& col_right_ptr) const {
406
1.59k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.59k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.59k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.59k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.59k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.59k
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1.59k
        } else if (!left_is_const && right_is_const) {
426
1.58k
            auto col_res = ColumnUInt8::create();
427
428
1.58k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.58k
            vec_res.resize(col_left->size());
430
1.58k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.58k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.58k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.58k
                                                       col_right->get_element(0), vec_res);
434
435
1.58k
            block.replace_by_position(result, std::move(col_res));
436
1.58k
        } else if (left_is_const && !right_is_const) {
437
6
            auto col_res = ColumnUInt8::create();
438
439
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
6
            vec_res.resize(col_right->size());
441
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
6
                              typename PrimitiveTypeTraits<PT>::CppType,
443
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
6
                                                       col_right->get_data(), vec_res);
445
446
6
            block.replace_by_position(result, std::move(col_res));
447
6
        }
448
1.59k
        return Status::OK();
449
1.59k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
778
                            const ColumnPtr& col_right_ptr) const {
406
778
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
778
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
778
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
778
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
778
        DCHECK(!(left_is_const && right_is_const));
413
414
778
        if (!left_is_const && !right_is_const) {
415
6
            auto col_res = ColumnUInt8::create();
416
417
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
6
            vec_res.resize(col_left->get_data().size());
419
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
6
                              typename PrimitiveTypeTraits<PT>::CppType,
421
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
6
                                                     vec_res);
423
424
6
            block.replace_by_position(result, std::move(col_res));
425
772
        } else if (!left_is_const && right_is_const) {
426
772
            auto col_res = ColumnUInt8::create();
427
428
772
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
772
            vec_res.resize(col_left->size());
430
772
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
772
                              typename PrimitiveTypeTraits<PT>::CppType,
432
772
                              Op<PT>>::vector_constant(col_left->get_data(),
433
772
                                                       col_right->get_element(0), vec_res);
434
435
772
            block.replace_by_position(result, std::move(col_res));
436
772
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
778
        return Status::OK();
449
778
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
60
                            const ColumnPtr& col_right_ptr) const {
406
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
60
        DCHECK(!(left_is_const && right_is_const));
413
414
60
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
60
        } else if (!left_is_const && right_is_const) {
426
60
            auto col_res = ColumnUInt8::create();
427
428
60
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
60
            vec_res.resize(col_left->size());
430
60
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
60
                              typename PrimitiveTypeTraits<PT>::CppType,
432
60
                              Op<PT>>::vector_constant(col_left->get_data(),
433
60
                                                       col_right->get_element(0), vec_res);
434
435
60
            block.replace_by_position(result, std::move(col_res));
436
60
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
60
        return Status::OK();
449
60
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
70
                            const ColumnPtr& col_right_ptr) const {
406
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
70
        DCHECK(!(left_is_const && right_is_const));
413
414
70
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
70
        } else if (!left_is_const && right_is_const) {
426
70
            auto col_res = ColumnUInt8::create();
427
428
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
70
            vec_res.resize(col_left->size());
430
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
70
                              typename PrimitiveTypeTraits<PT>::CppType,
432
70
                              Op<PT>>::vector_constant(col_left->get_data(),
433
70
                                                       col_right->get_element(0), vec_res);
434
435
70
            block.replace_by_position(result, std::move(col_res));
436
70
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
70
        return Status::OK();
449
70
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
13.4k
                            const ColumnPtr& col_right_ptr) const {
406
13.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
13.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
13.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
13.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
13.4k
        DCHECK(!(left_is_const && right_is_const));
413
414
13.4k
        if (!left_is_const && !right_is_const) {
415
3
            auto col_res = ColumnUInt8::create();
416
417
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
3
            vec_res.resize(col_left->get_data().size());
419
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
3
                              typename PrimitiveTypeTraits<PT>::CppType,
421
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
3
                                                     vec_res);
423
424
3
            block.replace_by_position(result, std::move(col_res));
425
13.4k
        } else if (!left_is_const && right_is_const) {
426
13.4k
            auto col_res = ColumnUInt8::create();
427
428
13.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
13.4k
            vec_res.resize(col_left->size());
430
13.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
13.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
13.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
13.4k
                                                       col_right->get_element(0), vec_res);
434
435
13.4k
            block.replace_by_position(result, std::move(col_res));
436
13.4k
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
13.4k
        return Status::OK();
449
13.4k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
866
                            const ColumnPtr& col_right_ptr) const {
406
866
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
866
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
866
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
866
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
866
        DCHECK(!(left_is_const && right_is_const));
413
414
866
        if (!left_is_const && !right_is_const) {
415
8
            auto col_res = ColumnUInt8::create();
416
417
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
8
            vec_res.resize(col_left->get_data().size());
419
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
8
                              typename PrimitiveTypeTraits<PT>::CppType,
421
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
8
                                                     vec_res);
423
424
8
            block.replace_by_position(result, std::move(col_res));
425
858
        } else if (!left_is_const && right_is_const) {
426
858
            auto col_res = ColumnUInt8::create();
427
428
858
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
858
            vec_res.resize(col_left->size());
430
858
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
858
                              typename PrimitiveTypeTraits<PT>::CppType,
432
858
                              Op<PT>>::vector_constant(col_left->get_data(),
433
858
                                                       col_right->get_element(0), vec_res);
434
435
858
            block.replace_by_position(result, std::move(col_res));
436
858
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
866
        return Status::OK();
449
866
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
56
                            const ColumnPtr& col_right_ptr) const {
406
56
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
56
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
56
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
56
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
56
        DCHECK(!(left_is_const && right_is_const));
413
414
56
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
56
        } else if (!left_is_const && right_is_const) {
426
54
            auto col_res = ColumnUInt8::create();
427
428
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
54
            vec_res.resize(col_left->size());
430
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
54
                              typename PrimitiveTypeTraits<PT>::CppType,
432
54
                              Op<PT>>::vector_constant(col_left->get_data(),
433
54
                                                       col_right->get_element(0), vec_res);
434
435
54
            block.replace_by_position(result, std::move(col_res));
436
54
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
56
        return Status::OK();
449
56
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
11
                            const ColumnPtr& col_right_ptr) const {
406
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
11
        DCHECK(!(left_is_const && right_is_const));
413
414
11
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
10
        } else if (!left_is_const && right_is_const) {
426
10
            auto col_res = ColumnUInt8::create();
427
428
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
10
            vec_res.resize(col_left->size());
430
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
10
                              typename PrimitiveTypeTraits<PT>::CppType,
432
10
                              Op<PT>>::vector_constant(col_left->get_data(),
433
10
                                                       col_right->get_element(0), vec_res);
434
435
10
            block.replace_by_position(result, std::move(col_res));
436
10
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
11
        return Status::OK();
449
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
228
                            const ColumnPtr& col_right_ptr) const {
406
228
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
228
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
228
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
228
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
228
        DCHECK(!(left_is_const && right_is_const));
413
414
228
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
208
        } else if (!left_is_const && right_is_const) {
426
208
            auto col_res = ColumnUInt8::create();
427
428
208
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
208
            vec_res.resize(col_left->size());
430
208
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
208
                              typename PrimitiveTypeTraits<PT>::CppType,
432
208
                              Op<PT>>::vector_constant(col_left->get_data(),
433
208
                                                       col_right->get_element(0), vec_res);
434
435
208
            block.replace_by_position(result, std::move(col_res));
436
208
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
228
        return Status::OK();
449
228
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
135
                            const ColumnPtr& col_right_ptr) const {
406
135
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
135
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
135
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
135
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
135
        DCHECK(!(left_is_const && right_is_const));
413
414
135
        if (!left_is_const && !right_is_const) {
415
24
            auto col_res = ColumnUInt8::create();
416
417
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
24
            vec_res.resize(col_left->get_data().size());
419
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
24
                              typename PrimitiveTypeTraits<PT>::CppType,
421
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
24
                                                     vec_res);
423
424
24
            block.replace_by_position(result, std::move(col_res));
425
111
        } else if (!left_is_const && right_is_const) {
426
111
            auto col_res = ColumnUInt8::create();
427
428
111
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
111
            vec_res.resize(col_left->size());
430
111
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
111
                              typename PrimitiveTypeTraits<PT>::CppType,
432
111
                              Op<PT>>::vector_constant(col_left->get_data(),
433
111
                                                       col_right->get_element(0), vec_res);
434
435
111
            block.replace_by_position(result, std::move(col_res));
436
111
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
135
        return Status::OK();
449
135
    }
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
405
101
                            const ColumnPtr& col_right_ptr) const {
406
101
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
101
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
101
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
101
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
101
        DCHECK(!(left_is_const && right_is_const));
413
414
101
        if (!left_is_const && !right_is_const) {
415
101
            auto col_res = ColumnUInt8::create();
416
417
101
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
101
            vec_res.resize(col_left->get_data().size());
419
101
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
101
                              typename PrimitiveTypeTraits<PT>::CppType,
421
101
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
101
                                                     vec_res);
423
424
101
            block.replace_by_position(result, std::move(col_res));
425
101
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
101
        return Status::OK();
449
101
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2.20k
                            const ColumnPtr& col_right_ptr) const {
406
2.20k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2.20k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2.20k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2.20k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2.20k
        DCHECK(!(left_is_const && right_is_const));
413
414
2.20k
        if (!left_is_const && !right_is_const) {
415
1.71k
            auto col_res = ColumnUInt8::create();
416
417
1.71k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1.71k
            vec_res.resize(col_left->get_data().size());
419
1.71k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1.71k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1.71k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1.71k
                                                     vec_res);
423
424
1.71k
            block.replace_by_position(result, std::move(col_res));
425
1.71k
        } else if (!left_is_const && right_is_const) {
426
488
            auto col_res = ColumnUInt8::create();
427
428
488
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
488
            vec_res.resize(col_left->size());
430
488
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
488
                              typename PrimitiveTypeTraits<PT>::CppType,
432
488
                              Op<PT>>::vector_constant(col_left->get_data(),
433
488
                                                       col_right->get_element(0), vec_res);
434
435
488
            block.replace_by_position(result, std::move(col_res));
436
488
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2.20k
        return Status::OK();
449
2.20k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
651
                            const ColumnPtr& col_right_ptr) const {
406
651
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
651
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
651
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
651
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
651
        DCHECK(!(left_is_const && right_is_const));
413
414
651
        if (!left_is_const && !right_is_const) {
415
278
            auto col_res = ColumnUInt8::create();
416
417
278
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
278
            vec_res.resize(col_left->get_data().size());
419
278
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
278
                              typename PrimitiveTypeTraits<PT>::CppType,
421
278
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
278
                                                     vec_res);
423
424
278
            block.replace_by_position(result, std::move(col_res));
425
373
        } else if (!left_is_const && right_is_const) {
426
373
            auto col_res = ColumnUInt8::create();
427
428
373
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
373
            vec_res.resize(col_left->size());
430
373
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
373
                              typename PrimitiveTypeTraits<PT>::CppType,
432
373
                              Op<PT>>::vector_constant(col_left->get_data(),
433
373
                                                       col_right->get_element(0), vec_res);
434
435
373
            block.replace_by_position(result, std::move(col_res));
436
373
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
651
        return Status::OK();
449
651
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2
                            const ColumnPtr& col_right_ptr) const {
406
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2
        DCHECK(!(left_is_const && right_is_const));
413
414
2
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
1
            auto col_res = ColumnUInt8::create();
427
428
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1
            vec_res.resize(col_left->size());
430
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1
                                                       col_right->get_element(0), vec_res);
434
435
1
            block.replace_by_position(result, std::move(col_res));
436
1
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2
        return Status::OK();
449
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.51k
                            const ColumnPtr& col_right_ptr) const {
406
1.51k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.51k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.51k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.51k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.51k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.51k
        if (!left_is_const && !right_is_const) {
415
146
            auto col_res = ColumnUInt8::create();
416
417
146
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
146
            vec_res.resize(col_left->get_data().size());
419
146
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
146
                              typename PrimitiveTypeTraits<PT>::CppType,
421
146
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
146
                                                     vec_res);
423
424
146
            block.replace_by_position(result, std::move(col_res));
425
1.36k
        } else if (!left_is_const && right_is_const) {
426
908
            auto col_res = ColumnUInt8::create();
427
428
908
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
908
            vec_res.resize(col_left->size());
430
908
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
908
                              typename PrimitiveTypeTraits<PT>::CppType,
432
908
                              Op<PT>>::vector_constant(col_left->get_data(),
433
908
                                                       col_right->get_element(0), vec_res);
434
435
908
            block.replace_by_position(result, std::move(col_res));
436
908
        } else if (left_is_const && !right_is_const) {
437
456
            auto col_res = ColumnUInt8::create();
438
439
456
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
456
            vec_res.resize(col_right->size());
441
456
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
456
                              typename PrimitiveTypeTraits<PT>::CppType,
443
456
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
456
                                                       col_right->get_data(), vec_res);
445
446
456
            block.replace_by_position(result, std::move(col_res));
447
456
        }
448
1.51k
        return Status::OK();
449
1.51k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
401
                            const ColumnPtr& col_right_ptr) const {
406
401
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
401
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
401
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
401
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
401
        DCHECK(!(left_is_const && right_is_const));
413
414
401
        if (!left_is_const && !right_is_const) {
415
133
            auto col_res = ColumnUInt8::create();
416
417
133
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
133
            vec_res.resize(col_left->get_data().size());
419
133
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
133
                              typename PrimitiveTypeTraits<PT>::CppType,
421
133
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
133
                                                     vec_res);
423
424
133
            block.replace_by_position(result, std::move(col_res));
425
268
        } else if (!left_is_const && right_is_const) {
426
268
            auto col_res = ColumnUInt8::create();
427
428
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
268
            vec_res.resize(col_left->size());
430
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
268
                              typename PrimitiveTypeTraits<PT>::CppType,
432
268
                              Op<PT>>::vector_constant(col_left->get_data(),
433
268
                                                       col_right->get_element(0), vec_res);
434
435
268
            block.replace_by_position(result, std::move(col_res));
436
268
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
401
        return Status::OK();
449
401
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
6.25k
                            const ColumnPtr& col_right_ptr) const {
406
6.25k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
6.25k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
6.25k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
6.25k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
6.25k
        DCHECK(!(left_is_const && right_is_const));
413
414
6.25k
        if (!left_is_const && !right_is_const) {
415
168
            auto col_res = ColumnUInt8::create();
416
417
168
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
168
            vec_res.resize(col_left->get_data().size());
419
168
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
168
                              typename PrimitiveTypeTraits<PT>::CppType,
421
168
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
168
                                                     vec_res);
423
424
168
            block.replace_by_position(result, std::move(col_res));
425
6.08k
        } else if (!left_is_const && right_is_const) {
426
5.96k
            auto col_res = ColumnUInt8::create();
427
428
5.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
5.96k
            vec_res.resize(col_left->size());
430
5.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
5.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
5.96k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
5.96k
                                                       col_right->get_element(0), vec_res);
434
435
5.96k
            block.replace_by_position(result, std::move(col_res));
436
5.96k
        } else if (left_is_const && !right_is_const) {
437
119
            auto col_res = ColumnUInt8::create();
438
439
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
119
            vec_res.resize(col_right->size());
441
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
119
                              typename PrimitiveTypeTraits<PT>::CppType,
443
119
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
119
                                                       col_right->get_data(), vec_res);
445
446
119
            block.replace_by_position(result, std::move(col_res));
447
119
        }
448
6.25k
        return Status::OK();
449
6.25k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.65k
                            const ColumnPtr& col_right_ptr) const {
406
1.65k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.65k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.65k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.65k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.65k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.65k
        if (!left_is_const && !right_is_const) {
415
199
            auto col_res = ColumnUInt8::create();
416
417
199
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
199
            vec_res.resize(col_left->get_data().size());
419
199
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
199
                              typename PrimitiveTypeTraits<PT>::CppType,
421
199
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
199
                                                     vec_res);
423
424
199
            block.replace_by_position(result, std::move(col_res));
425
1.45k
        } else if (!left_is_const && right_is_const) {
426
1.39k
            auto col_res = ColumnUInt8::create();
427
428
1.39k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.39k
            vec_res.resize(col_left->size());
430
1.39k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.39k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.39k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.39k
                                                       col_right->get_element(0), vec_res);
434
435
1.39k
            block.replace_by_position(result, std::move(col_res));
436
1.39k
        } else if (left_is_const && !right_is_const) {
437
58
            auto col_res = ColumnUInt8::create();
438
439
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
58
            vec_res.resize(col_right->size());
441
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
58
                              typename PrimitiveTypeTraits<PT>::CppType,
443
58
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
58
                                                       col_right->get_data(), vec_res);
445
446
58
            block.replace_by_position(result, std::move(col_res));
447
58
        }
448
1.65k
        return Status::OK();
449
1.65k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
284
                            const ColumnPtr& col_right_ptr) const {
406
284
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
284
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
284
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
284
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
284
        DCHECK(!(left_is_const && right_is_const));
413
414
284
        if (!left_is_const && !right_is_const) {
415
144
            auto col_res = ColumnUInt8::create();
416
417
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
144
            vec_res.resize(col_left->get_data().size());
419
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
144
                              typename PrimitiveTypeTraits<PT>::CppType,
421
144
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
144
                                                     vec_res);
423
424
144
            block.replace_by_position(result, std::move(col_res));
425
144
        } else if (!left_is_const && right_is_const) {
426
61
            auto col_res = ColumnUInt8::create();
427
428
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
61
            vec_res.resize(col_left->size());
430
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
61
                              typename PrimitiveTypeTraits<PT>::CppType,
432
61
                              Op<PT>>::vector_constant(col_left->get_data(),
433
61
                                                       col_right->get_element(0), vec_res);
434
435
61
            block.replace_by_position(result, std::move(col_res));
436
80
        } else if (left_is_const && !right_is_const) {
437
80
            auto col_res = ColumnUInt8::create();
438
439
80
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
80
            vec_res.resize(col_right->size());
441
80
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
80
                              typename PrimitiveTypeTraits<PT>::CppType,
443
80
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
80
                                                       col_right->get_data(), vec_res);
445
446
80
            block.replace_by_position(result, std::move(col_res));
447
80
        }
448
284
        return Status::OK();
449
284
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
18
                            const ColumnPtr& col_right_ptr) const {
406
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
18
        DCHECK(!(left_is_const && right_is_const));
413
414
18
        if (!left_is_const && !right_is_const) {
415
16
            auto col_res = ColumnUInt8::create();
416
417
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
16
            vec_res.resize(col_left->get_data().size());
419
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
16
                              typename PrimitiveTypeTraits<PT>::CppType,
421
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
16
                                                     vec_res);
423
424
16
            block.replace_by_position(result, std::move(col_res));
425
16
        } else if (!left_is_const && right_is_const) {
426
2
            auto col_res = ColumnUInt8::create();
427
428
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
2
            vec_res.resize(col_left->size());
430
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
2
                              typename PrimitiveTypeTraits<PT>::CppType,
432
2
                              Op<PT>>::vector_constant(col_left->get_data(),
433
2
                                                       col_right->get_element(0), vec_res);
434
435
2
            block.replace_by_position(result, std::move(col_res));
436
2
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
18
        return Status::OK();
449
18
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
16
                            const ColumnPtr& col_right_ptr) const {
406
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
16
        DCHECK(!(left_is_const && right_is_const));
413
414
16
        if (!left_is_const && !right_is_const) {
415
16
            auto col_res = ColumnUInt8::create();
416
417
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
16
            vec_res.resize(col_left->get_data().size());
419
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
16
                              typename PrimitiveTypeTraits<PT>::CppType,
421
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
16
                                                     vec_res);
423
424
16
            block.replace_by_position(result, std::move(col_res));
425
16
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
16
        return Status::OK();
449
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
176
                            const ColumnPtr& col_right_ptr) const {
406
176
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
176
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
176
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
176
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
176
        DCHECK(!(left_is_const && right_is_const));
413
414
176
        if (!left_is_const && !right_is_const) {
415
150
            auto col_res = ColumnUInt8::create();
416
417
150
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
150
            vec_res.resize(col_left->get_data().size());
419
150
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
150
                              typename PrimitiveTypeTraits<PT>::CppType,
421
150
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
150
                                                     vec_res);
423
424
150
            block.replace_by_position(result, std::move(col_res));
425
150
        } else if (!left_is_const && right_is_const) {
426
26
            auto col_res = ColumnUInt8::create();
427
428
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
26
            vec_res.resize(col_left->size());
430
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
26
                              typename PrimitiveTypeTraits<PT>::CppType,
432
26
                              Op<PT>>::vector_constant(col_left->get_data(),
433
26
                                                       col_right->get_element(0), vec_res);
434
435
26
            block.replace_by_position(result, std::move(col_res));
436
26
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
176
        return Status::OK();
449
176
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
373
                            const ColumnPtr& col_right_ptr) const {
406
373
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
373
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
373
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
373
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
373
        DCHECK(!(left_is_const && right_is_const));
413
414
373
        if (!left_is_const && !right_is_const) {
415
150
            auto col_res = ColumnUInt8::create();
416
417
150
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
150
            vec_res.resize(col_left->get_data().size());
419
150
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
150
                              typename PrimitiveTypeTraits<PT>::CppType,
421
150
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
150
                                                     vec_res);
423
424
150
            block.replace_by_position(result, std::move(col_res));
425
223
        } else if (!left_is_const && right_is_const) {
426
223
            auto col_res = ColumnUInt8::create();
427
428
223
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
223
            vec_res.resize(col_left->size());
430
223
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
223
                              typename PrimitiveTypeTraits<PT>::CppType,
432
223
                              Op<PT>>::vector_constant(col_left->get_data(),
433
223
                                                       col_right->get_element(0), vec_res);
434
435
223
            block.replace_by_position(result, std::move(col_res));
436
223
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
373
        return Status::OK();
449
373
    }
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
405
421
                            const ColumnPtr& col_right_ptr) const {
406
421
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
421
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
421
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
421
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
421
        DCHECK(!(left_is_const && right_is_const));
413
414
421
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
421
        } else if (!left_is_const && right_is_const) {
426
421
            auto col_res = ColumnUInt8::create();
427
428
421
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
421
            vec_res.resize(col_left->size());
430
421
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
421
                              typename PrimitiveTypeTraits<PT>::CppType,
432
421
                              Op<PT>>::vector_constant(col_left->get_data(),
433
421
                                                       col_right->get_element(0), vec_res);
434
435
421
            block.replace_by_position(result, std::move(col_res));
436
421
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
421
        return Status::OK();
449
421
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4.75k
                            const ColumnPtr& col_right_ptr) const {
406
4.75k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4.75k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4.75k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4.75k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4.75k
        DCHECK(!(left_is_const && right_is_const));
413
414
4.75k
        if (!left_is_const && !right_is_const) {
415
416
            auto col_res = ColumnUInt8::create();
416
417
416
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
416
            vec_res.resize(col_left->get_data().size());
419
416
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
416
                              typename PrimitiveTypeTraits<PT>::CppType,
421
416
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
416
                                                     vec_res);
423
424
416
            block.replace_by_position(result, std::move(col_res));
425
4.33k
        } else if (!left_is_const && right_is_const) {
426
4.33k
            auto col_res = ColumnUInt8::create();
427
428
4.33k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
4.33k
            vec_res.resize(col_left->size());
430
4.33k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
4.33k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
4.33k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
4.33k
                                                       col_right->get_element(0), vec_res);
434
435
4.33k
            block.replace_by_position(result, std::move(col_res));
436
4.33k
        } else if (left_is_const && !right_is_const) {
437
5
            auto col_res = ColumnUInt8::create();
438
439
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
5
            vec_res.resize(col_right->size());
441
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
5
                              typename PrimitiveTypeTraits<PT>::CppType,
443
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
5
                                                       col_right->get_data(), vec_res);
445
446
5
            block.replace_by_position(result, std::move(col_res));
447
5
        }
448
4.75k
        return Status::OK();
449
4.75k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
615
                            const ColumnPtr& col_right_ptr) const {
406
615
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
615
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
615
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
615
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
615
        DCHECK(!(left_is_const && right_is_const));
413
414
615
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
615
        } else if (!left_is_const && right_is_const) {
426
615
            auto col_res = ColumnUInt8::create();
427
428
615
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
615
            vec_res.resize(col_left->size());
430
615
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
615
                              typename PrimitiveTypeTraits<PT>::CppType,
432
615
                              Op<PT>>::vector_constant(col_left->get_data(),
433
615
                                                       col_right->get_element(0), vec_res);
434
435
615
            block.replace_by_position(result, std::move(col_res));
436
615
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
615
        return Status::OK();
449
615
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
284
                            const ColumnPtr& col_right_ptr) const {
406
284
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
284
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
284
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
284
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
284
        DCHECK(!(left_is_const && right_is_const));
413
414
284
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
283
        } else if (!left_is_const && right_is_const) {
426
283
            auto col_res = ColumnUInt8::create();
427
428
283
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
283
            vec_res.resize(col_left->size());
430
283
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
283
                              typename PrimitiveTypeTraits<PT>::CppType,
432
283
                              Op<PT>>::vector_constant(col_left->get_data(),
433
283
                                                       col_right->get_element(0), vec_res);
434
435
283
            block.replace_by_position(result, std::move(col_res));
436
283
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
284
        return Status::OK();
449
284
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
277
                            const ColumnPtr& col_right_ptr) const {
406
277
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
277
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
277
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
277
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
277
        DCHECK(!(left_is_const && right_is_const));
413
414
277
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
277
        } else if (!left_is_const && right_is_const) {
426
277
            auto col_res = ColumnUInt8::create();
427
428
277
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
277
            vec_res.resize(col_left->size());
430
277
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
277
                              typename PrimitiveTypeTraits<PT>::CppType,
432
277
                              Op<PT>>::vector_constant(col_left->get_data(),
433
277
                                                       col_right->get_element(0), vec_res);
434
435
277
            block.replace_by_position(result, std::move(col_res));
436
277
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
277
        return Status::OK();
449
277
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
21.4k
                            const ColumnPtr& col_right_ptr) const {
406
21.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
21.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
21.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
21.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
21.4k
        DCHECK(!(left_is_const && right_is_const));
413
414
21.4k
        if (!left_is_const && !right_is_const) {
415
23
            auto col_res = ColumnUInt8::create();
416
417
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
23
            vec_res.resize(col_left->get_data().size());
419
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
23
                              typename PrimitiveTypeTraits<PT>::CppType,
421
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
23
                                                     vec_res);
423
424
23
            block.replace_by_position(result, std::move(col_res));
425
21.3k
        } else if (!left_is_const && right_is_const) {
426
21.2k
            auto col_res = ColumnUInt8::create();
427
428
21.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
21.2k
            vec_res.resize(col_left->size());
430
21.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
21.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
21.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
21.2k
                                                       col_right->get_element(0), vec_res);
434
435
21.2k
            block.replace_by_position(result, std::move(col_res));
436
21.2k
        } else if (left_is_const && !right_is_const) {
437
133
            auto col_res = ColumnUInt8::create();
438
439
133
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
133
            vec_res.resize(col_right->size());
441
133
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
133
                              typename PrimitiveTypeTraits<PT>::CppType,
443
133
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
133
                                                       col_right->get_data(), vec_res);
445
446
133
            block.replace_by_position(result, std::move(col_res));
447
133
        }
448
21.4k
        return Status::OK();
449
21.4k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.00k
                            const ColumnPtr& col_right_ptr) const {
406
1.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.00k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.00k
        if (!left_is_const && !right_is_const) {
415
30
            auto col_res = ColumnUInt8::create();
416
417
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
30
            vec_res.resize(col_left->get_data().size());
419
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
30
                              typename PrimitiveTypeTraits<PT>::CppType,
421
30
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
30
                                                     vec_res);
423
424
30
            block.replace_by_position(result, std::move(col_res));
425
974
        } else if (!left_is_const && right_is_const) {
426
926
            auto col_res = ColumnUInt8::create();
427
428
926
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
926
            vec_res.resize(col_left->size());
430
926
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
926
                              typename PrimitiveTypeTraits<PT>::CppType,
432
926
                              Op<PT>>::vector_constant(col_left->get_data(),
433
926
                                                       col_right->get_element(0), vec_res);
434
435
926
            block.replace_by_position(result, std::move(col_res));
436
926
        } else if (left_is_const && !right_is_const) {
437
48
            auto col_res = ColumnUInt8::create();
438
439
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
48
            vec_res.resize(col_right->size());
441
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
48
                              typename PrimitiveTypeTraits<PT>::CppType,
443
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
48
                                                       col_right->get_data(), vec_res);
445
446
48
            block.replace_by_position(result, std::move(col_res));
447
48
        }
448
1.00k
        return Status::OK();
449
1.00k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
54
                            const ColumnPtr& col_right_ptr) const {
406
54
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
54
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
54
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
54
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
54
        DCHECK(!(left_is_const && right_is_const));
413
414
54
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
54
        } else if (!left_is_const && right_is_const) {
426
54
            auto col_res = ColumnUInt8::create();
427
428
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
54
            vec_res.resize(col_left->size());
430
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
54
                              typename PrimitiveTypeTraits<PT>::CppType,
432
54
                              Op<PT>>::vector_constant(col_left->get_data(),
433
54
                                                       col_right->get_element(0), vec_res);
434
435
54
            block.replace_by_position(result, std::move(col_res));
436
54
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
54
        return Status::OK();
449
54
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
10
                            const ColumnPtr& col_right_ptr) const {
406
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
10
        DCHECK(!(left_is_const && right_is_const));
413
414
10
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
10
        } else if (!left_is_const && right_is_const) {
426
10
            auto col_res = ColumnUInt8::create();
427
428
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
10
            vec_res.resize(col_left->size());
430
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
10
                              typename PrimitiveTypeTraits<PT>::CppType,
432
10
                              Op<PT>>::vector_constant(col_left->get_data(),
433
10
                                                       col_right->get_element(0), vec_res);
434
435
10
            block.replace_by_position(result, std::move(col_res));
436
10
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
10
        return Status::OK();
449
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
224
                            const ColumnPtr& col_right_ptr) const {
406
224
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
224
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
224
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
224
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
224
        DCHECK(!(left_is_const && right_is_const));
413
414
224
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
204
        } else if (!left_is_const && right_is_const) {
426
204
            auto col_res = ColumnUInt8::create();
427
428
204
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
204
            vec_res.resize(col_left->size());
430
204
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
204
                              typename PrimitiveTypeTraits<PT>::CppType,
432
204
                              Op<PT>>::vector_constant(col_left->get_data(),
433
204
                                                       col_right->get_element(0), vec_res);
434
435
204
            block.replace_by_position(result, std::move(col_res));
436
204
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
224
        return Status::OK();
449
224
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
137
                            const ColumnPtr& col_right_ptr) const {
406
137
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
137
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
137
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
137
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
137
        DCHECK(!(left_is_const && right_is_const));
413
414
137
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
117
        } else if (!left_is_const && right_is_const) {
426
116
            auto col_res = ColumnUInt8::create();
427
428
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
116
            vec_res.resize(col_left->size());
430
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
116
                              typename PrimitiveTypeTraits<PT>::CppType,
432
116
                              Op<PT>>::vector_constant(col_left->get_data(),
433
116
                                                       col_right->get_element(0), vec_res);
434
435
116
            block.replace_by_position(result, std::move(col_res));
436
116
        } else if (left_is_const && !right_is_const) {
437
1
            auto col_res = ColumnUInt8::create();
438
439
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
1
            vec_res.resize(col_right->size());
441
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
1
                              typename PrimitiveTypeTraits<PT>::CppType,
443
1
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
1
                                                       col_right->get_data(), vec_res);
445
446
1
            block.replace_by_position(result, std::move(col_res));
447
1
        }
448
137
        return Status::OK();
449
137
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
450
451
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
452
147k
                           const ColumnWithTypeAndName& col_right) const {
453
147k
        auto call = [&](const auto& type) -> bool {
454
147k
            using DispatchType = std::decay_t<decltype(type)>;
455
147k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
147k
                    block, result, col_left, col_right);
457
147k
            return true;
458
147k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
237
        auto call = [&](const auto& type) -> bool {
454
237
            using DispatchType = std::decay_t<decltype(type)>;
455
237
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
237
                    block, result, col_left, col_right);
457
237
            return true;
458
237
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
267
        auto call = [&](const auto& type) -> bool {
454
267
            using DispatchType = std::decay_t<decltype(type)>;
455
267
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
267
                    block, result, col_left, col_right);
457
267
            return true;
458
267
        };
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
453
1.15k
        auto call = [&](const auto& type) -> bool {
454
1.15k
            using DispatchType = std::decay_t<decltype(type)>;
455
1.15k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1.15k
                    block, result, col_left, col_right);
457
1.15k
            return true;
458
1.15k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
30
        auto call = [&](const auto& type) -> bool {
454
30
            using DispatchType = std::decay_t<decltype(type)>;
455
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
30
                    block, result, col_left, col_right);
457
30
            return true;
458
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
72
        auto call = [&](const auto& type) -> bool {
454
72
            using DispatchType = std::decay_t<decltype(type)>;
455
72
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
72
                    block, result, col_left, col_right);
457
72
            return true;
458
72
        };
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
453
324
        auto call = [&](const auto& type) -> bool {
454
324
            using DispatchType = std::decay_t<decltype(type)>;
455
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
324
                    block, result, col_left, col_right);
457
324
            return true;
458
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
30
        auto call = [&](const auto& type) -> bool {
454
30
            using DispatchType = std::decay_t<decltype(type)>;
455
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
30
                    block, result, col_left, col_right);
457
30
            return true;
458
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
46
        auto call = [&](const auto& type) -> bool {
454
46
            using DispatchType = std::decay_t<decltype(type)>;
455
46
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
46
                    block, result, col_left, col_right);
457
46
            return true;
458
46
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
1.59k
        auto call = [&](const auto& type) -> bool {
454
1.59k
            using DispatchType = std::decay_t<decltype(type)>;
455
1.59k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1.59k
                    block, result, col_left, col_right);
457
1.59k
            return true;
458
1.59k
        };
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
453
1.40k
        auto call = [&](const auto& type) -> bool {
454
1.40k
            using DispatchType = std::decay_t<decltype(type)>;
455
1.40k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1.40k
                    block, result, col_left, col_right);
457
1.40k
            return true;
458
1.40k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
2
        auto call = [&](const auto& type) -> bool {
454
2
            using DispatchType = std::decay_t<decltype(type)>;
455
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
2
                    block, result, col_left, col_right);
457
2
            return true;
458
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
12
        auto call = [&](const auto& type) -> bool {
454
12
            using DispatchType = std::decay_t<decltype(type)>;
455
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
12
                    block, result, col_left, col_right);
457
12
            return true;
458
12
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
354
        auto call = [&](const auto& type) -> bool {
454
354
            using DispatchType = std::decay_t<decltype(type)>;
455
354
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
354
                    block, result, col_left, col_right);
457
354
            return true;
458
354
        };
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
453
101
        auto call = [&](const auto& type) -> bool {
454
101
            using DispatchType = std::decay_t<decltype(type)>;
455
101
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
101
                    block, result, col_left, col_right);
457
101
            return true;
458
101
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
21
        auto call = [&](const auto& type) -> bool {
454
21
            using DispatchType = std::decay_t<decltype(type)>;
455
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
21
                    block, result, col_left, col_right);
457
21
            return true;
458
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
201
        auto call = [&](const auto& type) -> bool {
454
201
            using DispatchType = std::decay_t<decltype(type)>;
455
201
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
201
                    block, result, col_left, col_right);
457
201
            return true;
458
201
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
264
        auto call = [&](const auto& type) -> bool {
454
264
            using DispatchType = std::decay_t<decltype(type)>;
455
264
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
264
                    block, result, col_left, col_right);
457
264
            return true;
458
264
        };
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
453
535
        auto call = [&](const auto& type) -> bool {
454
535
            using DispatchType = std::decay_t<decltype(type)>;
455
535
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
535
                    block, result, col_left, col_right);
457
535
            return true;
458
535
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
1
        auto call = [&](const auto& type) -> bool {
454
1
            using DispatchType = std::decay_t<decltype(type)>;
455
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1
                    block, result, col_left, col_right);
457
1
            return true;
458
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
7
        auto call = [&](const auto& type) -> bool {
454
7
            using DispatchType = std::decay_t<decltype(type)>;
455
7
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
7
                    block, result, col_left, col_right);
457
7
            return true;
458
7
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
139k
        auto call = [&](const auto& type) -> bool {
454
139k
            using DispatchType = std::decay_t<decltype(type)>;
455
139k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
139k
                    block, result, col_left, col_right);
457
139k
            return true;
458
139k
        };
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
453
800
        auto call = [&](const auto& type) -> bool {
454
800
            using DispatchType = std::decay_t<decltype(type)>;
455
800
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
800
                    block, result, col_left, col_right);
457
800
            return true;
458
800
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
16
        auto call = [&](const auto& type) -> bool {
454
16
            using DispatchType = std::decay_t<decltype(type)>;
455
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
16
                    block, result, col_left, col_right);
457
16
            return true;
458
16
        };
459
460
147k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
147k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
147k
        return Status::OK();
471
147k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
1.69k
                           const ColumnWithTypeAndName& col_right) const {
453
1.69k
        auto call = [&](const auto& type) -> bool {
454
1.69k
            using DispatchType = std::decay_t<decltype(type)>;
455
1.69k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1.69k
                    block, result, col_left, col_right);
457
1.69k
            return true;
458
1.69k
        };
459
460
1.69k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
1.69k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
1.69k
        return Status::OK();
471
1.69k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
426
                           const ColumnWithTypeAndName& col_right) const {
453
426
        auto call = [&](const auto& type) -> bool {
454
426
            using DispatchType = std::decay_t<decltype(type)>;
455
426
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
426
                    block, result, col_left, col_right);
457
426
            return true;
458
426
        };
459
460
426
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
426
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
426
        return Status::OK();
471
426
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
3.05k
                           const ColumnWithTypeAndName& col_right) const {
453
3.05k
        auto call = [&](const auto& type) -> bool {
454
3.05k
            using DispatchType = std::decay_t<decltype(type)>;
455
3.05k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
3.05k
                    block, result, col_left, col_right);
457
3.05k
            return true;
458
3.05k
        };
459
460
3.05k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
3.05k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
3.05k
        return Status::OK();
471
3.05k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
488
                           const ColumnWithTypeAndName& col_right) const {
453
488
        auto call = [&](const auto& type) -> bool {
454
488
            using DispatchType = std::decay_t<decltype(type)>;
455
488
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
488
                    block, result, col_left, col_right);
457
488
            return true;
458
488
        };
459
460
488
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
488
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
488
        return Status::OK();
471
488
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
1.00k
                           const ColumnWithTypeAndName& col_right) const {
453
1.00k
        auto call = [&](const auto& type) -> bool {
454
1.00k
            using DispatchType = std::decay_t<decltype(type)>;
455
1.00k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1.00k
                    block, result, col_left, col_right);
457
1.00k
            return true;
458
1.00k
        };
459
460
1.00k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
1.00k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
1.00k
        return Status::OK();
471
1.00k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
140k
                           const ColumnWithTypeAndName& col_right) const {
453
140k
        auto call = [&](const auto& type) -> bool {
454
140k
            using DispatchType = std::decay_t<decltype(type)>;
455
140k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
140k
                    block, result, col_left, col_right);
457
140k
            return true;
458
140k
        };
459
460
140k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
140k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
140k
        return Status::OK();
471
140k
    }
472
473
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
474
27.1k
                          const IColumn* c1) const {
475
27.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
27.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
27.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
27.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
27.1k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
27.1k
        DCHECK(!(c0_const && c1_const));
484
27.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
485
27.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
486
27.1k
        ColumnString::Offset c0_const_size = 0;
487
27.1k
        ColumnString::Offset c1_const_size = 0;
488
489
27.1k
        if (c0_const) {
490
6
            const ColumnString* c0_const_string =
491
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
6
            if (c0_const_string) {
494
6
                c0_const_chars = &c0_const_string->get_chars();
495
6
                c0_const_size = c0_const_string->get_offsets()[0];
496
6
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
6
        }
501
502
27.1k
        if (c1_const) {
503
26.2k
            const ColumnString* c1_const_string =
504
26.2k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
26.2k
            if (c1_const_string) {
507
26.2k
                c1_const_chars = &c1_const_string->get_chars();
508
26.2k
                c1_const_size = c1_const_string->get_offsets()[0];
509
26.2k
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
26.2k
        }
514
515
27.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
27.1k
        auto c_res = ColumnUInt8::create();
518
27.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
27.1k
        vec_res.resize(c0->size());
520
521
27.1k
        if (c0_string && c1_string) {
522
903
            StringImpl::string_vector_string_vector(
523
903
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
903
                    c1_string->get_offsets(), vec_res);
525
26.2k
        } else if (c0_string && c1_const) {
526
26.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
26.2k
                                               *c1_const_chars, c1_const_size, vec_res);
528
26.2k
        } else if (c0_const && c1_string) {
529
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
6
                                               vec_res);
532
6
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
27.1k
        block.replace_by_position(result, std::move(c_res));
537
27.1k
        return Status::OK();
538
27.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
22.1k
                          const IColumn* c1) const {
475
22.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
22.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
22.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
22.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
22.1k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
22.1k
        DCHECK(!(c0_const && c1_const));
484
22.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
485
22.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
486
22.1k
        ColumnString::Offset c0_const_size = 0;
487
22.1k
        ColumnString::Offset c1_const_size = 0;
488
489
22.1k
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
22.1k
        if (c1_const) {
503
21.7k
            const ColumnString* c1_const_string =
504
21.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
21.7k
            if (c1_const_string) {
507
21.7k
                c1_const_chars = &c1_const_string->get_chars();
508
21.7k
                c1_const_size = c1_const_string->get_offsets()[0];
509
21.7k
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
21.7k
        }
514
515
22.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
22.1k
        auto c_res = ColumnUInt8::create();
518
22.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
22.1k
        vec_res.resize(c0->size());
520
521
22.1k
        if (c0_string && c1_string) {
522
433
            StringImpl::string_vector_string_vector(
523
433
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
433
                    c1_string->get_offsets(), vec_res);
525
21.7k
        } else if (c0_string && c1_const) {
526
21.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
21.7k
                                               *c1_const_chars, c1_const_size, vec_res);
528
21.7k
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
22.1k
        block.replace_by_position(result, std::move(c_res));
537
22.1k
        return Status::OK();
538
22.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
1.50k
                          const IColumn* c1) const {
475
1.50k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
1.50k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
1.50k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
1.50k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
1.50k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
1.50k
        DCHECK(!(c0_const && c1_const));
484
1.50k
        const ColumnString::Chars* c0_const_chars = nullptr;
485
1.50k
        const ColumnString::Chars* c1_const_chars = nullptr;
486
1.50k
        ColumnString::Offset c0_const_size = 0;
487
1.50k
        ColumnString::Offset c1_const_size = 0;
488
489
1.50k
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
1.50k
        if (c1_const) {
503
1.50k
            const ColumnString* c1_const_string =
504
1.50k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
1.50k
            if (c1_const_string) {
507
1.50k
                c1_const_chars = &c1_const_string->get_chars();
508
1.50k
                c1_const_size = c1_const_string->get_offsets()[0];
509
1.50k
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
1.50k
        }
514
515
1.50k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
1.50k
        auto c_res = ColumnUInt8::create();
518
1.50k
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
1.50k
        vec_res.resize(c0->size());
520
521
1.50k
        if (c0_string && c1_string) {
522
1
            StringImpl::string_vector_string_vector(
523
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
1
                    c1_string->get_offsets(), vec_res);
525
1.50k
        } else if (c0_string && c1_const) {
526
1.50k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
1.50k
                                               *c1_const_chars, c1_const_size, vec_res);
528
1.50k
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
1.50k
        block.replace_by_position(result, std::move(c_res));
537
1.50k
        return Status::OK();
538
1.50k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
206
                          const IColumn* c1) const {
475
206
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
206
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
206
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
206
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
206
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
206
        DCHECK(!(c0_const && c1_const));
484
206
        const ColumnString::Chars* c0_const_chars = nullptr;
485
206
        const ColumnString::Chars* c1_const_chars = nullptr;
486
206
        ColumnString::Offset c0_const_size = 0;
487
206
        ColumnString::Offset c1_const_size = 0;
488
489
206
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
206
        if (c1_const) {
503
204
            const ColumnString* c1_const_string =
504
204
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
204
            if (c1_const_string) {
507
204
                c1_const_chars = &c1_const_string->get_chars();
508
204
                c1_const_size = c1_const_string->get_offsets()[0];
509
204
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
204
        }
514
515
206
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
206
        auto c_res = ColumnUInt8::create();
518
206
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
206
        vec_res.resize(c0->size());
520
521
206
        if (c0_string && c1_string) {
522
2
            StringImpl::string_vector_string_vector(
523
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
2
                    c1_string->get_offsets(), vec_res);
525
204
        } else if (c0_string && c1_const) {
526
204
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
204
                                               *c1_const_chars, c1_const_size, vec_res);
528
204
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
206
        block.replace_by_position(result, std::move(c_res));
537
206
        return Status::OK();
538
206
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
693
                          const IColumn* c1) const {
475
693
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
693
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
693
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
693
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
693
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
693
        DCHECK(!(c0_const && c1_const));
484
693
        const ColumnString::Chars* c0_const_chars = nullptr;
485
693
        const ColumnString::Chars* c1_const_chars = nullptr;
486
693
        ColumnString::Offset c0_const_size = 0;
487
693
        ColumnString::Offset c1_const_size = 0;
488
489
693
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
693
        if (c1_const) {
503
657
            const ColumnString* c1_const_string =
504
657
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
657
            if (c1_const_string) {
507
657
                c1_const_chars = &c1_const_string->get_chars();
508
657
                c1_const_size = c1_const_string->get_offsets()[0];
509
657
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
657
        }
514
515
693
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
693
        auto c_res = ColumnUInt8::create();
518
693
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
693
        vec_res.resize(c0->size());
520
521
693
        if (c0_string && c1_string) {
522
36
            StringImpl::string_vector_string_vector(
523
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
36
                    c1_string->get_offsets(), vec_res);
525
657
        } else if (c0_string && c1_const) {
526
657
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
657
                                               *c1_const_chars, c1_const_size, vec_res);
528
657
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
693
        block.replace_by_position(result, std::move(c_res));
537
693
        return Status::OK();
538
693
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
718
                          const IColumn* c1) const {
475
718
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
718
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
718
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
718
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
718
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
718
        DCHECK(!(c0_const && c1_const));
484
718
        const ColumnString::Chars* c0_const_chars = nullptr;
485
718
        const ColumnString::Chars* c1_const_chars = nullptr;
486
718
        ColumnString::Offset c0_const_size = 0;
487
718
        ColumnString::Offset c1_const_size = 0;
488
489
718
        if (c0_const) {
490
6
            const ColumnString* c0_const_string =
491
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
6
            if (c0_const_string) {
494
6
                c0_const_chars = &c0_const_string->get_chars();
495
6
                c0_const_size = c0_const_string->get_offsets()[0];
496
6
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
6
        }
501
502
718
        if (c1_const) {
503
281
            const ColumnString* c1_const_string =
504
281
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
281
            if (c1_const_string) {
507
281
                c1_const_chars = &c1_const_string->get_chars();
508
281
                c1_const_size = c1_const_string->get_offsets()[0];
509
281
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
281
        }
514
515
718
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
718
        auto c_res = ColumnUInt8::create();
518
718
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
718
        vec_res.resize(c0->size());
520
521
718
        if (c0_string && c1_string) {
522
431
            StringImpl::string_vector_string_vector(
523
431
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
431
                    c1_string->get_offsets(), vec_res);
525
431
        } else if (c0_string && c1_const) {
526
281
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
281
                                               *c1_const_chars, c1_const_size, vec_res);
528
281
        } else if (c0_const && c1_string) {
529
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
6
                                               vec_res);
532
6
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
718
        block.replace_by_position(result, std::move(c_res));
537
718
        return Status::OK();
538
718
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
1.94k
                          const IColumn* c1) const {
475
1.94k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
1.94k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
1.94k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
1.94k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
1.94k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
1.94k
        DCHECK(!(c0_const && c1_const));
484
1.94k
        const ColumnString::Chars* c0_const_chars = nullptr;
485
1.94k
        const ColumnString::Chars* c1_const_chars = nullptr;
486
1.94k
        ColumnString::Offset c0_const_size = 0;
487
1.94k
        ColumnString::Offset c1_const_size = 0;
488
489
1.94k
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
1.94k
        if (c1_const) {
503
1.94k
            const ColumnString* c1_const_string =
504
1.94k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
1.94k
            if (c1_const_string) {
507
1.94k
                c1_const_chars = &c1_const_string->get_chars();
508
1.94k
                c1_const_size = c1_const_string->get_offsets()[0];
509
1.94k
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
1.94k
        }
514
515
1.94k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
1.94k
        auto c_res = ColumnUInt8::create();
518
1.94k
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
1.94k
        vec_res.resize(c0->size());
520
521
1.94k
        if (c0_string && c1_string) {
522
0
            StringImpl::string_vector_string_vector(
523
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
0
                    c1_string->get_offsets(), vec_res);
525
1.94k
        } else if (c0_string && c1_const) {
526
1.94k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
1.94k
                                               *c1_const_chars, c1_const_size, vec_res);
528
1.94k
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
1.94k
        block.replace_by_position(result, std::move(c_res));
537
1.94k
        return Status::OK();
538
1.94k
    }
539
540
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
541
187
                                         const IColumn* c1) const {
542
187
        bool c0_const = is_column_const(*c0);
543
187
        bool c1_const = is_column_const(*c1);
544
545
187
        DCHECK(!(c0_const && c1_const));
546
547
187
        auto c_res = ColumnUInt8::create();
548
187
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
187
        vec_res.resize(c0->size());
550
551
187
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
187
        } else if (c1_const) {
554
178
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
178
        } else {
556
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
9
        }
558
559
187
        block.replace_by_position(result, std::move(c_res));
560
187
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
17
                                         const IColumn* c1) const {
542
17
        bool c0_const = is_column_const(*c0);
543
17
        bool c1_const = is_column_const(*c1);
544
545
17
        DCHECK(!(c0_const && c1_const));
546
547
17
        auto c_res = ColumnUInt8::create();
548
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
17
        vec_res.resize(c0->size());
550
551
17
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
17
        } else if (c1_const) {
554
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
13
        } else {
556
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
4
        }
558
559
17
        block.replace_by_position(result, std::move(c_res));
560
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
8
                                         const IColumn* c1) const {
542
8
        bool c0_const = is_column_const(*c0);
543
8
        bool c1_const = is_column_const(*c1);
544
545
8
        DCHECK(!(c0_const && c1_const));
546
547
8
        auto c_res = ColumnUInt8::create();
548
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
8
        vec_res.resize(c0->size());
550
551
8
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
8
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
0
        }
558
559
8
        block.replace_by_position(result, std::move(c_res));
560
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
9
                                         const IColumn* c1) const {
542
9
        bool c0_const = is_column_const(*c0);
543
9
        bool c1_const = is_column_const(*c1);
544
545
9
        DCHECK(!(c0_const && c1_const));
546
547
9
        auto c_res = ColumnUInt8::create();
548
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
9
        vec_res.resize(c0->size());
550
551
9
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
9
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
1
        }
558
559
9
        block.replace_by_position(result, std::move(c_res));
560
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
99
                                         const IColumn* c1) const {
542
99
        bool c0_const = is_column_const(*c0);
543
99
        bool c1_const = is_column_const(*c1);
544
545
99
        DCHECK(!(c0_const && c1_const));
546
547
99
        auto c_res = ColumnUInt8::create();
548
99
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
99
        vec_res.resize(c0->size());
550
551
99
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
99
        } else if (c1_const) {
554
98
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
98
        } else {
556
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
1
        }
558
559
99
        block.replace_by_position(result, std::move(c_res));
560
99
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
11
                                         const IColumn* c1) const {
542
11
        bool c0_const = is_column_const(*c0);
543
11
        bool c1_const = is_column_const(*c1);
544
545
11
        DCHECK(!(c0_const && c1_const));
546
547
11
        auto c_res = ColumnUInt8::create();
548
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
11
        vec_res.resize(c0->size());
550
551
11
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
11
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
3
        }
558
559
11
        block.replace_by_position(result, std::move(c_res));
560
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
43
                                         const IColumn* c1) const {
542
43
        bool c0_const = is_column_const(*c0);
543
43
        bool c1_const = is_column_const(*c1);
544
545
43
        DCHECK(!(c0_const && c1_const));
546
547
43
        auto c_res = ColumnUInt8::create();
548
43
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
43
        vec_res.resize(c0->size());
550
551
43
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
43
        } else if (c1_const) {
554
43
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
43
        } else {
556
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
0
        }
558
559
43
        block.replace_by_position(result, std::move(c_res));
560
43
    }
561
562
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
563
187
                           const ColumnWithTypeAndName& c1) const {
564
187
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
187
        return Status::OK();
566
187
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
17
                           const ColumnWithTypeAndName& c1) const {
564
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
17
        return Status::OK();
566
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
8
                           const ColumnWithTypeAndName& c1) const {
564
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
8
        return Status::OK();
566
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
9
                           const ColumnWithTypeAndName& c1) const {
564
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
9
        return Status::OK();
566
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
99
                           const ColumnWithTypeAndName& c1) const {
564
99
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
99
        return Status::OK();
566
99
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
11
                           const ColumnWithTypeAndName& c1) const {
564
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
11
        return Status::OK();
566
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
43
                           const ColumnWithTypeAndName& c1) const {
564
43
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
43
        return Status::OK();
566
43
    }
567
568
public:
569
222
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
569
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
569
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
1
    String get_name() const override { return name; }
570
571
470k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
436k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
1.33k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
571
6.32k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
9.65k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
571
3.45k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
13.7k
    size_t get_number_of_arguments() const override { return 2; }
572
573
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
574
32.3k
                                                const VExprSPtrs& arguments) const override {
575
32.3k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
32.3k
        DORIS_CHECK(op.has_value());
577
32.3k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
32.3k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
7.82k
                                                const VExprSPtrs& arguments) const override {
575
7.82k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
7.82k
        DORIS_CHECK(op.has_value());
577
7.82k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
7.82k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
1.12k
                                                const VExprSPtrs& arguments) const override {
575
1.12k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
1.12k
        DORIS_CHECK(op.has_value());
577
1.12k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
1.12k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
3.95k
                                                const VExprSPtrs& arguments) const override {
575
3.95k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
3.95k
        DORIS_CHECK(op.has_value());
577
3.95k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
3.95k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
8.65k
                                                const VExprSPtrs& arguments) const override {
575
8.65k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
8.65k
        DORIS_CHECK(op.has_value());
577
8.65k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
8.65k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
1.94k
                                                const VExprSPtrs& arguments) const override {
575
1.94k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
1.94k
        DORIS_CHECK(op.has_value());
577
1.94k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
1.94k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
8.83k
                                                const VExprSPtrs& arguments) const override {
575
8.83k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
8.83k
        DORIS_CHECK(op.has_value());
577
8.83k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
8.83k
    }
579
580
82.8k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
82.8k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
82.8k
               comparison_zonemap_detail::can_evaluate(arguments);
583
82.8k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
31.6k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
31.6k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
31.6k
               comparison_zonemap_detail::can_evaluate(arguments);
583
31.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
3.49k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
3.49k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
3.50k
               comparison_zonemap_detail::can_evaluate(arguments);
583
3.49k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
12.0k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
12.0k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
12.0k
               comparison_zonemap_detail::can_evaluate(arguments);
583
12.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
15.5k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
15.5k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
15.5k
               comparison_zonemap_detail::can_evaluate(arguments);
583
15.5k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
6.35k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
6.35k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
6.35k
               comparison_zonemap_detail::can_evaluate(arguments);
583
6.35k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
13.7k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
13.7k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
13.7k
               comparison_zonemap_detail::can_evaluate(arguments);
583
13.7k
    }
584
585
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
586
470k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
470k
        return std::make_shared<DataTypeUInt8>();
588
470k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
436k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
436k
        return std::make_shared<DataTypeUInt8>();
588
436k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
1.33k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
1.33k
        return std::make_shared<DataTypeUInt8>();
588
1.33k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
6.32k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
6.32k
        return std::make_shared<DataTypeUInt8>();
588
6.32k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
9.65k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
9.65k
        return std::make_shared<DataTypeUInt8>();
588
9.65k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
3.45k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
3.45k
        return std::make_shared<DataTypeUInt8>();
588
3.45k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
13.8k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
13.8k
        return std::make_shared<DataTypeUInt8>();
588
13.8k
    }
589
590
    Status evaluate_inverted_index(
591
            const ColumnsWithTypeAndName& arguments,
592
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
593
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
594
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
595
1.35k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
1.35k
        DCHECK(arguments.size() == 1);
597
1.35k
        DCHECK(data_type_with_names.size() == 1);
598
1.35k
        DCHECK(iterators.size() == 1);
599
1.35k
        auto* iter = iterators[0];
600
1.35k
        auto data_type_with_name = data_type_with_names[0];
601
1.35k
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
1.35k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
310
            return Status::OK();
606
310
        }
607
1.04k
        segment_v2::InvertedIndexQueryType query_type;
608
1.04k
        std::string_view name_view(name);
609
1.04k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
712
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
712
        } else if (name_view == NameLess::name) {
612
79
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
249
        } else if (name_view == NameLessOrEquals::name) {
614
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
168
        } else if (name_view == NameGreater::name) {
616
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
95
        } else if (name_view == NameGreaterOrEquals::name) {
618
95
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
95
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
1.04k
        if (segment_v2::is_range_query(query_type) &&
624
1.04k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
133
            return Status::OK();
627
133
        }
628
907
        Field param_value;
629
907
        arguments[0].column->get(0, param_value);
630
907
        if (param_value.is_null()) {
631
2
            return Status::OK();
632
2
        }
633
905
        segment_v2::InvertedIndexParam param;
634
905
        param.column_name = data_type_with_name.first;
635
905
        param.column_type = data_type_with_name.second;
636
905
        param.query_value = param_value;
637
905
        param.query_type = query_type;
638
905
        param.num_rows = num_rows;
639
905
        param.roaring = std::make_shared<roaring::Roaring>();
640
905
        param.analyzer_ctx = analyzer_ctx;
641
905
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
753
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
753
        if (iter->has_null()) {
644
753
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
753
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
753
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
753
        }
648
753
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
753
        bitmap_result = result;
650
753
        bitmap_result.mask_out_null();
651
652
753
        if (name_view == NameNotEquals::name) {
653
59
            roaring::Roaring full_result;
654
59
            full_result.addRange(0, num_rows);
655
59
            bitmap_result.op_not(&full_result);
656
59
        }
657
658
753
        return Status::OK();
659
753
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
688
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
688
        DCHECK(arguments.size() == 1);
597
688
        DCHECK(data_type_with_names.size() == 1);
598
688
        DCHECK(iterators.size() == 1);
599
688
        auto* iter = iterators[0];
600
688
        auto data_type_with_name = data_type_with_names[0];
601
688
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
688
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
42
            return Status::OK();
606
42
        }
607
646
        segment_v2::InvertedIndexQueryType query_type;
608
646
        std::string_view name_view(name);
609
646
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
646
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
646
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
0
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
646
        if (segment_v2::is_range_query(query_type) &&
624
646
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
0
            return Status::OK();
627
0
        }
628
646
        Field param_value;
629
646
        arguments[0].column->get(0, param_value);
630
646
        if (param_value.is_null()) {
631
2
            return Status::OK();
632
2
        }
633
644
        segment_v2::InvertedIndexParam param;
634
644
        param.column_name = data_type_with_name.first;
635
644
        param.column_type = data_type_with_name.second;
636
644
        param.query_value = param_value;
637
644
        param.query_type = query_type;
638
644
        param.num_rows = num_rows;
639
644
        param.roaring = std::make_shared<roaring::Roaring>();
640
644
        param.analyzer_ctx = analyzer_ctx;
641
644
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
601
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
601
        if (iter->has_null()) {
644
601
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
601
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
601
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
601
        }
648
601
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
601
        bitmap_result = result;
650
601
        bitmap_result.mask_out_null();
651
652
601
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
601
        return Status::OK();
659
601
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
72
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
72
        DCHECK(arguments.size() == 1);
597
72
        DCHECK(data_type_with_names.size() == 1);
598
72
        DCHECK(iterators.size() == 1);
599
72
        auto* iter = iterators[0];
600
72
        auto data_type_with_name = data_type_with_names[0];
601
72
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
72
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
6
            return Status::OK();
606
6
        }
607
66
        segment_v2::InvertedIndexQueryType query_type;
608
66
        std::string_view name_view(name);
609
66
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
66
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
66
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
0
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
66
        if (segment_v2::is_range_query(query_type) &&
624
66
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
0
            return Status::OK();
627
0
        }
628
66
        Field param_value;
629
66
        arguments[0].column->get(0, param_value);
630
66
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
66
        segment_v2::InvertedIndexParam param;
634
66
        param.column_name = data_type_with_name.first;
635
66
        param.column_type = data_type_with_name.second;
636
66
        param.query_value = param_value;
637
66
        param.query_type = query_type;
638
66
        param.num_rows = num_rows;
639
66
        param.roaring = std::make_shared<roaring::Roaring>();
640
66
        param.analyzer_ctx = analyzer_ctx;
641
66
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
59
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
59
        if (iter->has_null()) {
644
59
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
59
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
59
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
59
        }
648
59
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
59
        bitmap_result = result;
650
59
        bitmap_result.mask_out_null();
651
652
59
        if (name_view == NameNotEquals::name) {
653
59
            roaring::Roaring full_result;
654
59
            full_result.addRange(0, num_rows);
655
59
            bitmap_result.op_not(&full_result);
656
59
        }
657
658
59
        return Status::OK();
659
59
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
112
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
112
        DCHECK(arguments.size() == 1);
597
112
        DCHECK(data_type_with_names.size() == 1);
598
112
        DCHECK(iterators.size() == 1);
599
112
        auto* iter = iterators[0];
600
112
        auto data_type_with_name = data_type_with_names[0];
601
112
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
112
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
39
            return Status::OK();
606
39
        }
607
73
        segment_v2::InvertedIndexQueryType query_type;
608
73
        std::string_view name_view(name);
609
73
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
73
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
73
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
73
        } else if (name_view == NameGreater::name) {
616
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
73
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
73
        if (segment_v2::is_range_query(query_type) &&
624
73
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
17
            return Status::OK();
627
17
        }
628
56
        Field param_value;
629
56
        arguments[0].column->get(0, param_value);
630
56
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
56
        segment_v2::InvertedIndexParam param;
634
56
        param.column_name = data_type_with_name.first;
635
56
        param.column_type = data_type_with_name.second;
636
56
        param.query_value = param_value;
637
56
        param.query_type = query_type;
638
56
        param.num_rows = num_rows;
639
56
        param.roaring = std::make_shared<roaring::Roaring>();
640
56
        param.analyzer_ctx = analyzer_ctx;
641
56
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
37
        if (iter->has_null()) {
644
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
37
        }
648
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
37
        bitmap_result = result;
650
37
        bitmap_result.mask_out_null();
651
652
37
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
37
        return Status::OK();
659
37
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
181
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
181
        DCHECK(arguments.size() == 1);
597
181
        DCHECK(data_type_with_names.size() == 1);
598
181
        DCHECK(iterators.size() == 1);
599
181
        auto* iter = iterators[0];
600
181
        auto data_type_with_name = data_type_with_names[0];
601
181
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
181
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
86
            return Status::OK();
606
86
        }
607
95
        segment_v2::InvertedIndexQueryType query_type;
608
95
        std::string_view name_view(name);
609
95
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
95
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
95
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
95
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
95
        } else if (name_view == NameGreaterOrEquals::name) {
618
95
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
95
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
95
        if (segment_v2::is_range_query(query_type) &&
624
95
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
47
            return Status::OK();
627
47
        }
628
48
        Field param_value;
629
48
        arguments[0].column->get(0, param_value);
630
48
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
48
        segment_v2::InvertedIndexParam param;
634
48
        param.column_name = data_type_with_name.first;
635
48
        param.column_type = data_type_with_name.second;
636
48
        param.query_value = param_value;
637
48
        param.query_type = query_type;
638
48
        param.num_rows = num_rows;
639
48
        param.roaring = std::make_shared<roaring::Roaring>();
640
48
        param.analyzer_ctx = analyzer_ctx;
641
48
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
7
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
7
        if (iter->has_null()) {
644
7
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
7
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
7
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
7
        }
648
7
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
7
        bitmap_result = result;
650
7
        bitmap_result.mask_out_null();
651
652
7
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
7
        return Status::OK();
659
7
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
122
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
122
        DCHECK(arguments.size() == 1);
597
122
        DCHECK(data_type_with_names.size() == 1);
598
122
        DCHECK(iterators.size() == 1);
599
122
        auto* iter = iterators[0];
600
122
        auto data_type_with_name = data_type_with_names[0];
601
122
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
122
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
43
            return Status::OK();
606
43
        }
607
79
        segment_v2::InvertedIndexQueryType query_type;
608
79
        std::string_view name_view(name);
609
79
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
79
        } else if (name_view == NameLess::name) {
612
79
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
79
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
79
        if (segment_v2::is_range_query(query_type) &&
624
79
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
18
            return Status::OK();
627
18
        }
628
61
        Field param_value;
629
61
        arguments[0].column->get(0, param_value);
630
61
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
61
        segment_v2::InvertedIndexParam param;
634
61
        param.column_name = data_type_with_name.first;
635
61
        param.column_type = data_type_with_name.second;
636
61
        param.query_value = param_value;
637
61
        param.query_type = query_type;
638
61
        param.num_rows = num_rows;
639
61
        param.roaring = std::make_shared<roaring::Roaring>();
640
61
        param.analyzer_ctx = analyzer_ctx;
641
61
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
40
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
40
        if (iter->has_null()) {
644
40
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
40
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
40
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
40
        }
648
40
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
40
        bitmap_result = result;
650
40
        bitmap_result.mask_out_null();
651
652
40
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
40
        return Status::OK();
659
40
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
175
        DCHECK(arguments.size() == 1);
597
175
        DCHECK(data_type_with_names.size() == 1);
598
175
        DCHECK(iterators.size() == 1);
599
175
        auto* iter = iterators[0];
600
175
        auto data_type_with_name = data_type_with_names[0];
601
175
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
94
            return Status::OK();
606
94
        }
607
81
        segment_v2::InvertedIndexQueryType query_type;
608
81
        std::string_view name_view(name);
609
81
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
81
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
81
        } else if (name_view == NameLessOrEquals::name) {
614
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
81
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
81
        if (segment_v2::is_range_query(query_type) &&
624
81
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
51
            return Status::OK();
627
51
        }
628
30
        Field param_value;
629
30
        arguments[0].column->get(0, param_value);
630
30
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
30
        segment_v2::InvertedIndexParam param;
634
30
        param.column_name = data_type_with_name.first;
635
30
        param.column_type = data_type_with_name.second;
636
30
        param.query_value = param_value;
637
30
        param.query_type = query_type;
638
30
        param.num_rows = num_rows;
639
30
        param.roaring = std::make_shared<roaring::Roaring>();
640
30
        param.analyzer_ctx = analyzer_ctx;
641
30
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
9
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
9
        if (iter->has_null()) {
644
9
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
9
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
9
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
9
        }
648
9
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
9
        bitmap_result = result;
650
9
        bitmap_result.mask_out_null();
651
652
9
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
9
        return Status::OK();
659
9
    }
660
661
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
662
357k
                        uint32_t result, size_t input_rows_count) const override {
663
357k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
357k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
357k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
357k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
357k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
357k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
357k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
357k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
357k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
357k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
539k
        auto can_compare = [](PrimitiveType t) -> bool {
701
539k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
539k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
157k
        auto can_compare = [](PrimitiveType t) -> bool {
701
157k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
157k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
15.6k
        auto can_compare = [](PrimitiveType t) -> bool {
701
15.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
15.6k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
101k
        auto can_compare = [](PrimitiveType t) -> bool {
701
101k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
101k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
36.3k
        auto can_compare = [](PrimitiveType t) -> bool {
701
36.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
36.3k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
29.0k
        auto can_compare = [](PrimitiveType t) -> bool {
701
29.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
29.0k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
200k
        auto can_compare = [](PrimitiveType t) -> bool {
701
200k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
200k
        };
703
704
357k
        if (can_compare(left_type->get_primitive_type()) &&
705
357k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
182k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
182k
        }
713
714
357k
        auto compare_type = left_type->get_primitive_type();
715
357k
        switch (compare_type) {
716
2.35k
        case TYPE_BOOLEAN:
717
2.35k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
11.2k
        case TYPE_DATEV2:
719
11.2k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
2.74k
        case TYPE_DATETIMEV2:
721
2.74k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
7
        case TYPE_TIMESTAMPTZ:
723
7
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
9.20k
        case TYPE_TINYINT:
725
9.20k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
3.75k
        case TYPE_SMALLINT:
727
3.75k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
104k
        case TYPE_INT:
729
104k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
43.8k
        case TYPE_BIGINT:
731
43.8k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
778
        case TYPE_LARGEINT:
733
778
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
61
        case TYPE_IPV4:
735
61
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
37
        case TYPE_IPV6:
737
37
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
1.01k
        case TYPE_FLOAT:
739
1.01k
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
3.56k
        case TYPE_DOUBLE:
741
3.56k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
4
        case TYPE_TIMEV2:
743
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
503
        case TYPE_DECIMAL32:
746
142k
        case TYPE_DECIMAL64:
747
146k
        case TYPE_DECIMAL128I:
748
147k
        case TYPE_DECIMAL256:
749
147k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
147k
                                   col_with_type_and_name_right);
751
1.42k
        case TYPE_CHAR:
752
10.9k
        case TYPE_VARCHAR:
753
27.1k
        case TYPE_STRING:
754
27.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
187
        default:
756
187
            return execute_generic(block, result, col_with_type_and_name_left,
757
187
                                   col_with_type_and_name_right);
758
357k
        }
759
0
        return Status::OK();
760
357k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
90.4k
                        uint32_t result, size_t input_rows_count) const override {
663
90.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
90.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
90.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
90.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
90.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
90.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
90.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
90.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
90.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
90.4k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
90.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
90.4k
        };
703
704
90.4k
        if (can_compare(left_type->get_primitive_type()) &&
705
90.4k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
66.5k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
66.5k
        }
713
714
90.4k
        auto compare_type = left_type->get_primitive_type();
715
90.4k
        switch (compare_type) {
716
1.62k
        case TYPE_BOOLEAN:
717
1.62k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
1.53k
        case TYPE_DATEV2:
719
1.53k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
605
        case TYPE_DATETIMEV2:
721
605
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
2
        case TYPE_TIMESTAMPTZ:
723
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
6.27k
        case TYPE_TINYINT:
725
6.27k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
1.39k
        case TYPE_SMALLINT:
727
1.39k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
30.9k
        case TYPE_INT:
729
30.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
23.5k
        case TYPE_BIGINT:
731
23.5k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
136
        case TYPE_LARGEINT:
733
136
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
18
        case TYPE_IPV4:
735
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
19
        case TYPE_IPV6:
737
19
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
99
        case TYPE_FLOAT:
739
99
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
382
        case TYPE_DOUBLE:
741
382
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
4
        case TYPE_TIMEV2:
743
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
237
        case TYPE_DECIMAL32:
746
504
        case TYPE_DECIMAL64:
747
1.66k
        case TYPE_DECIMAL128I:
748
1.69k
        case TYPE_DECIMAL256:
749
1.69k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
1.69k
                                   col_with_type_and_name_right);
751
822
        case TYPE_CHAR:
752
8.71k
        case TYPE_VARCHAR:
753
22.1k
        case TYPE_STRING:
754
22.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
17
        default:
756
17
            return execute_generic(block, result, col_with_type_and_name_left,
757
17
                                   col_with_type_and_name_right);
758
90.4k
        }
759
0
        return Status::OK();
760
90.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
8.77k
                        uint32_t result, size_t input_rows_count) const override {
663
8.77k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
8.77k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
8.77k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
8.77k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
8.77k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
8.77k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
8.77k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
8.77k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
8.77k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
8.77k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
8.77k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
8.77k
        };
703
704
8.77k
        if (can_compare(left_type->get_primitive_type()) &&
705
8.77k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
6.83k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
6.83k
        }
713
714
8.77k
        auto compare_type = left_type->get_primitive_type();
715
8.77k
        switch (compare_type) {
716
0
        case TYPE_BOOLEAN:
717
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
82
        case TYPE_DATEV2:
719
82
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
2
        case TYPE_DATETIMEV2:
721
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
0
        case TYPE_TIMESTAMPTZ:
723
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
100
        case TYPE_TINYINT:
725
100
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
26
        case TYPE_SMALLINT:
727
26
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
3.64k
        case TYPE_INT:
729
3.64k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
2.87k
        case TYPE_BIGINT:
731
2.87k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
0
        case TYPE_LARGEINT:
733
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
0
        case TYPE_IPV4:
735
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
0
        case TYPE_IPV6:
737
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
48
        case TYPE_FLOAT:
739
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
60
        case TYPE_DOUBLE:
741
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
0
        case TYPE_DECIMAL32:
746
72
        case TYPE_DECIMAL64:
747
396
        case TYPE_DECIMAL128I:
748
426
        case TYPE_DECIMAL256:
749
426
            return execute_decimal(block, result, col_with_type_and_name_left,
750
426
                                   col_with_type_and_name_right);
751
17
        case TYPE_CHAR:
752
340
        case TYPE_VARCHAR:
753
1.50k
        case TYPE_STRING:
754
1.50k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
8
        default:
756
8
            return execute_generic(block, result, col_with_type_and_name_left,
757
8
                                   col_with_type_and_name_right);
758
8.77k
        }
759
0
        return Status::OK();
760
8.77k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
52.2k
                        uint32_t result, size_t input_rows_count) const override {
663
52.2k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
52.2k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
52.2k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
52.2k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
52.2k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
52.2k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
52.2k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
52.2k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
52.2k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
52.2k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
52.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
52.2k
        };
703
704
52.2k
        if (can_compare(left_type->get_primitive_type()) &&
705
52.2k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
48.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
48.9k
        }
713
714
52.2k
        auto compare_type = left_type->get_primitive_type();
715
52.2k
        switch (compare_type) {
716
0
        case TYPE_BOOLEAN:
717
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
1.11k
        case TYPE_DATEV2:
719
1.11k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
94
        case TYPE_DATETIMEV2:
721
94
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
1
        case TYPE_TIMESTAMPTZ:
723
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
981
        case TYPE_TINYINT:
725
981
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
1.58k
        case TYPE_SMALLINT:
727
1.58k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
28.2k
        case TYPE_INT:
729
28.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
13.9k
        case TYPE_BIGINT:
731
13.9k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
247
        case TYPE_LARGEINT:
733
247
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
4
        case TYPE_IPV4:
735
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
1
        case TYPE_IPV6:
737
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
236
        case TYPE_FLOAT:
739
236
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
2.47k
        case TYPE_DOUBLE:
741
2.47k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
46
        case TYPE_DECIMAL32:
746
1.64k
        case TYPE_DECIMAL64:
747
3.05k
        case TYPE_DECIMAL128I:
748
3.05k
        case TYPE_DECIMAL256:
749
3.05k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
3.05k
                                   col_with_type_and_name_right);
751
14
        case TYPE_CHAR:
752
76
        case TYPE_VARCHAR:
753
206
        case TYPE_STRING:
754
206
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
9
        default:
756
9
            return execute_generic(block, result, col_with_type_and_name_left,
757
9
                                   col_with_type_and_name_right);
758
52.2k
        }
759
0
        return Status::OK();
760
52.2k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
18.7k
                        uint32_t result, size_t input_rows_count) const override {
663
18.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
18.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
18.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
18.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
18.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
18.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
18.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
18.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
18.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
18.7k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
18.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
18.7k
        };
703
704
18.7k
        if (can_compare(left_type->get_primitive_type()) &&
705
18.7k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
17.5k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
17.5k
        }
713
714
18.7k
        auto compare_type = left_type->get_primitive_type();
715
18.7k
        switch (compare_type) {
716
204
        case TYPE_BOOLEAN:
717
204
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
1.59k
        case TYPE_DATEV2:
719
1.59k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
778
        case TYPE_DATETIMEV2:
721
778
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
1
        case TYPE_TIMESTAMPTZ:
723
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
60
        case TYPE_TINYINT:
725
60
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
70
        case TYPE_SMALLINT:
727
70
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
13.4k
        case TYPE_INT:
729
13.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
866
        case TYPE_BIGINT:
731
866
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
56
        case TYPE_LARGEINT:
733
56
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
11
        case TYPE_IPV4:
735
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
1
        case TYPE_IPV6:
737
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
228
        case TYPE_FLOAT:
739
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
135
        case TYPE_DOUBLE:
741
135
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
12
        case TYPE_DECIMAL32:
746
366
        case TYPE_DECIMAL64:
747
467
        case TYPE_DECIMAL128I:
748
488
        case TYPE_DECIMAL256:
749
488
            return execute_decimal(block, result, col_with_type_and_name_left,
750
488
                                   col_with_type_and_name_right);
751
27
        case TYPE_CHAR:
752
281
        case TYPE_VARCHAR:
753
693
        case TYPE_STRING:
754
693
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
99
        default:
756
99
            return execute_generic(block, result, col_with_type_and_name_left,
757
99
                                   col_with_type_and_name_right);
758
18.7k
        }
759
0
        return Status::OK();
760
18.7k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
15.3k
                        uint32_t result, size_t input_rows_count) const override {
663
15.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
15.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
15.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
15.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
15.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
15.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
15.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
15.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
15.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
15.3k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
15.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
15.3k
        };
703
704
15.3k
        if (can_compare(left_type->get_primitive_type()) &&
705
15.3k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
13.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
13.6k
        }
713
714
15.3k
        auto compare_type = left_type->get_primitive_type();
715
15.3k
        switch (compare_type) {
716
101
        case TYPE_BOOLEAN:
717
101
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
2.20k
        case TYPE_DATEV2:
719
2.20k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
651
        case TYPE_DATETIMEV2:
721
651
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
2
        case TYPE_TIMESTAMPTZ:
723
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
1.51k
        case TYPE_TINYINT:
725
1.51k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
401
        case TYPE_SMALLINT:
727
401
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
6.25k
        case TYPE_INT:
729
6.25k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
1.65k
        case TYPE_BIGINT:
731
1.65k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
285
        case TYPE_LARGEINT:
733
285
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
18
        case TYPE_IPV4:
735
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
16
        case TYPE_IPV6:
737
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
176
        case TYPE_FLOAT:
739
176
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
372
        case TYPE_DOUBLE:
741
372
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
201
        case TYPE_DECIMAL32:
746
465
        case TYPE_DECIMAL64:
747
1.00k
        case TYPE_DECIMAL128I:
748
1.00k
        case TYPE_DECIMAL256:
749
1.00k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
1.00k
                                   col_with_type_and_name_right);
751
186
        case TYPE_CHAR:
752
370
        case TYPE_VARCHAR:
753
718
        case TYPE_STRING:
754
718
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
11
        default:
756
11
            return execute_generic(block, result, col_with_type_and_name_left,
757
11
                                   col_with_type_and_name_right);
758
15.3k
        }
759
0
        return Status::OK();
760
15.3k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
171k
                        uint32_t result, size_t input_rows_count) const override {
663
171k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
171k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
171k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
171k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
171k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
171k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
171k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
171k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
171k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
171k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
171k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
171k
        };
703
704
171k
        if (can_compare(left_type->get_primitive_type()) &&
705
171k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
29.2k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
29.2k
        }
713
714
171k
        auto compare_type = left_type->get_primitive_type();
715
171k
        switch (compare_type) {
716
421
        case TYPE_BOOLEAN:
717
421
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
4.75k
        case TYPE_DATEV2:
719
4.75k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
615
        case TYPE_DATETIMEV2:
721
615
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
1
        case TYPE_TIMESTAMPTZ:
723
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
284
        case TYPE_TINYINT:
725
284
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
277
        case TYPE_SMALLINT:
727
277
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
21.4k
        case TYPE_INT:
729
21.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
1.00k
        case TYPE_BIGINT:
731
1.00k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
54
        case TYPE_LARGEINT:
733
54
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
10
        case TYPE_IPV4:
735
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
0
        case TYPE_IPV6:
737
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
224
        case TYPE_FLOAT:
739
224
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
137
        case TYPE_DOUBLE:
741
137
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
7
        case TYPE_DECIMAL32:
746
139k
        case TYPE_DECIMAL64:
747
140k
        case TYPE_DECIMAL128I:
748
140k
        case TYPE_DECIMAL256:
749
140k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
140k
                                   col_with_type_and_name_right);
751
356
        case TYPE_CHAR:
752
1.11k
        case TYPE_VARCHAR:
753
1.94k
        case TYPE_STRING:
754
1.94k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
43
        default:
756
43
            return execute_generic(block, result, col_with_type_and_name_left,
757
43
                                   col_with_type_and_name_right);
758
171k
        }
759
0
        return Status::OK();
760
171k
    }
761
};
762
763
} // namespace doris