Coverage Report

Created: 2026-08-24 12:07

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <compare>
24
#include <limits>
25
#include <optional>
26
#include <string_view>
27
#include <type_traits>
28
29
#include "common/check.h"
30
#include "common/logging.h"
31
#include "core/accurate_comparison.h"
32
#include "core/assert_cast.h"
33
#include "core/column/column_const.h"
34
#include "core/column/column_decimal.h"
35
#include "core/column/column_nullable.h"
36
#include "core/column/column_string.h"
37
#include "core/data_type/data_type_nullable.h"
38
#include "core/data_type/data_type_number.h"
39
#include "core/data_type/data_type_string.h"
40
#include "core/data_type/define_primitive_type.h"
41
#include "core/decimal_comparison.h"
42
#include "core/field.h"
43
#include "core/memcmp_small.h"
44
#include "core/value/vdatetime_value.h"
45
#include "exprs/expr_zonemap_filter.h"
46
#include "exprs/function/function.h"
47
#include "exprs/function/function_helpers.h"
48
#include "exprs/function/functions_logical.h"
49
#include "exprs/vexpr.h"
50
#include "storage/index/index_reader_helper.h"
51
#include "storage/index/inverted/inverted_index_iterator.h"
52
53
namespace doris {
54
/** Comparison functions: ==, !=, <, >, <=, >=.
55
  * The comparison functions always return 0 or 1 (UInt8).
56
  *
57
  * You can compare the following types:
58
  * - numbers and decimals;
59
  * - strings and fixed strings;
60
  * - dates;
61
  * - datetimes;
62
  *   within each group, but not from different groups;
63
  * - tuples (lexicographic comparison).
64
  *
65
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
66
  */
67
68
template <typename A, typename B, typename Op>
69
struct NumComparisonImpl {
70
    /// If you don't specify NO_INLINE, the compiler will inline this function, but we don't need this as this function contains tight loop inside.
71
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
72
8.75k
                                        PaddedPODArray<UInt8>& c) {
73
8.75k
        size_t size = a.size();
74
8.75k
        const A* __restrict a_pos = a.data();
75
8.75k
        const B* __restrict b_pos = b.data();
76
8.75k
        UInt8* __restrict c_pos = c.data();
77
8.75k
        const A* __restrict a_end = a_pos + size;
78
79
7.21M
        while (a_pos < a_end) {
80
7.20M
            *c_pos = Op::apply(*a_pos, *b_pos);
81
7.20M
            ++a_pos;
82
7.20M
            ++b_pos;
83
7.20M
            ++c_pos;
84
7.20M
        }
85
8.75k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
72
61
                                        PaddedPODArray<UInt8>& c) {
73
61
        size_t size = a.size();
74
61
        const A* __restrict a_pos = a.data();
75
61
        const B* __restrict b_pos = b.data();
76
61
        UInt8* __restrict c_pos = c.data();
77
61
        const A* __restrict a_end = a_pos + size;
78
79
122
        while (a_pos < a_end) {
80
61
            *c_pos = Op::apply(*a_pos, *b_pos);
81
61
            ++a_pos;
82
61
            ++b_pos;
83
61
            ++c_pos;
84
61
        }
85
61
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
242
                                        PaddedPODArray<UInt8>& c) {
73
242
        size_t size = a.size();
74
242
        const A* __restrict a_pos = a.data();
75
242
        const B* __restrict b_pos = b.data();
76
242
        UInt8* __restrict c_pos = c.data();
77
242
        const A* __restrict a_end = a_pos + size;
78
79
1.42k
        while (a_pos < a_end) {
80
1.18k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1.18k
            ++a_pos;
82
1.18k
            ++b_pos;
83
1.18k
            ++c_pos;
84
1.18k
        }
85
242
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
239
                                        PaddedPODArray<UInt8>& c) {
73
239
        size_t size = a.size();
74
239
        const A* __restrict a_pos = a.data();
75
239
        const B* __restrict b_pos = b.data();
76
239
        UInt8* __restrict c_pos = c.data();
77
239
        const A* __restrict a_end = a_pos + size;
78
79
496
        while (a_pos < a_end) {
80
257
            *c_pos = Op::apply(*a_pos, *b_pos);
81
257
            ++a_pos;
82
257
            ++b_pos;
83
257
            ++c_pos;
84
257
        }
85
239
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
72
2
                                        PaddedPODArray<UInt8>& c) {
73
2
        size_t size = a.size();
74
2
        const A* __restrict a_pos = a.data();
75
2
        const B* __restrict b_pos = b.data();
76
2
        UInt8* __restrict c_pos = c.data();
77
2
        const A* __restrict a_end = a_pos + size;
78
79
12
        while (a_pos < a_end) {
80
10
            *c_pos = Op::apply(*a_pos, *b_pos);
81
10
            ++a_pos;
82
10
            ++b_pos;
83
10
            ++c_pos;
84
10
        }
85
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
141
                                        PaddedPODArray<UInt8>& c) {
73
141
        size_t size = a.size();
74
141
        const A* __restrict a_pos = a.data();
75
141
        const B* __restrict b_pos = b.data();
76
141
        UInt8* __restrict c_pos = c.data();
77
141
        const A* __restrict a_end = a_pos + size;
78
79
424
        while (a_pos < a_end) {
80
283
            *c_pos = Op::apply(*a_pos, *b_pos);
81
283
            ++a_pos;
82
283
            ++b_pos;
83
283
            ++c_pos;
84
283
        }
85
141
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
71
                                        PaddedPODArray<UInt8>& c) {
73
71
        size_t size = a.size();
74
71
        const A* __restrict a_pos = a.data();
75
71
        const B* __restrict b_pos = b.data();
76
71
        UInt8* __restrict c_pos = c.data();
77
71
        const A* __restrict a_end = a_pos + size;
78
79
142
        while (a_pos < a_end) {
80
71
            *c_pos = Op::apply(*a_pos, *b_pos);
81
71
            ++a_pos;
82
71
            ++b_pos;
83
71
            ++c_pos;
84
71
        }
85
71
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
263
                                        PaddedPODArray<UInt8>& c) {
73
263
        size_t size = a.size();
74
263
        const A* __restrict a_pos = a.data();
75
263
        const B* __restrict b_pos = b.data();
76
263
        UInt8* __restrict c_pos = c.data();
77
263
        const A* __restrict a_end = a_pos + size;
78
79
1.81k
        while (a_pos < a_end) {
80
1.55k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1.55k
            ++a_pos;
82
1.55k
            ++b_pos;
83
1.55k
            ++c_pos;
84
1.55k
        }
85
263
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
142
                                        PaddedPODArray<UInt8>& c) {
73
142
        size_t size = a.size();
74
142
        const A* __restrict a_pos = a.data();
75
142
        const B* __restrict b_pos = b.data();
76
142
        UInt8* __restrict c_pos = c.data();
77
142
        const A* __restrict a_end = a_pos + size;
78
79
1.37k
        while (a_pos < a_end) {
80
1.23k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1.23k
            ++a_pos;
82
1.23k
            ++b_pos;
83
1.23k
            ++c_pos;
84
1.23k
        }
85
142
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
69
                                        PaddedPODArray<UInt8>& c) {
73
69
        size_t size = a.size();
74
69
        const A* __restrict a_pos = a.data();
75
69
        const B* __restrict b_pos = b.data();
76
69
        UInt8* __restrict c_pos = c.data();
77
69
        const A* __restrict a_end = a_pos + size;
78
79
138
        while (a_pos < a_end) {
80
69
            *c_pos = Op::apply(*a_pos, *b_pos);
81
69
            ++a_pos;
82
69
            ++b_pos;
83
69
            ++c_pos;
84
69
        }
85
69
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
5
                                        PaddedPODArray<UInt8>& c) {
73
5
        size_t size = a.size();
74
5
        const A* __restrict a_pos = a.data();
75
5
        const B* __restrict b_pos = b.data();
76
5
        UInt8* __restrict c_pos = c.data();
77
5
        const A* __restrict a_end = a_pos + size;
78
79
10
        while (a_pos < a_end) {
80
5
            *c_pos = Op::apply(*a_pos, *b_pos);
81
5
            ++a_pos;
82
5
            ++b_pos;
83
5
            ++c_pos;
84
5
        }
85
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
13
                                        PaddedPODArray<UInt8>& c) {
73
13
        size_t size = a.size();
74
13
        const A* __restrict a_pos = a.data();
75
13
        const B* __restrict b_pos = b.data();
76
13
        UInt8* __restrict c_pos = c.data();
77
13
        const A* __restrict a_end = a_pos + size;
78
79
26
        while (a_pos < a_end) {
80
13
            *c_pos = Op::apply(*a_pos, *b_pos);
81
13
            ++a_pos;
82
13
            ++b_pos;
83
13
            ++c_pos;
84
13
        }
85
13
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
91
                                        PaddedPODArray<UInt8>& c) {
73
91
        size_t size = a.size();
74
91
        const A* __restrict a_pos = a.data();
75
91
        const B* __restrict b_pos = b.data();
76
91
        UInt8* __restrict c_pos = c.data();
77
91
        const A* __restrict a_end = a_pos + size;
78
79
201
        while (a_pos < a_end) {
80
110
            *c_pos = Op::apply(*a_pos, *b_pos);
81
110
            ++a_pos;
82
110
            ++b_pos;
83
110
            ++c_pos;
84
110
        }
85
91
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
97
                                        PaddedPODArray<UInt8>& c) {
73
97
        size_t size = a.size();
74
97
        const A* __restrict a_pos = a.data();
75
97
        const B* __restrict b_pos = b.data();
76
97
        UInt8* __restrict c_pos = c.data();
77
97
        const A* __restrict a_end = a_pos + size;
78
79
215
        while (a_pos < a_end) {
80
118
            *c_pos = Op::apply(*a_pos, *b_pos);
81
118
            ++a_pos;
82
118
            ++b_pos;
83
118
            ++c_pos;
84
118
        }
85
97
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
4
                                        PaddedPODArray<UInt8>& c) {
73
4
        size_t size = a.size();
74
4
        const A* __restrict a_pos = a.data();
75
4
        const B* __restrict b_pos = b.data();
76
4
        UInt8* __restrict c_pos = c.data();
77
4
        const A* __restrict a_end = a_pos + size;
78
79
8
        while (a_pos < a_end) {
80
4
            *c_pos = Op::apply(*a_pos, *b_pos);
81
4
            ++a_pos;
82
4
            ++b_pos;
83
4
            ++c_pos;
84
4
        }
85
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
39
                                        PaddedPODArray<UInt8>& c) {
73
39
        size_t size = a.size();
74
39
        const A* __restrict a_pos = a.data();
75
39
        const B* __restrict b_pos = b.data();
76
39
        UInt8* __restrict c_pos = c.data();
77
39
        const A* __restrict a_end = a_pos + size;
78
79
108
        while (a_pos < a_end) {
80
69
            *c_pos = Op::apply(*a_pos, *b_pos);
81
69
            ++a_pos;
82
69
            ++b_pos;
83
69
            ++c_pos;
84
69
        }
85
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
56
                                        PaddedPODArray<UInt8>& c) {
73
56
        size_t size = a.size();
74
56
        const A* __restrict a_pos = a.data();
75
56
        const B* __restrict b_pos = b.data();
76
56
        UInt8* __restrict c_pos = c.data();
77
56
        const A* __restrict a_end = a_pos + size;
78
79
252
        while (a_pos < a_end) {
80
196
            *c_pos = Op::apply(*a_pos, *b_pos);
81
196
            ++a_pos;
82
196
            ++b_pos;
83
196
            ++c_pos;
84
196
        }
85
56
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1.21k
                                        PaddedPODArray<UInt8>& c) {
73
1.21k
        size_t size = a.size();
74
1.21k
        const A* __restrict a_pos = a.data();
75
1.21k
        const B* __restrict b_pos = b.data();
76
1.21k
        UInt8* __restrict c_pos = c.data();
77
1.21k
        const A* __restrict a_end = a_pos + size;
78
79
361k
        while (a_pos < a_end) {
80
360k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
360k
            ++a_pos;
82
360k
            ++b_pos;
83
360k
            ++c_pos;
84
360k
        }
85
1.21k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
361
                                        PaddedPODArray<UInt8>& c) {
73
361
        size_t size = a.size();
74
361
        const A* __restrict a_pos = a.data();
75
361
        const B* __restrict b_pos = b.data();
76
361
        UInt8* __restrict c_pos = c.data();
77
361
        const A* __restrict a_end = a_pos + size;
78
79
6.98k
        while (a_pos < a_end) {
80
6.62k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
6.62k
            ++a_pos;
82
6.62k
            ++b_pos;
83
6.62k
            ++c_pos;
84
6.62k
        }
85
361
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
1.37k
                                        PaddedPODArray<UInt8>& c) {
73
1.37k
        size_t size = a.size();
74
1.37k
        const A* __restrict a_pos = a.data();
75
1.37k
        const B* __restrict b_pos = b.data();
76
1.37k
        UInt8* __restrict c_pos = c.data();
77
1.37k
        const A* __restrict a_end = a_pos + size;
78
79
3.88M
        while (a_pos < a_end) {
80
3.88M
            *c_pos = Op::apply(*a_pos, *b_pos);
81
3.88M
            ++a_pos;
82
3.88M
            ++b_pos;
83
3.88M
            ++c_pos;
84
3.88M
        }
85
1.37k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
10
        while (a_pos < a_end) {
80
9
            *c_pos = Op::apply(*a_pos, *b_pos);
81
9
            ++a_pos;
82
9
            ++b_pos;
83
9
            ++c_pos;
84
9
        }
85
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
38
                                        PaddedPODArray<UInt8>& c) {
73
38
        size_t size = a.size();
74
38
        const A* __restrict a_pos = a.data();
75
38
        const B* __restrict b_pos = b.data();
76
38
        UInt8* __restrict c_pos = c.data();
77
38
        const A* __restrict a_end = a_pos + size;
78
79
322
        while (a_pos < a_end) {
80
284
            *c_pos = Op::apply(*a_pos, *b_pos);
81
284
            ++a_pos;
82
284
            ++b_pos;
83
284
            ++c_pos;
84
284
        }
85
38
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
112
                                        PaddedPODArray<UInt8>& c) {
73
112
        size_t size = a.size();
74
112
        const A* __restrict a_pos = a.data();
75
112
        const B* __restrict b_pos = b.data();
76
112
        UInt8* __restrict c_pos = c.data();
77
112
        const A* __restrict a_end = a_pos + size;
78
79
376
        while (a_pos < a_end) {
80
264
            *c_pos = Op::apply(*a_pos, *b_pos);
81
264
            ++a_pos;
82
264
            ++b_pos;
83
264
            ++c_pos;
84
264
        }
85
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
31
                                        PaddedPODArray<UInt8>& c) {
73
31
        size_t size = a.size();
74
31
        const A* __restrict a_pos = a.data();
75
31
        const B* __restrict b_pos = b.data();
76
31
        UInt8* __restrict c_pos = c.data();
77
31
        const A* __restrict a_end = a_pos + size;
78
79
257
        while (a_pos < a_end) {
80
226
            *c_pos = Op::apply(*a_pos, *b_pos);
81
226
            ++a_pos;
82
226
            ++b_pos;
83
226
            ++c_pos;
84
226
        }
85
31
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
64
                                        PaddedPODArray<UInt8>& c) {
73
64
        size_t size = a.size();
74
64
        const A* __restrict a_pos = a.data();
75
64
        const B* __restrict b_pos = b.data();
76
64
        UInt8* __restrict c_pos = c.data();
77
64
        const A* __restrict a_end = a_pos + size;
78
79
576
        while (a_pos < a_end) {
80
512
            *c_pos = Op::apply(*a_pos, *b_pos);
81
512
            ++a_pos;
82
512
            ++b_pos;
83
512
            ++c_pos;
84
512
        }
85
64
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
2
                                        PaddedPODArray<UInt8>& c) {
73
2
        size_t size = a.size();
74
2
        const A* __restrict a_pos = a.data();
75
2
        const B* __restrict b_pos = b.data();
76
2
        UInt8* __restrict c_pos = c.data();
77
2
        const A* __restrict a_end = a_pos + size;
78
79
6
        while (a_pos < a_end) {
80
4
            *c_pos = Op::apply(*a_pos, *b_pos);
81
4
            ++a_pos;
82
4
            ++b_pos;
83
4
            ++c_pos;
84
4
        }
85
2
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
30
                                        PaddedPODArray<UInt8>& c) {
73
30
        size_t size = a.size();
74
30
        const A* __restrict a_pos = a.data();
75
30
        const B* __restrict b_pos = b.data();
76
30
        UInt8* __restrict c_pos = c.data();
77
30
        const A* __restrict a_end = a_pos + size;
78
79
100
        while (a_pos < a_end) {
80
70
            *c_pos = Op::apply(*a_pos, *b_pos);
81
70
            ++a_pos;
82
70
            ++b_pos;
83
70
            ++c_pos;
84
70
        }
85
30
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
6
                                        PaddedPODArray<UInt8>& c) {
73
6
        size_t size = a.size();
74
6
        const A* __restrict a_pos = a.data();
75
6
        const B* __restrict b_pos = b.data();
76
6
        UInt8* __restrict c_pos = c.data();
77
6
        const A* __restrict a_end = a_pos + size;
78
79
70
        while (a_pos < a_end) {
80
64
            *c_pos = Op::apply(*a_pos, *b_pos);
81
64
            ++a_pos;
82
64
            ++b_pos;
83
64
            ++c_pos;
84
64
        }
85
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
10
        while (a_pos < a_end) {
80
9
            *c_pos = Op::apply(*a_pos, *b_pos);
81
9
            ++a_pos;
82
9
            ++b_pos;
83
9
            ++c_pos;
84
9
        }
85
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
72
3
                                        PaddedPODArray<UInt8>& c) {
73
3
        size_t size = a.size();
74
3
        const A* __restrict a_pos = a.data();
75
3
        const B* __restrict b_pos = b.data();
76
3
        UInt8* __restrict c_pos = c.data();
77
3
        const A* __restrict a_end = a_pos + size;
78
79
7
        while (a_pos < a_end) {
80
4
            *c_pos = Op::apply(*a_pos, *b_pos);
81
4
            ++a_pos;
82
4
            ++b_pos;
83
4
            ++c_pos;
84
4
        }
85
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
9
                                        PaddedPODArray<UInt8>& c) {
73
9
        size_t size = a.size();
74
9
        const A* __restrict a_pos = a.data();
75
9
        const B* __restrict b_pos = b.data();
76
9
        UInt8* __restrict c_pos = c.data();
77
9
        const A* __restrict a_end = a_pos + size;
78
79
64
        while (a_pos < a_end) {
80
55
            *c_pos = Op::apply(*a_pos, *b_pos);
81
55
            ++a_pos;
82
55
            ++b_pos;
83
55
            ++c_pos;
84
55
        }
85
9
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
2
        while (a_pos < a_end) {
80
1
            *c_pos = Op::apply(*a_pos, *b_pos);
81
1
            ++a_pos;
82
1
            ++b_pos;
83
1
            ++c_pos;
84
1
        }
85
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
24
                                        PaddedPODArray<UInt8>& c) {
73
24
        size_t size = a.size();
74
24
        const A* __restrict a_pos = a.data();
75
24
        const B* __restrict b_pos = b.data();
76
24
        UInt8* __restrict c_pos = c.data();
77
24
        const A* __restrict a_end = a_pos + size;
78
79
67
        while (a_pos < a_end) {
80
43
            *c_pos = Op::apply(*a_pos, *b_pos);
81
43
            ++a_pos;
82
43
            ++b_pos;
83
43
            ++c_pos;
84
43
        }
85
24
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
72
91
                                        PaddedPODArray<UInt8>& c) {
73
91
        size_t size = a.size();
74
91
        const A* __restrict a_pos = a.data();
75
91
        const B* __restrict b_pos = b.data();
76
91
        UInt8* __restrict c_pos = c.data();
77
91
        const A* __restrict a_end = a_pos + size;
78
79
356
        while (a_pos < a_end) {
80
265
            *c_pos = Op::apply(*a_pos, *b_pos);
81
265
            ++a_pos;
82
265
            ++b_pos;
83
265
            ++c_pos;
84
265
        }
85
91
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
1.81k
                                        PaddedPODArray<UInt8>& c) {
73
1.81k
        size_t size = a.size();
74
1.81k
        const A* __restrict a_pos = a.data();
75
1.81k
        const B* __restrict b_pos = b.data();
76
1.81k
        UInt8* __restrict c_pos = c.data();
77
1.81k
        const A* __restrict a_end = a_pos + size;
78
79
2.94M
        while (a_pos < a_end) {
80
2.93M
            *c_pos = Op::apply(*a_pos, *b_pos);
81
2.93M
            ++a_pos;
82
2.93M
            ++b_pos;
83
2.93M
            ++c_pos;
84
2.93M
        }
85
1.81k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
279
                                        PaddedPODArray<UInt8>& c) {
73
279
        size_t size = a.size();
74
279
        const A* __restrict a_pos = a.data();
75
279
        const B* __restrict b_pos = b.data();
76
279
        UInt8* __restrict c_pos = c.data();
77
279
        const A* __restrict a_end = a_pos + size;
78
79
906
        while (a_pos < a_end) {
80
627
            *c_pos = Op::apply(*a_pos, *b_pos);
81
627
            ++a_pos;
82
627
            ++b_pos;
83
627
            ++c_pos;
84
627
        }
85
279
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
10
        while (a_pos < a_end) {
80
9
            *c_pos = Op::apply(*a_pos, *b_pos);
81
9
            ++a_pos;
82
9
            ++b_pos;
83
9
            ++c_pos;
84
9
        }
85
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
151
                                        PaddedPODArray<UInt8>& c) {
73
151
        size_t size = a.size();
74
151
        const A* __restrict a_pos = a.data();
75
151
        const B* __restrict b_pos = b.data();
76
151
        UInt8* __restrict c_pos = c.data();
77
151
        const A* __restrict a_end = a_pos + size;
78
79
476
        while (a_pos < a_end) {
80
325
            *c_pos = Op::apply(*a_pos, *b_pos);
81
325
            ++a_pos;
82
325
            ++b_pos;
83
325
            ++c_pos;
84
325
        }
85
151
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
137
                                        PaddedPODArray<UInt8>& c) {
73
137
        size_t size = a.size();
74
137
        const A* __restrict a_pos = a.data();
75
137
        const B* __restrict b_pos = b.data();
76
137
        UInt8* __restrict c_pos = c.data();
77
137
        const A* __restrict a_end = a_pos + size;
78
79
450
        while (a_pos < a_end) {
80
313
            *c_pos = Op::apply(*a_pos, *b_pos);
81
313
            ++a_pos;
82
313
            ++b_pos;
83
313
            ++c_pos;
84
313
        }
85
137
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
178
                                        PaddedPODArray<UInt8>& c) {
73
178
        size_t size = a.size();
74
178
        const A* __restrict a_pos = a.data();
75
178
        const B* __restrict b_pos = b.data();
76
178
        UInt8* __restrict c_pos = c.data();
77
178
        const A* __restrict a_end = a_pos + size;
78
79
1.05k
        while (a_pos < a_end) {
80
879
            *c_pos = Op::apply(*a_pos, *b_pos);
81
879
            ++a_pos;
82
879
            ++b_pos;
83
879
            ++c_pos;
84
879
        }
85
178
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
213
                                        PaddedPODArray<UInt8>& c) {
73
213
        size_t size = a.size();
74
213
        const A* __restrict a_pos = a.data();
75
213
        const B* __restrict b_pos = b.data();
76
213
        UInt8* __restrict c_pos = c.data();
77
213
        const A* __restrict a_end = a_pos + size;
78
79
5.42k
        while (a_pos < a_end) {
80
5.20k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
5.20k
            ++a_pos;
82
5.20k
            ++b_pos;
83
5.20k
            ++c_pos;
84
5.20k
        }
85
213
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
151
                                        PaddedPODArray<UInt8>& c) {
73
151
        size_t size = a.size();
74
151
        const A* __restrict a_pos = a.data();
75
151
        const B* __restrict b_pos = b.data();
76
151
        UInt8* __restrict c_pos = c.data();
77
151
        const A* __restrict a_end = a_pos + size;
78
79
476
        while (a_pos < a_end) {
80
325
            *c_pos = Op::apply(*a_pos, *b_pos);
81
325
            ++a_pos;
82
325
            ++b_pos;
83
325
            ++c_pos;
84
325
        }
85
151
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
16
                                        PaddedPODArray<UInt8>& c) {
73
16
        size_t size = a.size();
74
16
        const A* __restrict a_pos = a.data();
75
16
        const B* __restrict b_pos = b.data();
76
16
        UInt8* __restrict c_pos = c.data();
77
16
        const A* __restrict a_end = a_pos + size;
78
79
32
        while (a_pos < a_end) {
80
16
            *c_pos = Op::apply(*a_pos, *b_pos);
81
16
            ++a_pos;
82
16
            ++b_pos;
83
16
            ++c_pos;
84
16
        }
85
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
16
                                        PaddedPODArray<UInt8>& c) {
73
16
        size_t size = a.size();
74
16
        const A* __restrict a_pos = a.data();
75
16
        const B* __restrict b_pos = b.data();
76
16
        UInt8* __restrict c_pos = c.data();
77
16
        const A* __restrict a_end = a_pos + size;
78
79
32
        while (a_pos < a_end) {
80
16
            *c_pos = Op::apply(*a_pos, *b_pos);
81
16
            ++a_pos;
82
16
            ++b_pos;
83
16
            ++c_pos;
84
16
        }
85
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
153
                                        PaddedPODArray<UInt8>& c) {
73
153
        size_t size = a.size();
74
153
        const A* __restrict a_pos = a.data();
75
153
        const B* __restrict b_pos = b.data();
76
153
        UInt8* __restrict c_pos = c.data();
77
153
        const A* __restrict a_end = a_pos + size;
78
79
499
        while (a_pos < a_end) {
80
346
            *c_pos = Op::apply(*a_pos, *b_pos);
81
346
            ++a_pos;
82
346
            ++b_pos;
83
346
            ++c_pos;
84
346
        }
85
153
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
156
                                        PaddedPODArray<UInt8>& c) {
73
156
        size_t size = a.size();
74
156
        const A* __restrict a_pos = a.data();
75
156
        const B* __restrict b_pos = b.data();
76
156
        UInt8* __restrict c_pos = c.data();
77
156
        const A* __restrict a_end = a_pos + size;
78
79
512
        while (a_pos < a_end) {
80
356
            *c_pos = Op::apply(*a_pos, *b_pos);
81
356
            ++a_pos;
82
356
            ++b_pos;
83
356
            ++c_pos;
84
356
        }
85
156
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
72
422
                                        PaddedPODArray<UInt8>& c) {
73
422
        size_t size = a.size();
74
422
        const A* __restrict a_pos = a.data();
75
422
        const B* __restrict b_pos = b.data();
76
422
        UInt8* __restrict c_pos = c.data();
77
422
        const A* __restrict a_end = a_pos + size;
78
79
6.83k
        while (a_pos < a_end) {
80
6.41k
            *c_pos = Op::apply(*a_pos, *b_pos);
81
6.41k
            ++a_pos;
82
6.41k
            ++b_pos;
83
6.41k
            ++c_pos;
84
6.41k
        }
85
422
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
10
        while (a_pos < a_end) {
80
9
            *c_pos = Op::apply(*a_pos, *b_pos);
81
9
            ++a_pos;
82
9
            ++b_pos;
83
9
            ++c_pos;
84
9
        }
85
1
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
1
                                        PaddedPODArray<UInt8>& c) {
73
1
        size_t size = a.size();
74
1
        const A* __restrict a_pos = a.data();
75
1
        const B* __restrict b_pos = b.data();
76
1
        UInt8* __restrict c_pos = c.data();
77
1
        const A* __restrict a_end = a_pos + size;
78
79
5
        while (a_pos < a_end) {
80
4
            *c_pos = Op::apply(*a_pos, *b_pos);
81
4
            ++a_pos;
82
4
            ++b_pos;
83
4
            ++c_pos;
84
4
        }
85
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
10
                                        PaddedPODArray<UInt8>& c) {
73
10
        size_t size = a.size();
74
10
        const A* __restrict a_pos = a.data();
75
10
        const B* __restrict b_pos = b.data();
76
10
        UInt8* __restrict c_pos = c.data();
77
10
        const A* __restrict a_end = a_pos + size;
78
79
33
        while (a_pos < a_end) {
80
23
            *c_pos = Op::apply(*a_pos, *b_pos);
81
23
            ++a_pos;
82
23
            ++b_pos;
83
23
            ++c_pos;
84
23
        }
85
10
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
31
                                        PaddedPODArray<UInt8>& c) {
73
31
        size_t size = a.size();
74
31
        const A* __restrict a_pos = a.data();
75
31
        const B* __restrict b_pos = b.data();
76
31
        UInt8* __restrict c_pos = c.data();
77
31
        const A* __restrict a_end = a_pos + size;
78
79
69
        while (a_pos < a_end) {
80
38
            *c_pos = Op::apply(*a_pos, *b_pos);
81
38
            ++a_pos;
82
38
            ++b_pos;
83
38
            ++c_pos;
84
38
        }
85
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
72
20
                                        PaddedPODArray<UInt8>& c) {
73
20
        size_t size = a.size();
74
20
        const A* __restrict a_pos = a.data();
75
20
        const B* __restrict b_pos = b.data();
76
20
        UInt8* __restrict c_pos = c.data();
77
20
        const A* __restrict a_end = a_pos + size;
78
79
59
        while (a_pos < a_end) {
80
39
            *c_pos = Op::apply(*a_pos, *b_pos);
81
39
            ++a_pos;
82
39
            ++b_pos;
83
39
            ++c_pos;
84
39
        }
85
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
86
87
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
88
98.5k
                                          PaddedPODArray<UInt8>& c) {
89
98.5k
        size_t size = a.size();
90
98.5k
        const A* __restrict a_pos = a.data();
91
98.5k
        UInt8* __restrict c_pos = c.data();
92
98.5k
        const A* __restrict a_end = a_pos + size;
93
94
33.2M
        while (a_pos < a_end) {
95
33.1M
            *c_pos = Op::apply(*a_pos, b);
96
33.1M
            ++a_pos;
97
33.1M
            ++c_pos;
98
33.1M
        }
99
98.5k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
88
24
                                          PaddedPODArray<UInt8>& c) {
89
24
        size_t size = a.size();
90
24
        const A* __restrict a_pos = a.data();
91
24
        UInt8* __restrict c_pos = c.data();
92
24
        const A* __restrict a_end = a_pos + size;
93
94
168
        while (a_pos < a_end) {
95
144
            *c_pos = Op::apply(*a_pos, b);
96
144
            ++a_pos;
97
144
            ++c_pos;
98
144
        }
99
24
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
424
                                          PaddedPODArray<UInt8>& c) {
89
424
        size_t size = a.size();
90
424
        const A* __restrict a_pos = a.data();
91
424
        UInt8* __restrict c_pos = c.data();
92
424
        const A* __restrict a_end = a_pos + size;
93
94
204k
        while (a_pos < a_end) {
95
204k
            *c_pos = Op::apply(*a_pos, b);
96
204k
            ++a_pos;
97
204k
            ++c_pos;
98
204k
        }
99
424
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
121
                                          PaddedPODArray<UInt8>& c) {
89
121
        size_t size = a.size();
90
121
        const A* __restrict a_pos = a.data();
91
121
        UInt8* __restrict c_pos = c.data();
92
121
        const A* __restrict a_end = a_pos + size;
93
94
100k
        while (a_pos < a_end) {
95
100k
            *c_pos = Op::apply(*a_pos, b);
96
100k
            ++a_pos;
97
100k
            ++c_pos;
98
100k
        }
99
121
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
4.79k
                                          PaddedPODArray<UInt8>& c) {
89
4.79k
        size_t size = a.size();
90
4.79k
        const A* __restrict a_pos = a.data();
91
4.79k
        UInt8* __restrict c_pos = c.data();
92
4.79k
        const A* __restrict a_end = a_pos + size;
93
94
8.96M
        while (a_pos < a_end) {
95
8.96M
            *c_pos = Op::apply(*a_pos, b);
96
8.96M
            ++a_pos;
97
8.96M
            ++c_pos;
98
8.96M
        }
99
4.79k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
293
                                          PaddedPODArray<UInt8>& c) {
89
293
        size_t size = a.size();
90
293
        const A* __restrict a_pos = a.data();
91
293
        UInt8* __restrict c_pos = c.data();
92
293
        const A* __restrict a_end = a_pos + size;
93
94
101k
        while (a_pos < a_end) {
95
100k
            *c_pos = Op::apply(*a_pos, b);
96
100k
            ++a_pos;
97
100k
            ++c_pos;
98
100k
        }
99
293
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.77k
                                          PaddedPODArray<UInt8>& c) {
89
1.77k
        size_t size = a.size();
90
1.77k
        const A* __restrict a_pos = a.data();
91
1.77k
        UInt8* __restrict c_pos = c.data();
92
1.77k
        const A* __restrict a_end = a_pos + size;
93
94
188k
        while (a_pos < a_end) {
95
186k
            *c_pos = Op::apply(*a_pos, b);
96
186k
            ++a_pos;
97
186k
            ++c_pos;
98
186k
        }
99
1.77k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
2.75k
                                          PaddedPODArray<UInt8>& c) {
89
2.75k
        size_t size = a.size();
90
2.75k
        const A* __restrict a_pos = a.data();
91
2.75k
        UInt8* __restrict c_pos = c.data();
92
2.75k
        const A* __restrict a_end = a_pos + size;
93
94
882k
        while (a_pos < a_end) {
95
879k
            *c_pos = Op::apply(*a_pos, b);
96
879k
            ++a_pos;
97
879k
            ++c_pos;
98
879k
        }
99
2.75k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
31
                                          PaddedPODArray<UInt8>& c) {
89
31
        size_t size = a.size();
90
31
        const A* __restrict a_pos = a.data();
91
31
        UInt8* __restrict c_pos = c.data();
92
31
        const A* __restrict a_end = a_pos + size;
93
94
100k
        while (a_pos < a_end) {
95
100k
            *c_pos = Op::apply(*a_pos, b);
96
100k
            ++a_pos;
97
100k
            ++c_pos;
98
100k
        }
99
31
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
7
                                          PaddedPODArray<UInt8>& c) {
89
7
        size_t size = a.size();
90
7
        const A* __restrict a_pos = a.data();
91
7
        UInt8* __restrict c_pos = c.data();
92
7
        const A* __restrict a_end = a_pos + size;
93
94
21
        while (a_pos < a_end) {
95
14
            *c_pos = Op::apply(*a_pos, b);
96
14
            ++a_pos;
97
14
            ++c_pos;
98
14
        }
99
7
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
4
                                          PaddedPODArray<UInt8>& c) {
89
4
        size_t size = a.size();
90
4
        const A* __restrict a_pos = a.data();
91
4
        UInt8* __restrict c_pos = c.data();
92
4
        const A* __restrict a_end = a_pos + size;
93
94
8
        while (a_pos < a_end) {
95
4
            *c_pos = Op::apply(*a_pos, b);
96
4
            ++a_pos;
97
4
            ++c_pos;
98
4
        }
99
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
623
                                          PaddedPODArray<UInt8>& c) {
89
623
        size_t size = a.size();
90
623
        const A* __restrict a_pos = a.data();
91
623
        UInt8* __restrict c_pos = c.data();
92
623
        const A* __restrict a_end = a_pos + size;
93
94
713k
        while (a_pos < a_end) {
95
712k
            *c_pos = Op::apply(*a_pos, b);
96
712k
            ++a_pos;
97
712k
            ++c_pos;
98
712k
        }
99
623
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
29
                                          PaddedPODArray<UInt8>& c) {
89
29
        size_t size = a.size();
90
29
        const A* __restrict a_pos = a.data();
91
29
        UInt8* __restrict c_pos = c.data();
92
29
        const A* __restrict a_end = a_pos + size;
93
94
77
        while (a_pos < a_end) {
95
48
            *c_pos = Op::apply(*a_pos, b);
96
48
            ++a_pos;
97
48
            ++c_pos;
98
48
        }
99
29
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
28
                                          PaddedPODArray<UInt8>& c) {
89
28
        size_t size = a.size();
90
28
        const A* __restrict a_pos = a.data();
91
28
        UInt8* __restrict c_pos = c.data();
92
28
        const A* __restrict a_end = a_pos + size;
93
94
78
        while (a_pos < a_end) {
95
50
            *c_pos = Op::apply(*a_pos, b);
96
50
            ++a_pos;
97
50
            ++c_pos;
98
50
        }
99
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
241
                                          PaddedPODArray<UInt8>& c) {
89
241
        size_t size = a.size();
90
241
        const A* __restrict a_pos = a.data();
91
241
        UInt8* __restrict c_pos = c.data();
92
241
        const A* __restrict a_end = a_pos + size;
93
94
1.80k
        while (a_pos < a_end) {
95
1.55k
            *c_pos = Op::apply(*a_pos, b);
96
1.55k
            ++a_pos;
97
1.55k
            ++c_pos;
98
1.55k
        }
99
241
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
447
                                          PaddedPODArray<UInt8>& c) {
89
447
        size_t size = a.size();
90
447
        const A* __restrict a_pos = a.data();
91
447
        UInt8* __restrict c_pos = c.data();
92
447
        const A* __restrict a_end = a_pos + size;
93
94
3.58k
        while (a_pos < a_end) {
95
3.13k
            *c_pos = Op::apply(*a_pos, b);
96
3.13k
            ++a_pos;
97
3.13k
            ++c_pos;
98
3.13k
        }
99
447
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
28
                                          PaddedPODArray<UInt8>& c) {
89
28
        size_t size = a.size();
90
28
        const A* __restrict a_pos = a.data();
91
28
        UInt8* __restrict c_pos = c.data();
92
28
        const A* __restrict a_end = a_pos + size;
93
94
70
        while (a_pos < a_end) {
95
42
            *c_pos = Op::apply(*a_pos, b);
96
42
            ++a_pos;
97
42
            ++c_pos;
98
42
        }
99
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
40
                                          PaddedPODArray<UInt8>& c) {
89
40
        size_t size = a.size();
90
40
        const A* __restrict a_pos = a.data();
91
40
        UInt8* __restrict c_pos = c.data();
92
40
        const A* __restrict a_end = a_pos + size;
93
94
282
        while (a_pos < a_end) {
95
242
            *c_pos = Op::apply(*a_pos, b);
96
242
            ++a_pos;
97
242
            ++c_pos;
98
242
        }
99
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
40
                                          PaddedPODArray<UInt8>& c) {
89
40
        size_t size = a.size();
90
40
        const A* __restrict a_pos = a.data();
91
40
        UInt8* __restrict c_pos = c.data();
92
40
        const A* __restrict a_end = a_pos + size;
93
94
147
        while (a_pos < a_end) {
95
107
            *c_pos = Op::apply(*a_pos, b);
96
107
            ++a_pos;
97
107
            ++c_pos;
98
107
        }
99
40
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
314
                                          PaddedPODArray<UInt8>& c) {
89
314
        size_t size = a.size();
90
314
        const A* __restrict a_pos = a.data();
91
314
        UInt8* __restrict c_pos = c.data();
92
314
        const A* __restrict a_end = a_pos + size;
93
94
1.34M
        while (a_pos < a_end) {
95
1.34M
            *c_pos = Op::apply(*a_pos, b);
96
1.34M
            ++a_pos;
97
1.34M
            ++c_pos;
98
1.34M
        }
99
314
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
2
                                          PaddedPODArray<UInt8>& c) {
89
2
        size_t size = a.size();
90
2
        const A* __restrict a_pos = a.data();
91
2
        UInt8* __restrict c_pos = c.data();
92
2
        const A* __restrict a_end = a_pos + size;
93
94
6
        while (a_pos < a_end) {
95
4
            *c_pos = Op::apply(*a_pos, b);
96
4
            ++a_pos;
97
4
            ++c_pos;
98
4
        }
99
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
59
                                          PaddedPODArray<UInt8>& c) {
89
59
        size_t size = a.size();
90
59
        const A* __restrict a_pos = a.data();
91
59
        UInt8* __restrict c_pos = c.data();
92
59
        const A* __restrict a_end = a_pos + size;
93
94
269
        while (a_pos < a_end) {
95
210
            *c_pos = Op::apply(*a_pos, b);
96
210
            ++a_pos;
97
210
            ++c_pos;
98
210
        }
99
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
88
1
                                          PaddedPODArray<UInt8>& c) {
89
1
        size_t size = a.size();
90
1
        const A* __restrict a_pos = a.data();
91
1
        UInt8* __restrict c_pos = c.data();
92
1
        const A* __restrict a_end = a_pos + size;
93
94
8
        while (a_pos < a_end) {
95
7
            *c_pos = Op::apply(*a_pos, b);
96
7
            ++a_pos;
97
7
            ++c_pos;
98
7
        }
99
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.28k
                                          PaddedPODArray<UInt8>& c) {
89
1.28k
        size_t size = a.size();
90
1.28k
        const A* __restrict a_pos = a.data();
91
1.28k
        UInt8* __restrict c_pos = c.data();
92
1.28k
        const A* __restrict a_end = a_pos + size;
93
94
7.13k
        while (a_pos < a_end) {
95
5.84k
            *c_pos = Op::apply(*a_pos, b);
96
5.84k
            ++a_pos;
97
5.84k
            ++c_pos;
98
5.84k
        }
99
1.28k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.97k
                                          PaddedPODArray<UInt8>& c) {
89
1.97k
        size_t size = a.size();
90
1.97k
        const A* __restrict a_pos = a.data();
91
1.97k
        UInt8* __restrict c_pos = c.data();
92
1.97k
        const A* __restrict a_end = a_pos + size;
93
94
5.53k
        while (a_pos < a_end) {
95
3.56k
            *c_pos = Op::apply(*a_pos, b);
96
3.56k
            ++a_pos;
97
3.56k
            ++c_pos;
98
3.56k
        }
99
1.97k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.45k
                                          PaddedPODArray<UInt8>& c) {
89
1.45k
        size_t size = a.size();
90
1.45k
        const A* __restrict a_pos = a.data();
91
1.45k
        UInt8* __restrict c_pos = c.data();
92
1.45k
        const A* __restrict a_end = a_pos + size;
93
94
6.26k
        while (a_pos < a_end) {
95
4.81k
            *c_pos = Op::apply(*a_pos, b);
96
4.81k
            ++a_pos;
97
4.81k
            ++c_pos;
98
4.81k
        }
99
1.45k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
218
                                          PaddedPODArray<UInt8>& c) {
89
218
        size_t size = a.size();
90
218
        const A* __restrict a_pos = a.data();
91
218
        UInt8* __restrict c_pos = c.data();
92
218
        const A* __restrict a_end = a_pos + size;
93
94
1.19k
        while (a_pos < a_end) {
95
980
            *c_pos = Op::apply(*a_pos, b);
96
980
            ++a_pos;
97
980
            ++c_pos;
98
980
        }
99
218
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
4.79k
                                          PaddedPODArray<UInt8>& c) {
89
4.79k
        size_t size = a.size();
90
4.79k
        const A* __restrict a_pos = a.data();
91
4.79k
        UInt8* __restrict c_pos = c.data();
92
4.79k
        const A* __restrict a_end = a_pos + size;
93
94
959k
        while (a_pos < a_end) {
95
954k
            *c_pos = Op::apply(*a_pos, b);
96
954k
            ++a_pos;
97
954k
            ++c_pos;
98
954k
        }
99
4.79k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
63.3k
                                          PaddedPODArray<UInt8>& c) {
89
63.3k
        size_t size = a.size();
90
63.3k
        const A* __restrict a_pos = a.data();
91
63.3k
        UInt8* __restrict c_pos = c.data();
92
63.3k
        const A* __restrict a_end = a_pos + size;
93
94
5.32M
        while (a_pos < a_end) {
95
5.25M
            *c_pos = Op::apply(*a_pos, b);
96
5.25M
            ++a_pos;
97
5.25M
            ++c_pos;
98
5.25M
        }
99
63.3k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.27k
                                          PaddedPODArray<UInt8>& c) {
89
1.27k
        size_t size = a.size();
90
1.27k
        const A* __restrict a_pos = a.data();
91
1.27k
        UInt8* __restrict c_pos = c.data();
92
1.27k
        const A* __restrict a_end = a_pos + size;
93
94
98.0k
        while (a_pos < a_end) {
95
96.7k
            *c_pos = Op::apply(*a_pos, b);
96
96.7k
            ++a_pos;
97
96.7k
            ++c_pos;
98
96.7k
        }
99
1.27k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.04k
                                          PaddedPODArray<UInt8>& c) {
89
1.04k
        size_t size = a.size();
90
1.04k
        const A* __restrict a_pos = a.data();
91
1.04k
        UInt8* __restrict c_pos = c.data();
92
1.04k
        const A* __restrict a_end = a_pos + size;
93
94
11.7k
        while (a_pos < a_end) {
95
10.6k
            *c_pos = Op::apply(*a_pos, b);
96
10.6k
            ++a_pos;
97
10.6k
            ++c_pos;
98
10.6k
        }
99
1.04k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
294
                                          PaddedPODArray<UInt8>& c) {
89
294
        size_t size = a.size();
90
294
        const A* __restrict a_pos = a.data();
91
294
        UInt8* __restrict c_pos = c.data();
92
294
        const A* __restrict a_end = a_pos + size;
93
94
1.93k
        while (a_pos < a_end) {
95
1.63k
            *c_pos = Op::apply(*a_pos, b);
96
1.63k
            ++a_pos;
97
1.63k
            ++c_pos;
98
1.63k
        }
99
294
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
64
                                          PaddedPODArray<UInt8>& c) {
89
64
        size_t size = a.size();
90
64
        const A* __restrict a_pos = a.data();
91
64
        UInt8* __restrict c_pos = c.data();
92
64
        const A* __restrict a_end = a_pos + size;
93
94
86.2k
        while (a_pos < a_end) {
95
86.1k
            *c_pos = Op::apply(*a_pos, b);
96
86.1k
            ++a_pos;
97
86.1k
            ++c_pos;
98
86.1k
        }
99
64
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
3
                                          PaddedPODArray<UInt8>& c) {
89
3
        size_t size = a.size();
90
3
        const A* __restrict a_pos = a.data();
91
3
        UInt8* __restrict c_pos = c.data();
92
3
        const A* __restrict a_end = a_pos + size;
93
94
31
        while (a_pos < a_end) {
95
28
            *c_pos = Op::apply(*a_pos, b);
96
28
            ++a_pos;
97
28
            ++c_pos;
98
28
        }
99
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
2
                                          PaddedPODArray<UInt8>& c) {
89
2
        size_t size = a.size();
90
2
        const A* __restrict a_pos = a.data();
91
2
        UInt8* __restrict c_pos = c.data();
92
2
        const A* __restrict a_end = a_pos + size;
93
94
22
        while (a_pos < a_end) {
95
20
            *c_pos = Op::apply(*a_pos, b);
96
20
            ++a_pos;
97
20
            ++c_pos;
98
20
        }
99
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
200
                                          PaddedPODArray<UInt8>& c) {
89
200
        size_t size = a.size();
90
200
        const A* __restrict a_pos = a.data();
91
200
        UInt8* __restrict c_pos = c.data();
92
200
        const A* __restrict a_end = a_pos + size;
93
94
2.61k
        while (a_pos < a_end) {
95
2.41k
            *c_pos = Op::apply(*a_pos, b);
96
2.41k
            ++a_pos;
97
2.41k
            ++c_pos;
98
2.41k
        }
99
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
516
                                          PaddedPODArray<UInt8>& c) {
89
516
        size_t size = a.size();
90
516
        const A* __restrict a_pos = a.data();
91
516
        UInt8* __restrict c_pos = c.data();
92
516
        const A* __restrict a_end = a_pos + size;
93
94
7.47k
        while (a_pos < a_end) {
95
6.96k
            *c_pos = Op::apply(*a_pos, b);
96
6.96k
            ++a_pos;
97
6.96k
            ++c_pos;
98
6.96k
        }
99
516
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
200
                                          PaddedPODArray<UInt8>& c) {
89
200
        size_t size = a.size();
90
200
        const A* __restrict a_pos = a.data();
91
200
        UInt8* __restrict c_pos = c.data();
92
200
        const A* __restrict a_end = a_pos + size;
93
94
282k
        while (a_pos < a_end) {
95
282k
            *c_pos = Op::apply(*a_pos, b);
96
282k
            ++a_pos;
97
282k
            ++c_pos;
98
282k
        }
99
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
88
36
                                          PaddedPODArray<UInt8>& c) {
89
36
        size_t size = a.size();
90
36
        const A* __restrict a_pos = a.data();
91
36
        UInt8* __restrict c_pos = c.data();
92
36
        const A* __restrict a_end = a_pos + size;
93
94
180k
        while (a_pos < a_end) {
95
180k
            *c_pos = Op::apply(*a_pos, b);
96
180k
            ++a_pos;
97
180k
            ++c_pos;
98
180k
        }
99
36
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
88
42
                                          PaddedPODArray<UInt8>& c) {
89
42
        size_t size = a.size();
90
42
        const A* __restrict a_pos = a.data();
91
42
        UInt8* __restrict c_pos = c.data();
92
42
        const A* __restrict a_end = a_pos + size;
93
94
150k
        while (a_pos < a_end) {
95
150k
            *c_pos = Op::apply(*a_pos, b);
96
150k
            ++a_pos;
97
150k
            ++c_pos;
98
150k
        }
99
42
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
448
                                          PaddedPODArray<UInt8>& c) {
89
448
        size_t size = a.size();
90
448
        const A* __restrict a_pos = a.data();
91
448
        UInt8* __restrict c_pos = c.data();
92
448
        const A* __restrict a_end = a_pos + size;
93
94
1.46M
        while (a_pos < a_end) {
95
1.46M
            *c_pos = Op::apply(*a_pos, b);
96
1.46M
            ++a_pos;
97
1.46M
            ++c_pos;
98
1.46M
        }
99
448
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
163
                                          PaddedPODArray<UInt8>& c) {
89
163
        size_t size = a.size();
90
163
        const A* __restrict a_pos = a.data();
91
163
        UInt8* __restrict c_pos = c.data();
92
163
        const A* __restrict a_end = a_pos + size;
93
94
731k
        while (a_pos < a_end) {
95
731k
            *c_pos = Op::apply(*a_pos, b);
96
731k
            ++a_pos;
97
731k
            ++c_pos;
98
731k
        }
99
163
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
106
                                          PaddedPODArray<UInt8>& c) {
89
106
        size_t size = a.size();
90
106
        const A* __restrict a_pos = a.data();
91
106
        UInt8* __restrict c_pos = c.data();
92
106
        const A* __restrict a_end = a_pos + size;
93
94
451
        while (a_pos < a_end) {
95
345
            *c_pos = Op::apply(*a_pos, b);
96
345
            ++a_pos;
97
345
            ++c_pos;
98
345
        }
99
106
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
88
42
                                          PaddedPODArray<UInt8>& c) {
89
42
        size_t size = a.size();
90
42
        const A* __restrict a_pos = a.data();
91
42
        UInt8* __restrict c_pos = c.data();
92
42
        const A* __restrict a_end = a_pos + size;
93
94
312
        while (a_pos < a_end) {
95
270
            *c_pos = Op::apply(*a_pos, b);
96
270
            ++a_pos;
97
270
            ++c_pos;
98
270
        }
99
42
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
41
                                          PaddedPODArray<UInt8>& c) {
89
41
        size_t size = a.size();
90
41
        const A* __restrict a_pos = a.data();
91
41
        UInt8* __restrict c_pos = c.data();
92
41
        const A* __restrict a_end = a_pos + size;
93
94
89.4k
        while (a_pos < a_end) {
95
89.4k
            *c_pos = Op::apply(*a_pos, b);
96
89.4k
            ++a_pos;
97
89.4k
            ++c_pos;
98
89.4k
        }
99
41
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
60
                                          PaddedPODArray<UInt8>& c) {
89
60
        size_t size = a.size();
90
60
        const A* __restrict a_pos = a.data();
91
60
        UInt8* __restrict c_pos = c.data();
92
60
        const A* __restrict a_end = a_pos + size;
93
94
160k
        while (a_pos < a_end) {
95
160k
            *c_pos = Op::apply(*a_pos, b);
96
160k
            ++a_pos;
97
160k
            ++c_pos;
98
160k
        }
99
60
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
53
                                          PaddedPODArray<UInt8>& c) {
89
53
        size_t size = a.size();
90
53
        const A* __restrict a_pos = a.data();
91
53
        UInt8* __restrict c_pos = c.data();
92
53
        const A* __restrict a_end = a_pos + size;
93
94
101k
        while (a_pos < a_end) {
95
101k
            *c_pos = Op::apply(*a_pos, b);
96
101k
            ++a_pos;
97
101k
            ++c_pos;
98
101k
        }
99
53
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
77
                                          PaddedPODArray<UInt8>& c) {
89
77
        size_t size = a.size();
90
77
        const A* __restrict a_pos = a.data();
91
77
        UInt8* __restrict c_pos = c.data();
92
77
        const A* __restrict a_end = a_pos + size;
93
94
160k
        while (a_pos < a_end) {
95
160k
            *c_pos = Op::apply(*a_pos, b);
96
160k
            ++a_pos;
97
160k
            ++c_pos;
98
160k
        }
99
77
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
1.53k
                                          PaddedPODArray<UInt8>& c) {
89
1.53k
        size_t size = a.size();
90
1.53k
        const A* __restrict a_pos = a.data();
91
1.53k
        UInt8* __restrict c_pos = c.data();
92
1.53k
        const A* __restrict a_end = a_pos + size;
93
94
3.04M
        while (a_pos < a_end) {
95
3.04M
            *c_pos = Op::apply(*a_pos, b);
96
3.04M
            ++a_pos;
97
3.04M
            ++c_pos;
98
3.04M
        }
99
1.53k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
6.35k
                                          PaddedPODArray<UInt8>& c) {
89
6.35k
        size_t size = a.size();
90
6.35k
        const A* __restrict a_pos = a.data();
91
6.35k
        UInt8* __restrict c_pos = c.data();
92
6.35k
        const A* __restrict a_end = a_pos + size;
93
94
7.06M
        while (a_pos < a_end) {
95
7.05M
            *c_pos = Op::apply(*a_pos, b);
96
7.05M
            ++a_pos;
97
7.05M
            ++c_pos;
98
7.05M
        }
99
6.35k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
245
                                          PaddedPODArray<UInt8>& c) {
89
245
        size_t size = a.size();
90
245
        const A* __restrict a_pos = a.data();
91
245
        UInt8* __restrict c_pos = c.data();
92
245
        const A* __restrict a_end = a_pos + size;
93
94
712
        while (a_pos < a_end) {
95
467
            *c_pos = Op::apply(*a_pos, b);
96
467
            ++a_pos;
97
467
            ++c_pos;
98
467
        }
99
245
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
266
                                          PaddedPODArray<UInt8>& c) {
89
266
        size_t size = a.size();
90
266
        const A* __restrict a_pos = a.data();
91
266
        UInt8* __restrict c_pos = c.data();
92
266
        const A* __restrict a_end = a_pos + size;
93
94
2.96k
        while (a_pos < a_end) {
95
2.70k
            *c_pos = Op::apply(*a_pos, b);
96
2.70k
            ++a_pos;
97
2.70k
            ++c_pos;
98
2.70k
        }
99
266
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
20
                                          PaddedPODArray<UInt8>& c) {
89
20
        size_t size = a.size();
90
20
        const A* __restrict a_pos = a.data();
91
20
        UInt8* __restrict c_pos = c.data();
92
20
        const A* __restrict a_end = a_pos + size;
93
94
63.4k
        while (a_pos < a_end) {
95
63.3k
            *c_pos = Op::apply(*a_pos, b);
96
63.3k
            ++a_pos;
97
63.3k
            ++c_pos;
98
63.3k
        }
99
20
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
34
                                          PaddedPODArray<UInt8>& c) {
89
34
        size_t size = a.size();
90
34
        const A* __restrict a_pos = a.data();
91
34
        UInt8* __restrict c_pos = c.data();
92
34
        const A* __restrict a_end = a_pos + size;
93
94
77.8k
        while (a_pos < a_end) {
95
77.8k
            *c_pos = Op::apply(*a_pos, b);
96
77.8k
            ++a_pos;
97
77.8k
            ++c_pos;
98
77.8k
        }
99
34
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
4
                                          PaddedPODArray<UInt8>& c) {
89
4
        size_t size = a.size();
90
4
        const A* __restrict a_pos = a.data();
91
4
        UInt8* __restrict c_pos = c.data();
92
4
        const A* __restrict a_end = a_pos + size;
93
94
10
        while (a_pos < a_end) {
95
6
            *c_pos = Op::apply(*a_pos, b);
96
6
            ++a_pos;
97
6
            ++c_pos;
98
6
        }
99
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
117
                                          PaddedPODArray<UInt8>& c) {
89
117
        size_t size = a.size();
90
117
        const A* __restrict a_pos = a.data();
91
117
        UInt8* __restrict c_pos = c.data();
92
117
        const A* __restrict a_end = a_pos + size;
93
94
275k
        while (a_pos < a_end) {
95
275k
            *c_pos = Op::apply(*a_pos, b);
96
275k
            ++a_pos;
97
275k
            ++c_pos;
98
275k
        }
99
117
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
88
107
                                          PaddedPODArray<UInt8>& c) {
89
107
        size_t size = a.size();
90
107
        const A* __restrict a_pos = a.data();
91
107
        UInt8* __restrict c_pos = c.data();
92
107
        const A* __restrict a_end = a_pos + size;
93
94
275k
        while (a_pos < a_end) {
95
275k
            *c_pos = Op::apply(*a_pos, b);
96
275k
            ++a_pos;
97
275k
            ++c_pos;
98
275k
        }
99
107
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
100
101
66.4k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
66.4k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
66.4k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
216
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
216
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
216
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
24
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
24
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
24
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
142
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
142
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
142
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
1.09k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
1.09k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
1.09k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
4
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
4
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
412
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
412
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
412
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
204
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
204
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
204
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
204
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
204
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
204
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
62.5k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
62.5k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
62.5k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
522
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
522
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
522
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
18
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
18
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
18
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
101
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
192
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
192
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
192
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
191
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
191
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
191
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
75
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
75
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
75
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
92
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
92
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
92
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
101
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
477
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
477
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
477
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
48
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
101
1
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
102
1
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
103
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
104
};
105
106
/// Generic version, implemented for columns of same type.
107
template <typename Op>
108
struct GenericComparisonImpl {
109
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
11
        }
113
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
109
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
6
        }
113
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
109
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
1
        }
113
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
109
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
1
        }
113
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
109
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
110
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
112
3
        }
113
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
114
115
129
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
129
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
361k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
361k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
361k
        }
120
129
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
18
        }
120
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
8
        }
120
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
8
        }
120
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
8
        }
120
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
37
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
37
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
124k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
124k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
124k
        }
120
37
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
115
55
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
55
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
117
237k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
118
237k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
119
237k
        }
120
55
    }
121
122
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
123
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
124
0
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
125
};
126
127
template <typename Op>
128
struct StringComparisonImpl {
129
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
130
                                                      const ColumnString::Offsets& a_offsets,
131
                                                      const ColumnString::Chars& b_data,
132
                                                      const ColumnString::Offsets& b_offsets,
133
502
                                                      PaddedPODArray<UInt8>& c) {
134
502
        size_t size = a_offsets.size();
135
502
        ColumnString::Offset prev_a_offset = 0;
136
502
        ColumnString::Offset prev_b_offset = 0;
137
502
        const auto* a_pos = a_data.data();
138
502
        const auto* b_pos = b_data.data();
139
140
1.72k
        for (size_t i = 0; i < size; ++i) {
141
1.22k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
142
1.22k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
143
1.22k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
144
1.22k
                             0);
145
146
1.22k
            prev_a_offset = a_offsets[i];
147
1.22k
            prev_b_offset = b_offsets[i];
148
1.22k
        }
149
502
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
133
2
                                                      PaddedPODArray<UInt8>& c) {
134
2
        size_t size = a_offsets.size();
135
2
        ColumnString::Offset prev_a_offset = 0;
136
2
        ColumnString::Offset prev_b_offset = 0;
137
2
        const auto* a_pos = a_data.data();
138
2
        const auto* b_pos = b_data.data();
139
140
49
        for (size_t i = 0; i < size; ++i) {
141
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
142
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
143
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
144
47
                             0);
145
146
47
            prev_a_offset = a_offsets[i];
147
47
            prev_b_offset = b_offsets[i];
148
47
        }
149
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
133
36
                                                      PaddedPODArray<UInt8>& c) {
134
36
        size_t size = a_offsets.size();
135
36
        ColumnString::Offset prev_a_offset = 0;
136
36
        ColumnString::Offset prev_b_offset = 0;
137
36
        const auto* a_pos = a_data.data();
138
36
        const auto* b_pos = b_data.data();
139
140
230
        for (size_t i = 0; i < size; ++i) {
141
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
142
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
143
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
144
194
                             0);
145
146
194
            prev_a_offset = a_offsets[i];
147
194
            prev_b_offset = b_offsets[i];
148
194
        }
149
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
133
464
                                                      PaddedPODArray<UInt8>& c) {
134
464
        size_t size = a_offsets.size();
135
464
        ColumnString::Offset prev_a_offset = 0;
136
464
        ColumnString::Offset prev_b_offset = 0;
137
464
        const auto* a_pos = a_data.data();
138
464
        const auto* b_pos = b_data.data();
139
140
1.45k
        for (size_t i = 0; i < size; ++i) {
141
986
            c[i] = Op::apply(memcmp_small_allow_overflow15(
142
986
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
143
986
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
144
986
                             0);
145
146
986
            prev_a_offset = a_offsets[i];
147
986
            prev_b_offset = b_offsets[i];
148
986
        }
149
464
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
150
151
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
152
                                                 const ColumnString::Offsets& a_offsets,
153
                                                 const ColumnString::Chars& b_data,
154
                                                 ColumnString::Offset b_size,
155
1.35k
                                                 PaddedPODArray<UInt8>& c) {
156
1.35k
        size_t size = a_offsets.size();
157
1.35k
        ColumnString::Offset prev_a_offset = 0;
158
1.35k
        const auto* a_pos = a_data.data();
159
1.35k
        const auto* b_pos = b_data.data();
160
161
1.33M
        for (size_t i = 0; i < size; ++i) {
162
1.33M
            c[i] = Op::apply(
163
1.33M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
1.33M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
1.33M
                    0);
166
167
1.33M
            prev_a_offset = a_offsets[i];
168
1.33M
        }
169
1.35k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
155
112
                                                 PaddedPODArray<UInt8>& c) {
156
112
        size_t size = a_offsets.size();
157
112
        ColumnString::Offset prev_a_offset = 0;
158
112
        const auto* a_pos = a_data.data();
159
112
        const auto* b_pos = b_data.data();
160
161
325k
        for (size_t i = 0; i < size; ++i) {
162
325k
            c[i] = Op::apply(
163
325k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
325k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
325k
                    0);
166
167
325k
            prev_a_offset = a_offsets[i];
168
325k
        }
169
112
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
155
40
                                                 PaddedPODArray<UInt8>& c) {
156
40
        size_t size = a_offsets.size();
157
40
        ColumnString::Offset prev_a_offset = 0;
158
40
        const auto* a_pos = a_data.data();
159
40
        const auto* b_pos = b_data.data();
160
161
72.7k
        for (size_t i = 0; i < size; ++i) {
162
72.7k
            c[i] = Op::apply(
163
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
72.7k
                    0);
166
167
72.7k
            prev_a_offset = a_offsets[i];
168
72.7k
        }
169
40
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
155
548
                                                 PaddedPODArray<UInt8>& c) {
156
548
        size_t size = a_offsets.size();
157
548
        ColumnString::Offset prev_a_offset = 0;
158
548
        const auto* a_pos = a_data.data();
159
548
        const auto* b_pos = b_data.data();
160
161
425k
        for (size_t i = 0; i < size; ++i) {
162
424k
            c[i] = Op::apply(
163
424k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
424k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
424k
                    0);
166
167
424k
            prev_a_offset = a_offsets[i];
168
424k
        }
169
548
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
155
659
                                                 PaddedPODArray<UInt8>& c) {
156
659
        size_t size = a_offsets.size();
157
659
        ColumnString::Offset prev_a_offset = 0;
158
659
        const auto* a_pos = a_data.data();
159
659
        const auto* b_pos = b_data.data();
160
161
515k
        for (size_t i = 0; i < size; ++i) {
162
515k
            c[i] = Op::apply(
163
515k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
164
515k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
165
515k
                    0);
166
167
515k
            prev_a_offset = a_offsets[i];
168
515k
        }
169
659
    }
170
171
    static void constant_string_vector(const ColumnString::Chars& a_data,
172
                                       ColumnString::Offset a_size,
173
                                       const ColumnString::Chars& b_data,
174
                                       const ColumnString::Offsets& b_offsets,
175
66
                                       PaddedPODArray<UInt8>& c) {
176
66
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
177
66
                                                                               a_data, a_size, c);
178
66
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
175
60
                                       PaddedPODArray<UInt8>& c) {
176
60
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
177
60
                                                                               a_data, a_size, c);
178
60
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
175
6
                                       PaddedPODArray<UInt8>& c) {
176
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
177
6
                                                                               a_data, a_size, c);
178
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
179
};
180
181
template <bool positive>
182
struct StringEqualsImpl {
183
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
184
                                                      const ColumnString::Offsets& a_offsets,
185
                                                      const ColumnString::Chars& b_data,
186
                                                      const ColumnString::Offsets& b_offsets,
187
453
                                                      PaddedPODArray<UInt8>& c) {
188
453
        size_t size = a_offsets.size();
189
453
        ColumnString::Offset prev_a_offset = 0;
190
453
        ColumnString::Offset prev_b_offset = 0;
191
453
        const auto* a_pos = a_data.data();
192
453
        const auto* b_pos = b_data.data();
193
194
1.37k
        for (size_t i = 0; i < size; ++i) {
195
925
            auto a_size = a_offsets[i] - prev_a_offset;
196
925
            auto b_size = b_offsets[i] - prev_b_offset;
197
198
925
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
199
925
                                                               b_pos + prev_b_offset, b_size);
200
201
925
            prev_a_offset = a_offsets[i];
202
925
            prev_b_offset = b_offsets[i];
203
925
        }
204
453
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
187
449
                                                      PaddedPODArray<UInt8>& c) {
188
449
        size_t size = a_offsets.size();
189
449
        ColumnString::Offset prev_a_offset = 0;
190
449
        ColumnString::Offset prev_b_offset = 0;
191
449
        const auto* a_pos = a_data.data();
192
449
        const auto* b_pos = b_data.data();
193
194
1.36k
        for (size_t i = 0; i < size; ++i) {
195
912
            auto a_size = a_offsets[i] - prev_a_offset;
196
912
            auto b_size = b_offsets[i] - prev_b_offset;
197
198
912
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
199
912
                                                               b_pos + prev_b_offset, b_size);
200
201
912
            prev_a_offset = a_offsets[i];
202
912
            prev_b_offset = b_offsets[i];
203
912
        }
204
449
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
187
4
                                                      PaddedPODArray<UInt8>& c) {
188
4
        size_t size = a_offsets.size();
189
4
        ColumnString::Offset prev_a_offset = 0;
190
4
        ColumnString::Offset prev_b_offset = 0;
191
4
        const auto* a_pos = a_data.data();
192
4
        const auto* b_pos = b_data.data();
193
194
17
        for (size_t i = 0; i < size; ++i) {
195
13
            auto a_size = a_offsets[i] - prev_a_offset;
196
13
            auto b_size = b_offsets[i] - prev_b_offset;
197
198
13
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
199
13
                                                               b_pos + prev_b_offset, b_size);
200
201
13
            prev_a_offset = a_offsets[i];
202
13
            prev_b_offset = b_offsets[i];
203
13
        }
204
4
    }
205
206
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
207
                                                 const ColumnString::Offsets& a_offsets,
208
                                                 const ColumnString::Chars& b_data,
209
                                                 ColumnString::Offset b_size,
210
10.7k
                                                 PaddedPODArray<UInt8>& c) {
211
10.7k
        size_t size = a_offsets.size();
212
10.7k
        if (b_size == 0) {
213
3
            auto* __restrict data = c.data();
214
3
            auto* __restrict offsets = a_offsets.data();
215
216
3
            ColumnString::Offset prev_a_offset = 0;
217
8
            for (size_t i = 0; i < size; ++i) {
218
5
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
219
5
                prev_a_offset = offsets[i];
220
5
            }
221
10.7k
        } else {
222
10.7k
            ColumnString::Offset prev_a_offset = 0;
223
10.7k
            const auto* a_pos = a_data.data();
224
10.7k
            const auto* b_pos = b_data.data();
225
1.48M
            for (size_t i = 0; i < size; ++i) {
226
1.47M
                auto a_size = a_offsets[i] - prev_a_offset;
227
1.47M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
228
1.47M
                                                                   b_pos, b_size);
229
1.47M
                prev_a_offset = a_offsets[i];
230
1.47M
            }
231
10.7k
        }
232
10.7k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
210
10.6k
                                                 PaddedPODArray<UInt8>& c) {
211
10.6k
        size_t size = a_offsets.size();
212
10.6k
        if (b_size == 0) {
213
2
            auto* __restrict data = c.data();
214
2
            auto* __restrict offsets = a_offsets.data();
215
216
2
            ColumnString::Offset prev_a_offset = 0;
217
4
            for (size_t i = 0; i < size; ++i) {
218
2
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
219
2
                prev_a_offset = offsets[i];
220
2
            }
221
10.6k
        } else {
222
10.6k
            ColumnString::Offset prev_a_offset = 0;
223
10.6k
            const auto* a_pos = a_data.data();
224
10.6k
            const auto* b_pos = b_data.data();
225
1.44M
            for (size_t i = 0; i < size; ++i) {
226
1.43M
                auto a_size = a_offsets[i] - prev_a_offset;
227
1.43M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
228
1.43M
                                                                   b_pos, b_size);
229
1.43M
                prev_a_offset = a_offsets[i];
230
1.43M
            }
231
10.6k
        }
232
10.6k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
210
120
                                                 PaddedPODArray<UInt8>& c) {
211
120
        size_t size = a_offsets.size();
212
120
        if (b_size == 0) {
213
1
            auto* __restrict data = c.data();
214
1
            auto* __restrict offsets = a_offsets.data();
215
216
1
            ColumnString::Offset prev_a_offset = 0;
217
4
            for (size_t i = 0; i < size; ++i) {
218
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
219
3
                prev_a_offset = offsets[i];
220
3
            }
221
119
        } else {
222
119
            ColumnString::Offset prev_a_offset = 0;
223
119
            const auto* a_pos = a_data.data();
224
119
            const auto* b_pos = b_data.data();
225
44.3k
            for (size_t i = 0; i < size; ++i) {
226
44.2k
                auto a_size = a_offsets[i] - prev_a_offset;
227
44.2k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
228
44.2k
                                                                   b_pos, b_size);
229
44.2k
                prev_a_offset = a_offsets[i];
230
44.2k
            }
231
119
        }
232
120
    }
233
234
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
235
                                                 ColumnString::Offset a_size,
236
                                                 const ColumnString::Chars& b_data,
237
                                                 const ColumnString::Offsets& b_offsets,
238
16
                                                 PaddedPODArray<UInt8>& c) {
239
16
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
240
16
    }
_ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Line
Count
Source
238
16
                                                 PaddedPODArray<UInt8>& c) {
239
16
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
240
16
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
241
};
242
243
template <PrimitiveType PT>
244
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
245
246
template <PrimitiveType PT>
247
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
248
249
struct NameEquals {
250
    static constexpr auto name = "eq";
251
};
252
struct NameNotEquals {
253
    static constexpr auto name = "ne";
254
};
255
struct NameLess {
256
    static constexpr auto name = "lt";
257
};
258
struct NameGreater {
259
    static constexpr auto name = "gt";
260
};
261
struct NameLessOrEquals {
262
    static constexpr auto name = "le";
263
};
264
struct NameGreaterOrEquals {
265
    static constexpr auto name = "ge";
266
};
267
268
namespace comparison_zonemap_detail {
269
enum class Op {
270
    EQ,
271
    NE,
272
    LT,
273
    LE,
274
    GT,
275
    GE,
276
};
277
278
19
inline Op symmetric_op(Op op) {
279
19
    switch (op) {
280
0
    case Op::EQ:
281
0
    case Op::NE:
282
0
        return op;
283
11
    case Op::LT:
284
11
        return Op::GT;
285
6
    case Op::LE:
286
6
        return Op::GE;
287
0
    case Op::GT:
288
0
        return Op::LT;
289
2
    case Op::GE:
290
2
        return Op::LE;
291
19
    }
292
0
    __builtin_unreachable();
293
19
}
294
295
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
296
3.11k
                                    Op op) {
297
3.11k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
298
299
3.11k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal->slot_index,
300
3.11k
                                                              slot_literal->slot_type);
301
3.11k
    if (slot_type == nullptr) {
302
1
        return unsupported_zonemap_filter(ctx);
303
1
    }
304
3.11k
    auto zone_map_ptr = ctx.zone_map(slot_literal->slot_index);
305
3.11k
    if (zone_map_ptr == nullptr) {
306
47
        return unsupported_zonemap_filter(ctx);
307
47
    }
308
3.07k
    const auto& zone_map = *zone_map_ptr;
309
3.07k
    if (!zone_map.has_not_null) {
310
37
        return ZoneMapFilterResult::kNoMatch;
311
37
    }
312
3.03k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
313
38
        return unsupported_zonemap_filter(ctx);
314
38
    }
315
316
2.99k
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
317
2.99k
    const auto& literal = slot_literal->literal;
318
2.99k
    const bool literal_is_nan = literal.is_nan();
319
2.99k
    const bool hidden_nan_can_match = (effective_op == Op::EQ && literal_is_nan) ||
320
2.99k
                                      (effective_op == Op::NE && !literal_is_nan) ||
321
2.99k
                                      (effective_op == Op::GT && !literal_is_nan) ||
322
2.99k
                                      effective_op == Op::GE;
323
2.99k
    if (ctx.floating_nan_count_unknown(slot_literal->slot_index) && hidden_nan_can_match) {
324
        // Parquet bounds omit NaNs, so only operators that cannot match a hidden NaN may prune.
325
52
        return unsupported_zonemap_filter(ctx);
326
52
    }
327
2.94k
    const auto& min_value = zone_map.min_value;
328
2.94k
    const auto& max_value = zone_map.max_value;
329
    // Each operator reads the same two facts off the two ends of [min, max].
330
2.94k
    bool no_row_matches = false;
331
2.94k
    bool every_row_matches = false;
332
2.94k
    switch (effective_op) {
333
1.80k
    case Op::EQ:
334
1.80k
        no_row_matches = literal < min_value || max_value < literal;
335
1.80k
        every_row_matches = min_value == literal && max_value == literal;
336
1.80k
        break;
337
110
    case Op::NE:
338
110
        no_row_matches = min_value == literal && max_value == literal;
339
110
        every_row_matches = literal < min_value || max_value < literal;
340
110
        break;
341
240
    case Op::LT:
342
240
        no_row_matches = min_value >= literal;
343
240
        every_row_matches = max_value < literal;
344
240
        break;
345
338
    case Op::LE:
346
338
        no_row_matches = min_value > literal;
347
338
        every_row_matches = max_value <= literal;
348
338
        break;
349
243
    case Op::GT:
350
243
        no_row_matches = max_value <= literal;
351
243
        every_row_matches = min_value > literal;
352
243
        break;
353
219
    case Op::GE:
354
219
        no_row_matches = max_value < literal;
355
219
        every_row_matches = min_value >= literal;
356
219
        break;
357
2.94k
    }
358
359
2.96k
    if (no_row_matches) {
360
693
        return ZoneMapFilterResult::kNoMatch;
361
693
    }
362
    // A NULL row never passes a comparison, and a hidden Parquet NaN would not either, so both
363
    // stop the zone from matching completely.
364
2.26k
    const bool can_match_all = !zone_map.has_null && !zone_map.has_cut_string_bounds() &&
365
2.26k
                               !ctx.floating_nan_count_unknown(slot_literal->slot_index);
366
2.26k
    if (can_match_all && every_row_matches) {
367
678
        return ZoneMapFilterResult::kAllMatch;
368
678
    }
369
1.59k
    return ZoneMapFilterResult::kMayMatch;
370
2.26k
}
371
372
30.7k
inline bool can_evaluate(const VExprSPtrs& arguments) {
373
30.7k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
374
30.7k
    if (!slot_literal.has_value()) {
375
19.8k
        return false;
376
19.8k
    }
377
378
    // A NULL literal makes the comparison evaluate to NULL instead of a byte range predicate on
379
    // the slot. This zonemap evaluator only derives bounds from non-NULL literals, so reject this
380
    // shape here before evaluate_zonemap_filter is called.
381
10.8k
    if (slot_literal->literal.is_null()) {
382
4
        return false;
383
4
    }
384
385
10.8k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
386
10.8k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
387
10.8k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
388
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
389
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
390
        // values without running expression casts, so conservatively skip this optimization.
391
1
        return false;
392
1
    }
393
394
10.8k
    return true;
395
10.8k
}
396
397
0
inline bool can_evaluate_equality(const VExprSPtrs& arguments, Op op) {
398
0
    if (op != Op::EQ || !can_evaluate(arguments)) {
399
0
        return false;
400
0
    }
401
0
    const auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
402
0
    DORIS_CHECK(slot_literal.has_value());
403
0
    // Bloom membership cannot disprove Doris NaN equality across different physical encodings.
404
0
    return !slot_literal->literal.is_nan();
405
0
}
406
407
27
inline bool dictionary_value_matches(const Field& value, const Field& literal, Op op) {
408
27
    switch (op) {
409
8
    case Op::EQ:
410
8
        return value == literal;
411
0
    case Op::NE:
412
0
        return value != literal;
413
5
    case Op::LT:
414
5
        return value < literal;
415
0
    case Op::LE:
416
0
        return value <= literal;
417
14
    case Op::GT:
418
14
        return value > literal;
419
0
    case Op::GE:
420
0
        return value >= literal;
421
27
    }
422
0
    __builtin_unreachable();
423
27
}
424
425
inline ZoneMapFilterResult evaluate_dictionary(const DictionaryEvalContext& ctx,
426
14
                                               const VExprSPtrs& arguments, Op op) {
427
14
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
428
14
    DORIS_CHECK(slot_literal.has_value());
429
14
    const auto* dictionary = ctx.slot(slot_literal->slot_index);
430
14
    if (dictionary == nullptr || dictionary->data_type == nullptr) {
431
0
        return ZoneMapFilterResult::kUnsupported;
432
0
    }
433
14
    DORIS_CHECK(
434
14
            expr_zonemap::data_types_compatible(dictionary->data_type, slot_literal->slot_type));
435
14
    if (slot_literal->literal.is_null()) {
436
0
        return ZoneMapFilterResult::kUnsupported;
437
0
    }
438
14
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
439
    // Compare typed Fields so dictionary filtering preserves the regular expression semantics for
440
    // strings, dates, decimals, floating-point edge cases, and every other supported logical type.
441
14
    return std::ranges::any_of(dictionary->values,
442
27
                               [&](const Field& value) {
443
27
                                   return dictionary_value_matches(value, slot_literal->literal,
444
27
                                                                   effective_op);
445
27
                               })
446
14
                   ? ZoneMapFilterResult::kMayMatch
447
14
                   : ZoneMapFilterResult::kNoMatch;
448
14
}
449
450
inline ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
451
19
                                                 const VExprSPtrs& arguments, Op op) {
452
19
    DORIS_CHECK(op == Op::EQ);
453
19
    auto slot_literal = expr_zonemap::extract_bloom_filter_slot_and_literal(arguments);
454
19
    DORIS_CHECK(slot_literal.has_value());
455
19
    return expr_zonemap::eval_eq_bloom_filter(ctx, *slot_literal);
456
19
}
457
458
34.0k
inline std::optional<Op> op_from_name(std::string_view name) {
459
34.0k
    if (name == NameEquals::name) {
460
17.2k
        return Op::EQ;
461
17.2k
    }
462
16.8k
    if (name == NameNotEquals::name) {
463
1.56k
        return Op::NE;
464
1.56k
    }
465
15.2k
    if (name == NameLess::name) {
466
3.57k
        return Op::LT;
467
3.57k
    }
468
11.6k
    if (name == NameLessOrEquals::name) {
469
1.88k
        return Op::LE;
470
1.88k
    }
471
9.78k
    if (name == NameGreater::name) {
472
6.46k
        return Op::GT;
473
6.46k
    }
474
3.45k
    if (name == NameGreaterOrEquals::name) {
475
3.45k
        return Op::GE;
476
3.45k
    }
477
18.4E
    return std::nullopt;
478
3.31k
}
479
} // namespace comparison_zonemap_detail
480
481
template <template <PrimitiveType> class Op, typename Name>
482
class FunctionComparison : public IFunction {
483
public:
484
    static constexpr auto name = Name::name;
485
267k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
485
241k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
485
1.17k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
485
5.01k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
485
6.95k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
485
3.02k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
485
9.06k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
486
487
267k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
487
241k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
487
1.17k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
487
5.01k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
487
6.96k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
487
3.03k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
487
9.02k
    FunctionComparison() = default;
488
489
660k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
489
644k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
489
608
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
489
1.95k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
489
7.52k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
489
1.15k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
489
4.72k
    double execute_cost() const override { return 0.5; }
490
491
private:
492
    template <PrimitiveType PT>
493
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
494
107k
                            const ColumnPtr& col_right_ptr) const {
495
107k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
107k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
107k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
107k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
107k
        DCHECK(!(left_is_const && right_is_const));
502
503
107k
        if (!left_is_const && !right_is_const) {
504
8.74k
            auto col_res = ColumnUInt8::create();
505
506
8.74k
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
8.74k
            vec_res.resize(col_left->get_data().size());
508
8.74k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
8.74k
                              typename PrimitiveTypeTraits<PT>::CppType,
510
8.74k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
8.74k
                                                     vec_res);
512
513
8.74k
            block.replace_by_position(result, std::move(col_res));
514
98.5k
        } else if (!left_is_const && right_is_const) {
515
32.0k
            auto col_res = ColumnUInt8::create();
516
517
32.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
32.0k
            vec_res.resize(col_left->size());
519
32.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
32.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
32.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
32.0k
                                                       col_right->get_element(0), vec_res);
523
524
32.0k
            block.replace_by_position(result, std::move(col_res));
525
66.4k
        } else if (left_is_const && !right_is_const) {
526
66.4k
            auto col_res = ColumnUInt8::create();
527
528
66.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
66.4k
            vec_res.resize(col_right->size());
530
66.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
66.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
532
66.4k
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
66.4k
                                                       col_right->get_data(), vec_res);
534
535
66.4k
            block.replace_by_position(result, std::move(col_res));
536
66.4k
        }
537
107k
        return Status::OK();
538
107k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
85
                            const ColumnPtr& col_right_ptr) const {
495
85
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
85
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
85
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
85
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
85
        DCHECK(!(left_is_const && right_is_const));
502
503
85
        if (!left_is_const && !right_is_const) {
504
61
            auto col_res = ColumnUInt8::create();
505
506
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
61
            vec_res.resize(col_left->get_data().size());
508
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
61
                              typename PrimitiveTypeTraits<PT>::CppType,
510
61
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
61
                                                     vec_res);
512
513
61
            block.replace_by_position(result, std::move(col_res));
514
61
        } else if (!left_is_const && right_is_const) {
515
24
            auto col_res = ColumnUInt8::create();
516
517
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
24
            vec_res.resize(col_left->size());
519
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
24
                              typename PrimitiveTypeTraits<PT>::CppType,
521
24
                              Op<PT>>::vector_constant(col_left->get_data(),
522
24
                                                       col_right->get_element(0), vec_res);
523
524
24
            block.replace_by_position(result, std::move(col_res));
525
24
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
85
        return Status::OK();
538
85
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
666
                            const ColumnPtr& col_right_ptr) const {
495
666
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
666
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
666
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
666
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
666
        DCHECK(!(left_is_const && right_is_const));
502
503
666
        if (!left_is_const && !right_is_const) {
504
242
            auto col_res = ColumnUInt8::create();
505
506
242
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
242
            vec_res.resize(col_left->get_data().size());
508
242
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
242
                              typename PrimitiveTypeTraits<PT>::CppType,
510
242
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
242
                                                     vec_res);
512
513
242
            block.replace_by_position(result, std::move(col_res));
514
424
        } else if (!left_is_const && right_is_const) {
515
424
            auto col_res = ColumnUInt8::create();
516
517
424
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
424
            vec_res.resize(col_left->size());
519
424
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
424
                              typename PrimitiveTypeTraits<PT>::CppType,
521
424
                              Op<PT>>::vector_constant(col_left->get_data(),
522
424
                                                       col_right->get_element(0), vec_res);
523
524
424
            block.replace_by_position(result, std::move(col_res));
525
424
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
666
        return Status::OK();
538
666
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
360
                            const ColumnPtr& col_right_ptr) const {
495
360
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
360
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
360
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
360
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
360
        DCHECK(!(left_is_const && right_is_const));
502
503
360
        if (!left_is_const && !right_is_const) {
504
239
            auto col_res = ColumnUInt8::create();
505
506
239
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
239
            vec_res.resize(col_left->get_data().size());
508
239
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
239
                              typename PrimitiveTypeTraits<PT>::CppType,
510
239
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
239
                                                     vec_res);
512
513
239
            block.replace_by_position(result, std::move(col_res));
514
239
        } else if (!left_is_const && right_is_const) {
515
121
            auto col_res = ColumnUInt8::create();
516
517
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
121
            vec_res.resize(col_left->size());
519
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
121
                              typename PrimitiveTypeTraits<PT>::CppType,
521
121
                              Op<PT>>::vector_constant(col_left->get_data(),
522
121
                                                       col_right->get_element(0), vec_res);
523
524
121
            block.replace_by_position(result, std::move(col_res));
525
121
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
360
        return Status::OK();
538
360
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
2
                            const ColumnPtr& col_right_ptr) const {
495
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
2
        DCHECK(!(left_is_const && right_is_const));
502
503
2
        if (!left_is_const && !right_is_const) {
504
2
            auto col_res = ColumnUInt8::create();
505
506
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
2
            vec_res.resize(col_left->get_data().size());
508
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
2
                              typename PrimitiveTypeTraits<PT>::CppType,
510
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
2
                                                     vec_res);
512
513
2
            block.replace_by_position(result, std::move(col_res));
514
2
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
2
        return Status::OK();
538
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
4.93k
                            const ColumnPtr& col_right_ptr) const {
495
4.93k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
4.93k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
4.93k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
4.93k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
4.93k
        DCHECK(!(left_is_const && right_is_const));
502
503
4.93k
        if (!left_is_const && !right_is_const) {
504
141
            auto col_res = ColumnUInt8::create();
505
506
141
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
141
            vec_res.resize(col_left->get_data().size());
508
141
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
141
                              typename PrimitiveTypeTraits<PT>::CppType,
510
141
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
141
                                                     vec_res);
512
513
141
            block.replace_by_position(result, std::move(col_res));
514
4.79k
        } else if (!left_is_const && right_is_const) {
515
4.57k
            auto col_res = ColumnUInt8::create();
516
517
4.57k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
4.57k
            vec_res.resize(col_left->size());
519
4.57k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
4.57k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
4.57k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
4.57k
                                                       col_right->get_element(0), vec_res);
523
524
4.57k
            block.replace_by_position(result, std::move(col_res));
525
4.57k
        } else if (left_is_const && !right_is_const) {
526
215
            auto col_res = ColumnUInt8::create();
527
528
215
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
215
            vec_res.resize(col_right->size());
530
215
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
215
                              typename PrimitiveTypeTraits<PT>::CppType,
532
215
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
215
                                                       col_right->get_data(), vec_res);
534
535
215
            block.replace_by_position(result, std::move(col_res));
536
215
        }
537
4.93k
        return Status::OK();
538
4.93k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
363
                            const ColumnPtr& col_right_ptr) const {
495
363
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
363
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
363
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
363
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
363
        DCHECK(!(left_is_const && right_is_const));
502
503
363
        if (!left_is_const && !right_is_const) {
504
71
            auto col_res = ColumnUInt8::create();
505
506
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
71
            vec_res.resize(col_left->get_data().size());
508
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
71
                              typename PrimitiveTypeTraits<PT>::CppType,
510
71
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
71
                                                     vec_res);
512
513
71
            block.replace_by_position(result, std::move(col_res));
514
292
        } else if (!left_is_const && right_is_const) {
515
269
            auto col_res = ColumnUInt8::create();
516
517
269
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
269
            vec_res.resize(col_left->size());
519
269
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
269
                              typename PrimitiveTypeTraits<PT>::CppType,
521
269
                              Op<PT>>::vector_constant(col_left->get_data(),
522
269
                                                       col_right->get_element(0), vec_res);
523
524
269
            block.replace_by_position(result, std::move(col_res));
525
269
        } else if (left_is_const && !right_is_const) {
526
24
            auto col_res = ColumnUInt8::create();
527
528
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
24
            vec_res.resize(col_right->size());
530
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
24
                              typename PrimitiveTypeTraits<PT>::CppType,
532
24
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
24
                                                       col_right->get_data(), vec_res);
534
535
24
            block.replace_by_position(result, std::move(col_res));
536
24
        }
537
363
        return Status::OK();
538
363
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
2.04k
                            const ColumnPtr& col_right_ptr) const {
495
2.04k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
2.04k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
2.04k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
2.04k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
2.04k
        DCHECK(!(left_is_const && right_is_const));
502
503
2.04k
        if (!left_is_const && !right_is_const) {
504
263
            auto col_res = ColumnUInt8::create();
505
506
263
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
263
            vec_res.resize(col_left->get_data().size());
508
263
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
263
                              typename PrimitiveTypeTraits<PT>::CppType,
510
263
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
263
                                                     vec_res);
512
513
263
            block.replace_by_position(result, std::move(col_res));
514
1.77k
        } else if (!left_is_const && right_is_const) {
515
1.63k
            auto col_res = ColumnUInt8::create();
516
517
1.63k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
1.63k
            vec_res.resize(col_left->size());
519
1.63k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
1.63k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
1.63k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
1.63k
                                                       col_right->get_element(0), vec_res);
523
524
1.63k
            block.replace_by_position(result, std::move(col_res));
525
1.63k
        } else if (left_is_const && !right_is_const) {
526
142
            auto col_res = ColumnUInt8::create();
527
528
142
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
142
            vec_res.resize(col_right->size());
530
142
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
142
                              typename PrimitiveTypeTraits<PT>::CppType,
532
142
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
142
                                                       col_right->get_data(), vec_res);
534
535
142
            block.replace_by_position(result, std::move(col_res));
536
142
        }
537
2.04k
        return Status::OK();
538
2.04k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
2.90k
                            const ColumnPtr& col_right_ptr) const {
495
2.90k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
2.90k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
2.90k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
2.90k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
2.90k
        DCHECK(!(left_is_const && right_is_const));
502
503
2.90k
        if (!left_is_const && !right_is_const) {
504
142
            auto col_res = ColumnUInt8::create();
505
506
142
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
142
            vec_res.resize(col_left->get_data().size());
508
142
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
142
                              typename PrimitiveTypeTraits<PT>::CppType,
510
142
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
142
                                                     vec_res);
512
513
142
            block.replace_by_position(result, std::move(col_res));
514
2.75k
        } else if (!left_is_const && right_is_const) {
515
1.66k
            auto col_res = ColumnUInt8::create();
516
517
1.66k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
1.66k
            vec_res.resize(col_left->size());
519
1.66k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
1.66k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
1.66k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
1.66k
                                                       col_right->get_element(0), vec_res);
523
524
1.66k
            block.replace_by_position(result, std::move(col_res));
525
1.66k
        } else if (left_is_const && !right_is_const) {
526
1.09k
            auto col_res = ColumnUInt8::create();
527
528
1.09k
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
1.09k
            vec_res.resize(col_right->size());
530
1.09k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
1.09k
                              typename PrimitiveTypeTraits<PT>::CppType,
532
1.09k
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
1.09k
                                                       col_right->get_data(), vec_res);
534
535
1.09k
            block.replace_by_position(result, std::move(col_res));
536
1.09k
        }
537
2.90k
        return Status::OK();
538
2.90k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
100
                            const ColumnPtr& col_right_ptr) const {
495
100
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
100
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
100
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
100
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
100
        DCHECK(!(left_is_const && right_is_const));
502
503
100
        if (!left_is_const && !right_is_const) {
504
69
            auto col_res = ColumnUInt8::create();
505
506
69
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
69
            vec_res.resize(col_left->get_data().size());
508
69
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
69
                              typename PrimitiveTypeTraits<PT>::CppType,
510
69
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
69
                                                     vec_res);
512
513
69
            block.replace_by_position(result, std::move(col_res));
514
69
        } else if (!left_is_const && right_is_const) {
515
27
            auto col_res = ColumnUInt8::create();
516
517
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
27
            vec_res.resize(col_left->size());
519
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
27
                              typename PrimitiveTypeTraits<PT>::CppType,
521
27
                              Op<PT>>::vector_constant(col_left->get_data(),
522
27
                                                       col_right->get_element(0), vec_res);
523
524
27
            block.replace_by_position(result, std::move(col_res));
525
27
        } else if (left_is_const && !right_is_const) {
526
4
            auto col_res = ColumnUInt8::create();
527
528
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
4
            vec_res.resize(col_right->size());
530
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
4
                              typename PrimitiveTypeTraits<PT>::CppType,
532
4
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
4
                                                       col_right->get_data(), vec_res);
534
535
4
            block.replace_by_position(result, std::move(col_res));
536
4
        }
537
100
        return Status::OK();
538
100
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
12
                            const ColumnPtr& col_right_ptr) const {
495
12
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
12
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
12
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
12
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
12
        DCHECK(!(left_is_const && right_is_const));
502
503
12
        if (!left_is_const && !right_is_const) {
504
5
            auto col_res = ColumnUInt8::create();
505
506
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
5
            vec_res.resize(col_left->get_data().size());
508
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
5
                              typename PrimitiveTypeTraits<PT>::CppType,
510
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
5
                                                     vec_res);
512
513
5
            block.replace_by_position(result, std::move(col_res));
514
7
        } else if (!left_is_const && right_is_const) {
515
7
            auto col_res = ColumnUInt8::create();
516
517
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
7
            vec_res.resize(col_left->size());
519
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
7
                              typename PrimitiveTypeTraits<PT>::CppType,
521
7
                              Op<PT>>::vector_constant(col_left->get_data(),
522
7
                                                       col_right->get_element(0), vec_res);
523
524
7
            block.replace_by_position(result, std::move(col_res));
525
7
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
12
        return Status::OK();
538
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
17
                            const ColumnPtr& col_right_ptr) const {
495
17
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
17
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
17
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
17
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
17
        DCHECK(!(left_is_const && right_is_const));
502
503
17
        if (!left_is_const && !right_is_const) {
504
13
            auto col_res = ColumnUInt8::create();
505
506
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
13
            vec_res.resize(col_left->get_data().size());
508
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
13
                              typename PrimitiveTypeTraits<PT>::CppType,
510
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
13
                                                     vec_res);
512
513
13
            block.replace_by_position(result, std::move(col_res));
514
13
        } else if (!left_is_const && right_is_const) {
515
4
            auto col_res = ColumnUInt8::create();
516
517
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
4
            vec_res.resize(col_left->size());
519
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
4
                              typename PrimitiveTypeTraits<PT>::CppType,
521
4
                              Op<PT>>::vector_constant(col_left->get_data(),
522
4
                                                       col_right->get_element(0), vec_res);
523
524
4
            block.replace_by_position(result, std::move(col_res));
525
4
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
17
        return Status::OK();
538
17
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
91
                            const ColumnPtr& col_right_ptr) const {
495
91
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
91
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
91
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
91
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
91
        DCHECK(!(left_is_const && right_is_const));
502
503
91
        if (!left_is_const && !right_is_const) {
504
91
            auto col_res = ColumnUInt8::create();
505
506
91
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
91
            vec_res.resize(col_left->get_data().size());
508
91
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
91
                              typename PrimitiveTypeTraits<PT>::CppType,
510
91
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
91
                                                     vec_res);
512
513
91
            block.replace_by_position(result, std::move(col_res));
514
91
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
91
        return Status::OK();
538
91
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
720
                            const ColumnPtr& col_right_ptr) const {
495
720
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
720
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
720
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
720
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
720
        DCHECK(!(left_is_const && right_is_const));
502
503
720
        if (!left_is_const && !right_is_const) {
504
97
            auto col_res = ColumnUInt8::create();
505
506
97
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
97
            vec_res.resize(col_left->get_data().size());
508
97
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
97
                              typename PrimitiveTypeTraits<PT>::CppType,
510
97
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
97
                                                     vec_res);
512
513
97
            block.replace_by_position(result, std::move(col_res));
514
623
        } else if (!left_is_const && right_is_const) {
515
623
            auto col_res = ColumnUInt8::create();
516
517
623
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
623
            vec_res.resize(col_left->size());
519
623
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
623
                              typename PrimitiveTypeTraits<PT>::CppType,
521
623
                              Op<PT>>::vector_constant(col_left->get_data(),
522
623
                                                       col_right->get_element(0), vec_res);
523
524
623
            block.replace_by_position(result, std::move(col_res));
525
623
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
720
        return Status::OK();
538
720
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
4
                            const ColumnPtr& col_right_ptr) const {
495
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
4
        DCHECK(!(left_is_const && right_is_const));
502
503
4
        if (!left_is_const && !right_is_const) {
504
4
            auto col_res = ColumnUInt8::create();
505
506
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
4
            vec_res.resize(col_left->get_data().size());
508
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
4
                              typename PrimitiveTypeTraits<PT>::CppType,
510
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
4
                                                     vec_res);
512
513
4
            block.replace_by_position(result, std::move(col_res));
514
4
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
4
        return Status::OK();
538
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
494
68
                            const ColumnPtr& col_right_ptr) const {
495
68
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
68
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
68
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
68
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
68
        DCHECK(!(left_is_const && right_is_const));
502
503
68
        if (!left_is_const && !right_is_const) {
504
39
            auto col_res = ColumnUInt8::create();
505
506
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
39
            vec_res.resize(col_left->get_data().size());
508
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
39
                              typename PrimitiveTypeTraits<PT>::CppType,
510
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
39
                                                     vec_res);
512
513
39
            block.replace_by_position(result, std::move(col_res));
514
39
        } else if (!left_is_const && right_is_const) {
515
29
            auto col_res = ColumnUInt8::create();
516
517
29
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
29
            vec_res.resize(col_left->size());
519
29
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
29
                              typename PrimitiveTypeTraits<PT>::CppType,
521
29
                              Op<PT>>::vector_constant(col_left->get_data(),
522
29
                                                       col_right->get_element(0), vec_res);
523
524
29
            block.replace_by_position(result, std::move(col_res));
525
29
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
68
        return Status::OK();
538
68
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
84
                            const ColumnPtr& col_right_ptr) const {
495
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
84
        DCHECK(!(left_is_const && right_is_const));
502
503
84
        if (!left_is_const && !right_is_const) {
504
56
            auto col_res = ColumnUInt8::create();
505
506
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
56
            vec_res.resize(col_left->get_data().size());
508
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
56
                              typename PrimitiveTypeTraits<PT>::CppType,
510
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
56
                                                     vec_res);
512
513
56
            block.replace_by_position(result, std::move(col_res));
514
56
        } else if (!left_is_const && right_is_const) {
515
28
            auto col_res = ColumnUInt8::create();
516
517
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
28
            vec_res.resize(col_left->size());
519
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
28
                              typename PrimitiveTypeTraits<PT>::CppType,
521
28
                              Op<PT>>::vector_constant(col_left->get_data(),
522
28
                                                       col_right->get_element(0), vec_res);
523
524
28
            block.replace_by_position(result, std::move(col_res));
525
28
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
84
        return Status::OK();
538
84
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1.45k
                            const ColumnPtr& col_right_ptr) const {
495
1.45k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1.45k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1.45k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1.45k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1.45k
        DCHECK(!(left_is_const && right_is_const));
502
503
1.45k
        if (!left_is_const && !right_is_const) {
504
1.21k
            auto col_res = ColumnUInt8::create();
505
506
1.21k
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1.21k
            vec_res.resize(col_left->get_data().size());
508
1.21k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1.21k
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1.21k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1.21k
                                                     vec_res);
512
513
1.21k
            block.replace_by_position(result, std::move(col_res));
514
1.21k
        } else if (!left_is_const && right_is_const) {
515
241
            auto col_res = ColumnUInt8::create();
516
517
241
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
241
            vec_res.resize(col_left->size());
519
241
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
241
                              typename PrimitiveTypeTraits<PT>::CppType,
521
241
                              Op<PT>>::vector_constant(col_left->get_data(),
522
241
                                                       col_right->get_element(0), vec_res);
523
524
241
            block.replace_by_position(result, std::move(col_res));
525
241
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1.45k
        return Status::OK();
538
1.45k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
808
                            const ColumnPtr& col_right_ptr) const {
495
808
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
808
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
808
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
808
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
808
        DCHECK(!(left_is_const && right_is_const));
502
503
808
        if (!left_is_const && !right_is_const) {
504
361
            auto col_res = ColumnUInt8::create();
505
506
361
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
361
            vec_res.resize(col_left->get_data().size());
508
361
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
361
                              typename PrimitiveTypeTraits<PT>::CppType,
510
361
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
361
                                                     vec_res);
512
513
361
            block.replace_by_position(result, std::move(col_res));
514
447
        } else if (!left_is_const && right_is_const) {
515
35
            auto col_res = ColumnUInt8::create();
516
517
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
35
            vec_res.resize(col_left->size());
519
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
35
                              typename PrimitiveTypeTraits<PT>::CppType,
521
35
                              Op<PT>>::vector_constant(col_left->get_data(),
522
35
                                                       col_right->get_element(0), vec_res);
523
524
35
            block.replace_by_position(result, std::move(col_res));
525
412
        } else if (left_is_const && !right_is_const) {
526
412
            auto col_res = ColumnUInt8::create();
527
528
412
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
412
            vec_res.resize(col_right->size());
530
412
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
412
                              typename PrimitiveTypeTraits<PT>::CppType,
532
412
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
412
                                                       col_right->get_data(), vec_res);
534
535
412
            block.replace_by_position(result, std::move(col_res));
536
412
        }
537
808
        return Status::OK();
538
808
    }
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
494
48
                            const ColumnPtr& col_right_ptr) const {
495
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
48
        DCHECK(!(left_is_const && right_is_const));
502
503
48
        if (!left_is_const && !right_is_const) {
504
20
            auto col_res = ColumnUInt8::create();
505
506
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
20
            vec_res.resize(col_left->get_data().size());
508
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
20
                              typename PrimitiveTypeTraits<PT>::CppType,
510
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
20
                                                     vec_res);
512
513
20
            block.replace_by_position(result, std::move(col_res));
514
28
        } else if (!left_is_const && right_is_const) {
515
28
            auto col_res = ColumnUInt8::create();
516
517
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
28
            vec_res.resize(col_left->size());
519
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
28
                              typename PrimitiveTypeTraits<PT>::CppType,
521
28
                              Op<PT>>::vector_constant(col_left->get_data(),
522
28
                                                       col_right->get_element(0), vec_res);
523
524
28
            block.replace_by_position(result, std::move(col_res));
525
28
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
48
        return Status::OK();
538
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
60
                            const ColumnPtr& col_right_ptr) const {
495
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
60
        DCHECK(!(left_is_const && right_is_const));
502
503
60
        if (!left_is_const && !right_is_const) {
504
20
            auto col_res = ColumnUInt8::create();
505
506
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
20
            vec_res.resize(col_left->get_data().size());
508
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
20
                              typename PrimitiveTypeTraits<PT>::CppType,
510
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
20
                                                     vec_res);
512
513
20
            block.replace_by_position(result, std::move(col_res));
514
40
        } else if (!left_is_const && right_is_const) {
515
40
            auto col_res = ColumnUInt8::create();
516
517
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
40
            vec_res.resize(col_left->size());
519
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
40
                              typename PrimitiveTypeTraits<PT>::CppType,
521
40
                              Op<PT>>::vector_constant(col_left->get_data(),
522
40
                                                       col_right->get_element(0), vec_res);
523
524
40
            block.replace_by_position(result, std::move(col_res));
525
40
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
60
        return Status::OK();
538
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
494
1.41k
                            const ColumnPtr& col_right_ptr) const {
495
1.41k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1.41k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1.41k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1.41k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1.41k
        DCHECK(!(left_is_const && right_is_const));
502
503
1.41k
        if (!left_is_const && !right_is_const) {
504
1.37k
            auto col_res = ColumnUInt8::create();
505
506
1.37k
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1.37k
            vec_res.resize(col_left->get_data().size());
508
1.37k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1.37k
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1.37k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1.37k
                                                     vec_res);
512
513
1.37k
            block.replace_by_position(result, std::move(col_res));
514
1.37k
        } else if (!left_is_const && right_is_const) {
515
40
            auto col_res = ColumnUInt8::create();
516
517
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
40
            vec_res.resize(col_left->size());
519
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
40
                              typename PrimitiveTypeTraits<PT>::CppType,
521
40
                              Op<PT>>::vector_constant(col_left->get_data(),
522
40
                                                       col_right->get_element(0), vec_res);
523
524
40
            block.replace_by_position(result, std::move(col_res));
525
40
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1.41k
        return Status::OK();
538
1.41k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
2
                            const ColumnPtr& col_right_ptr) const {
495
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
2
        DCHECK(!(left_is_const && right_is_const));
502
503
2
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
2
        } else if (!left_is_const && right_is_const) {
515
2
            auto col_res = ColumnUInt8::create();
516
517
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
2
            vec_res.resize(col_left->size());
519
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
2
                              typename PrimitiveTypeTraits<PT>::CppType,
521
2
                              Op<PT>>::vector_constant(col_left->get_data(),
522
2
                                                       col_right->get_element(0), vec_res);
523
524
2
            block.replace_by_position(result, std::move(col_res));
525
2
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
2
        return Status::OK();
538
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1
                            const ColumnPtr& col_right_ptr) const {
495
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1
        DCHECK(!(left_is_const && right_is_const));
502
503
1
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
1
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1
        return Status::OK();
538
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1.33k
                            const ColumnPtr& col_right_ptr) const {
495
1.33k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1.33k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1.33k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1.33k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1.33k
        DCHECK(!(left_is_const && right_is_const));
502
503
1.33k
        if (!left_is_const && !right_is_const) {
504
38
            auto col_res = ColumnUInt8::create();
505
506
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
38
            vec_res.resize(col_left->get_data().size());
508
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
38
                              typename PrimitiveTypeTraits<PT>::CppType,
510
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
38
                                                     vec_res);
512
513
38
            block.replace_by_position(result, std::move(col_res));
514
1.29k
        } else if (!left_is_const && right_is_const) {
515
1.09k
            auto col_res = ColumnUInt8::create();
516
517
1.09k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
1.09k
            vec_res.resize(col_left->size());
519
1.09k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
1.09k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
1.09k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
1.09k
                                                       col_right->get_element(0), vec_res);
523
524
1.09k
            block.replace_by_position(result, std::move(col_res));
525
1.09k
        } else if (left_is_const && !right_is_const) {
526
204
            auto col_res = ColumnUInt8::create();
527
528
204
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
204
            vec_res.resize(col_right->size());
530
204
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
204
                              typename PrimitiveTypeTraits<PT>::CppType,
532
204
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
204
                                                       col_right->get_data(), vec_res);
534
535
204
            block.replace_by_position(result, std::move(col_res));
536
204
        }
537
1.33k
        return Status::OK();
538
1.33k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1.76k
                            const ColumnPtr& col_right_ptr) const {
495
1.76k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1.76k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1.76k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1.76k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1.76k
        DCHECK(!(left_is_const && right_is_const));
502
503
1.76k
        if (!left_is_const && !right_is_const) {
504
112
            auto col_res = ColumnUInt8::create();
505
506
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
112
            vec_res.resize(col_left->get_data().size());
508
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
112
                              typename PrimitiveTypeTraits<PT>::CppType,
510
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
112
                                                     vec_res);
512
513
112
            block.replace_by_position(result, std::move(col_res));
514
1.65k
        } else if (!left_is_const && right_is_const) {
515
1.45k
            auto col_res = ColumnUInt8::create();
516
517
1.45k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
1.45k
            vec_res.resize(col_left->size());
519
1.45k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
1.45k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
1.45k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
1.45k
                                                       col_right->get_element(0), vec_res);
523
524
1.45k
            block.replace_by_position(result, std::move(col_res));
525
1.45k
        } else if (left_is_const && !right_is_const) {
526
204
            auto col_res = ColumnUInt8::create();
527
528
204
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
204
            vec_res.resize(col_right->size());
530
204
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
204
                              typename PrimitiveTypeTraits<PT>::CppType,
532
204
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
204
                                                       col_right->get_data(), vec_res);
534
535
204
            block.replace_by_position(result, std::move(col_res));
536
204
        }
537
1.76k
        return Status::OK();
538
1.76k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
67.1k
                            const ColumnPtr& col_right_ptr) const {
495
67.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
67.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
67.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
67.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
67.1k
        DCHECK(!(left_is_const && right_is_const));
502
503
67.1k
        if (!left_is_const && !right_is_const) {
504
31
            auto col_res = ColumnUInt8::create();
505
506
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
31
            vec_res.resize(col_left->get_data().size());
508
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
31
                              typename PrimitiveTypeTraits<PT>::CppType,
510
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
31
                                                     vec_res);
512
513
31
            block.replace_by_position(result, std::move(col_res));
514
67.1k
        } else if (!left_is_const && right_is_const) {
515
4.60k
            auto col_res = ColumnUInt8::create();
516
517
4.60k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
4.60k
            vec_res.resize(col_left->size());
519
4.60k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
4.60k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
4.60k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
4.60k
                                                       col_right->get_element(0), vec_res);
523
524
4.60k
            block.replace_by_position(result, std::move(col_res));
525
62.5k
        } else if (left_is_const && !right_is_const) {
526
62.5k
            auto col_res = ColumnUInt8::create();
527
528
62.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
62.5k
            vec_res.resize(col_right->size());
530
62.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
62.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
532
62.5k
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
62.5k
                                                       col_right->get_data(), vec_res);
534
535
62.5k
            block.replace_by_position(result, std::move(col_res));
536
62.5k
        }
537
67.1k
        return Status::OK();
538
67.1k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1.78k
                            const ColumnPtr& col_right_ptr) const {
495
1.78k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1.78k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1.78k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1.78k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1.78k
        DCHECK(!(left_is_const && right_is_const));
502
503
1.78k
        if (!left_is_const && !right_is_const) {
504
64
            auto col_res = ColumnUInt8::create();
505
506
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
64
            vec_res.resize(col_left->get_data().size());
508
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
64
                              typename PrimitiveTypeTraits<PT>::CppType,
510
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
64
                                                     vec_res);
512
513
64
            block.replace_by_position(result, std::move(col_res));
514
1.71k
        } else if (!left_is_const && right_is_const) {
515
1.19k
            auto col_res = ColumnUInt8::create();
516
517
1.19k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
1.19k
            vec_res.resize(col_left->size());
519
1.19k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
1.19k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
1.19k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
1.19k
                                                       col_right->get_element(0), vec_res);
523
524
1.19k
            block.replace_by_position(result, std::move(col_res));
525
1.19k
        } else if (left_is_const && !right_is_const) {
526
521
            auto col_res = ColumnUInt8::create();
527
528
521
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
521
            vec_res.resize(col_right->size());
530
521
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
521
                              typename PrimitiveTypeTraits<PT>::CppType,
532
521
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
521
                                                       col_right->get_data(), vec_res);
534
535
521
            block.replace_by_position(result, std::move(col_res));
536
521
        }
537
1.78k
        return Status::OK();
538
1.78k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
222
                            const ColumnPtr& col_right_ptr) const {
495
222
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
222
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
222
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
222
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
222
        DCHECK(!(left_is_const && right_is_const));
502
503
222
        if (!left_is_const && !right_is_const) {
504
2
            auto col_res = ColumnUInt8::create();
505
506
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
2
            vec_res.resize(col_left->get_data().size());
508
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
2
                              typename PrimitiveTypeTraits<PT>::CppType,
510
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
2
                                                     vec_res);
512
513
2
            block.replace_by_position(result, std::move(col_res));
514
220
        } else if (!left_is_const && right_is_const) {
515
201
            auto col_res = ColumnUInt8::create();
516
517
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
201
            vec_res.resize(col_left->size());
519
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
201
                              typename PrimitiveTypeTraits<PT>::CppType,
521
201
                              Op<PT>>::vector_constant(col_left->get_data(),
522
201
                                                       col_right->get_element(0), vec_res);
523
524
201
            block.replace_by_position(result, std::move(col_res));
525
201
        } else if (left_is_const && !right_is_const) {
526
18
            auto col_res = ColumnUInt8::create();
527
528
18
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
18
            vec_res.resize(col_right->size());
530
18
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
18
                              typename PrimitiveTypeTraits<PT>::CppType,
532
18
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
18
                                                       col_right->get_data(), vec_res);
534
535
18
            block.replace_by_position(result, std::move(col_res));
536
18
        }
537
222
        return Status::OK();
538
222
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
4
                            const ColumnPtr& col_right_ptr) const {
495
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
4
        DCHECK(!(left_is_const && right_is_const));
502
503
4
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
3
        } else if (!left_is_const && right_is_const) {
515
3
            auto col_res = ColumnUInt8::create();
516
517
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
3
            vec_res.resize(col_left->size());
519
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
3
                              typename PrimitiveTypeTraits<PT>::CppType,
521
3
                              Op<PT>>::vector_constant(col_left->get_data(),
522
3
                                                       col_right->get_element(0), vec_res);
523
524
3
            block.replace_by_position(result, std::move(col_res));
525
3
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
4
        return Status::OK();
538
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1
                            const ColumnPtr& col_right_ptr) const {
495
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1
        DCHECK(!(left_is_const && right_is_const));
502
503
1
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
1
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1
        return Status::OK();
538
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
219
                            const ColumnPtr& col_right_ptr) const {
495
219
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
219
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
219
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
219
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
219
        DCHECK(!(left_is_const && right_is_const));
502
503
220
        if (!left_is_const && !right_is_const) {
504
20
            auto col_res = ColumnUInt8::create();
505
506
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
20
            vec_res.resize(col_left->get_data().size());
508
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
20
                              typename PrimitiveTypeTraits<PT>::CppType,
510
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
20
                                                     vec_res);
512
513
20
            block.replace_by_position(result, std::move(col_res));
514
200
        } else if (!left_is_const && right_is_const) {
515
200
            auto col_res = ColumnUInt8::create();
516
517
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
200
            vec_res.resize(col_left->size());
519
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
200
                              typename PrimitiveTypeTraits<PT>::CppType,
521
200
                              Op<PT>>::vector_constant(col_left->get_data(),
522
200
                                                       col_right->get_element(0), vec_res);
523
524
200
            block.replace_by_position(result, std::move(col_res));
525
18.4E
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
219
        return Status::OK();
538
219
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
545
                            const ColumnPtr& col_right_ptr) const {
495
545
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
545
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
545
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
545
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
545
        DCHECK(!(left_is_const && right_is_const));
502
503
545
        if (!left_is_const && !right_is_const) {
504
30
            auto col_res = ColumnUInt8::create();
505
506
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
30
            vec_res.resize(col_left->get_data().size());
508
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
30
                              typename PrimitiveTypeTraits<PT>::CppType,
510
30
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
30
                                                     vec_res);
512
513
30
            block.replace_by_position(result, std::move(col_res));
514
516
        } else if (!left_is_const && right_is_const) {
515
516
            auto col_res = ColumnUInt8::create();
516
517
516
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
516
            vec_res.resize(col_left->size());
519
516
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
516
                              typename PrimitiveTypeTraits<PT>::CppType,
521
516
                              Op<PT>>::vector_constant(col_left->get_data(),
522
516
                                                       col_right->get_element(0), vec_res);
523
524
516
            block.replace_by_position(result, std::move(col_res));
525
18.4E
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
545
        return Status::OK();
538
545
    }
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
494
36
                            const ColumnPtr& col_right_ptr) const {
495
36
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
36
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
36
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
36
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
36
        DCHECK(!(left_is_const && right_is_const));
502
503
36
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
36
        } else if (!left_is_const && right_is_const) {
515
36
            auto col_res = ColumnUInt8::create();
516
517
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
36
            vec_res.resize(col_left->size());
519
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
36
                              typename PrimitiveTypeTraits<PT>::CppType,
521
36
                              Op<PT>>::vector_constant(col_left->get_data(),
522
36
                                                       col_right->get_element(0), vec_res);
523
524
36
            block.replace_by_position(result, std::move(col_res));
525
36
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
36
        return Status::OK();
538
36
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
450
                            const ColumnPtr& col_right_ptr) const {
495
450
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
450
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
450
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
450
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
450
        DCHECK(!(left_is_const && right_is_const));
502
503
450
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
449
        } else if (!left_is_const && right_is_const) {
515
443
            auto col_res = ColumnUInt8::create();
516
517
443
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
443
            vec_res.resize(col_left->size());
519
443
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
443
                              typename PrimitiveTypeTraits<PT>::CppType,
521
443
                              Op<PT>>::vector_constant(col_left->get_data(),
522
443
                                                       col_right->get_element(0), vec_res);
523
524
443
            block.replace_by_position(result, std::move(col_res));
525
443
        } else if (left_is_const && !right_is_const) {
526
6
            auto col_res = ColumnUInt8::create();
527
528
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
6
            vec_res.resize(col_right->size());
530
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
6
                              typename PrimitiveTypeTraits<PT>::CppType,
532
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
6
                                                       col_right->get_data(), vec_res);
534
535
6
            block.replace_by_position(result, std::move(col_res));
536
6
        }
537
450
        return Status::OK();
538
450
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
112
                            const ColumnPtr& col_right_ptr) const {
495
112
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
112
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
112
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
112
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
112
        DCHECK(!(left_is_const && right_is_const));
502
503
112
        if (!left_is_const && !right_is_const) {
504
6
            auto col_res = ColumnUInt8::create();
505
506
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
6
            vec_res.resize(col_left->get_data().size());
508
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
6
                              typename PrimitiveTypeTraits<PT>::CppType,
510
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
6
                                                     vec_res);
512
513
6
            block.replace_by_position(result, std::move(col_res));
514
106
        } else if (!left_is_const && right_is_const) {
515
106
            auto col_res = ColumnUInt8::create();
516
517
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
106
            vec_res.resize(col_left->size());
519
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
106
                              typename PrimitiveTypeTraits<PT>::CppType,
521
106
                              Op<PT>>::vector_constant(col_left->get_data(),
522
106
                                                       col_right->get_element(0), vec_res);
523
524
106
            block.replace_by_position(result, std::move(col_res));
525
106
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
112
        return Status::OK();
538
112
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1
                            const ColumnPtr& col_right_ptr) const {
495
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1
        DCHECK(!(left_is_const && right_is_const));
502
503
1
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
1
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1
        return Status::OK();
538
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
41
                            const ColumnPtr& col_right_ptr) const {
495
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
41
        DCHECK(!(left_is_const && right_is_const));
502
503
41
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
41
        } else if (!left_is_const && right_is_const) {
515
41
            auto col_res = ColumnUInt8::create();
516
517
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
41
            vec_res.resize(col_left->size());
519
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
41
                              typename PrimitiveTypeTraits<PT>::CppType,
521
41
                              Op<PT>>::vector_constant(col_left->get_data(),
522
41
                                                       col_right->get_element(0), vec_res);
523
524
41
            block.replace_by_position(result, std::move(col_res));
525
41
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
41
        return Status::OK();
538
41
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
53
                            const ColumnPtr& col_right_ptr) const {
495
53
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
53
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
53
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
53
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
53
        DCHECK(!(left_is_const && right_is_const));
502
503
53
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
53
        } else if (!left_is_const && right_is_const) {
515
53
            auto col_res = ColumnUInt8::create();
516
517
53
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
53
            vec_res.resize(col_left->size());
519
53
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
53
                              typename PrimitiveTypeTraits<PT>::CppType,
521
53
                              Op<PT>>::vector_constant(col_left->get_data(),
522
53
                                                       col_right->get_element(0), vec_res);
523
524
53
            block.replace_by_position(result, std::move(col_res));
525
53
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
53
        return Status::OK();
538
53
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1.05k
                            const ColumnPtr& col_right_ptr) const {
495
1.05k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1.05k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1.05k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1.05k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1.05k
        DCHECK(!(left_is_const && right_is_const));
502
503
1.05k
        if (!left_is_const && !right_is_const) {
504
3
            auto col_res = ColumnUInt8::create();
505
506
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
3
            vec_res.resize(col_left->get_data().size());
508
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
3
                              typename PrimitiveTypeTraits<PT>::CppType,
510
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
3
                                                     vec_res);
512
513
3
            block.replace_by_position(result, std::move(col_res));
514
1.05k
        } else if (!left_is_const && right_is_const) {
515
1.05k
            auto col_res = ColumnUInt8::create();
516
517
1.05k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
1.05k
            vec_res.resize(col_left->size());
519
1.05k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
1.05k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
1.05k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
1.05k
                                                       col_right->get_element(0), vec_res);
523
524
1.05k
            block.replace_by_position(result, std::move(col_res));
525
1.05k
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1.05k
        return Status::OK();
538
1.05k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
206
                            const ColumnPtr& col_right_ptr) const {
495
206
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
206
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
206
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
206
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
206
        DCHECK(!(left_is_const && right_is_const));
502
503
206
        if (!left_is_const && !right_is_const) {
504
9
            auto col_res = ColumnUInt8::create();
505
506
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
9
            vec_res.resize(col_left->get_data().size());
508
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
9
                              typename PrimitiveTypeTraits<PT>::CppType,
510
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
9
                                                     vec_res);
512
513
9
            block.replace_by_position(result, std::move(col_res));
514
197
        } else if (!left_is_const && right_is_const) {
515
197
            auto col_res = ColumnUInt8::create();
516
517
197
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
197
            vec_res.resize(col_left->size());
519
197
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
197
                              typename PrimitiveTypeTraits<PT>::CppType,
521
197
                              Op<PT>>::vector_constant(col_left->get_data(),
522
197
                                                       col_right->get_element(0), vec_res);
523
524
197
            block.replace_by_position(result, std::move(col_res));
525
197
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
206
        return Status::OK();
538
206
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
20
                            const ColumnPtr& col_right_ptr) const {
495
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
20
        DCHECK(!(left_is_const && right_is_const));
502
503
20
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
20
        } else if (!left_is_const && right_is_const) {
515
20
            auto col_res = ColumnUInt8::create();
516
517
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
20
            vec_res.resize(col_left->size());
519
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
20
                              typename PrimitiveTypeTraits<PT>::CppType,
521
20
                              Op<PT>>::vector_constant(col_left->get_data(),
522
20
                                                       col_right->get_element(0), vec_res);
523
524
20
            block.replace_by_position(result, std::move(col_res));
525
20
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
20
        return Status::OK();
538
20
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1
                            const ColumnPtr& col_right_ptr) const {
495
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1
        DCHECK(!(left_is_const && right_is_const));
502
503
1
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
1
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1
        return Status::OK();
538
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1
                            const ColumnPtr& col_right_ptr) const {
495
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1
        DCHECK(!(left_is_const && right_is_const));
502
503
1
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
1
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1
        return Status::OK();
538
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
24
                            const ColumnPtr& col_right_ptr) const {
495
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
24
        DCHECK(!(left_is_const && right_is_const));
502
503
24
        if (!left_is_const && !right_is_const) {
504
20
            auto col_res = ColumnUInt8::create();
505
506
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
20
            vec_res.resize(col_left->get_data().size());
508
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
20
                              typename PrimitiveTypeTraits<PT>::CppType,
510
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
20
                                                     vec_res);
512
513
20
            block.replace_by_position(result, std::move(col_res));
514
20
        } else if (!left_is_const && right_is_const) {
515
4
            auto col_res = ColumnUInt8::create();
516
517
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
4
            vec_res.resize(col_left->size());
519
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
4
                              typename PrimitiveTypeTraits<PT>::CppType,
521
4
                              Op<PT>>::vector_constant(col_left->get_data(),
522
4
                                                       col_right->get_element(0), vec_res);
523
524
4
            block.replace_by_position(result, std::move(col_res));
525
4
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
24
        return Status::OK();
538
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
139
                            const ColumnPtr& col_right_ptr) const {
495
139
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
139
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
139
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
139
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
139
        DCHECK(!(left_is_const && right_is_const));
502
503
140
        if (!left_is_const && !right_is_const) {
504
24
            auto col_res = ColumnUInt8::create();
505
506
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
24
            vec_res.resize(col_left->get_data().size());
508
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
24
                              typename PrimitiveTypeTraits<PT>::CppType,
510
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
24
                                                     vec_res);
512
513
24
            block.replace_by_position(result, std::move(col_res));
514
116
        } else if (!left_is_const && right_is_const) {
515
116
            auto col_res = ColumnUInt8::create();
516
517
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
116
            vec_res.resize(col_left->size());
519
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
116
                              typename PrimitiveTypeTraits<PT>::CppType,
521
116
                              Op<PT>>::vector_constant(col_left->get_data(),
522
116
                                                       col_right->get_element(0), vec_res);
523
524
116
            block.replace_by_position(result, std::move(col_res));
525
18.4E
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
139
        return Status::OK();
538
139
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
91
                            const ColumnPtr& col_right_ptr) const {
495
91
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
91
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
91
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
91
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
91
        DCHECK(!(left_is_const && right_is_const));
502
503
91
        if (!left_is_const && !right_is_const) {
504
91
            auto col_res = ColumnUInt8::create();
505
506
91
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
91
            vec_res.resize(col_left->get_data().size());
508
91
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
91
                              typename PrimitiveTypeTraits<PT>::CppType,
510
91
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
91
                                                     vec_res);
512
513
91
            block.replace_by_position(result, std::move(col_res));
514
91
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
91
        return Status::OK();
538
91
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
2.12k
                            const ColumnPtr& col_right_ptr) const {
495
2.12k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
2.12k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
2.12k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
2.12k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
2.12k
        DCHECK(!(left_is_const && right_is_const));
502
503
2.12k
        if (!left_is_const && !right_is_const) {
504
1.81k
            auto col_res = ColumnUInt8::create();
505
506
1.81k
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1.81k
            vec_res.resize(col_left->get_data().size());
508
1.81k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1.81k
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1.81k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1.81k
                                                     vec_res);
512
513
1.81k
            block.replace_by_position(result, std::move(col_res));
514
1.81k
        } else if (!left_is_const && right_is_const) {
515
314
            auto col_res = ColumnUInt8::create();
516
517
314
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
314
            vec_res.resize(col_left->size());
519
314
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
314
                              typename PrimitiveTypeTraits<PT>::CppType,
521
314
                              Op<PT>>::vector_constant(col_left->get_data(),
522
314
                                                       col_right->get_element(0), vec_res);
523
524
314
            block.replace_by_position(result, std::move(col_res));
525
314
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
2.12k
        return Status::OK();
538
2.12k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
337
                            const ColumnPtr& col_right_ptr) const {
495
337
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
337
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
337
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
337
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
337
        DCHECK(!(left_is_const && right_is_const));
502
503
337
        if (!left_is_const && !right_is_const) {
504
279
            auto col_res = ColumnUInt8::create();
505
506
279
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
279
            vec_res.resize(col_left->get_data().size());
508
279
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
279
                              typename PrimitiveTypeTraits<PT>::CppType,
510
279
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
279
                                                     vec_res);
512
513
279
            block.replace_by_position(result, std::move(col_res));
514
279
        } else if (!left_is_const && right_is_const) {
515
59
            auto col_res = ColumnUInt8::create();
516
517
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
59
            vec_res.resize(col_left->size());
519
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
59
                              typename PrimitiveTypeTraits<PT>::CppType,
521
59
                              Op<PT>>::vector_constant(col_left->get_data(),
522
59
                                                       col_right->get_element(0), vec_res);
523
524
59
            block.replace_by_position(result, std::move(col_res));
525
18.4E
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
337
        return Status::OK();
538
337
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
2
                            const ColumnPtr& col_right_ptr) const {
495
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
2
        DCHECK(!(left_is_const && right_is_const));
502
503
2
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
1
        } else if (!left_is_const && right_is_const) {
515
1
            auto col_res = ColumnUInt8::create();
516
517
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
1
            vec_res.resize(col_left->size());
519
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
1
                              typename PrimitiveTypeTraits<PT>::CppType,
521
1
                              Op<PT>>::vector_constant(col_left->get_data(),
522
1
                                                       col_right->get_element(0), vec_res);
523
524
1
            block.replace_by_position(result, std::move(col_res));
525
1
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
2
        return Status::OK();
538
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
2.10k
                            const ColumnPtr& col_right_ptr) const {
495
2.10k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
2.10k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
2.10k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
2.10k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
2.10k
        DCHECK(!(left_is_const && right_is_const));
502
503
2.10k
        if (!left_is_const && !right_is_const) {
504
151
            auto col_res = ColumnUInt8::create();
505
506
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
151
            vec_res.resize(col_left->get_data().size());
508
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
151
                              typename PrimitiveTypeTraits<PT>::CppType,
510
151
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
151
                                                     vec_res);
512
513
151
            block.replace_by_position(result, std::move(col_res));
514
1.95k
        } else if (!left_is_const && right_is_const) {
515
1.76k
            auto col_res = ColumnUInt8::create();
516
517
1.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
1.76k
            vec_res.resize(col_left->size());
519
1.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
1.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
1.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
1.76k
                                                       col_right->get_element(0), vec_res);
523
524
1.76k
            block.replace_by_position(result, std::move(col_res));
525
1.76k
        } else if (left_is_const && !right_is_const) {
526
192
            auto col_res = ColumnUInt8::create();
527
528
192
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
192
            vec_res.resize(col_right->size());
530
192
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
192
                              typename PrimitiveTypeTraits<PT>::CppType,
532
192
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
192
                                                       col_right->get_data(), vec_res);
534
535
192
            block.replace_by_position(result, std::move(col_res));
536
192
        }
537
2.10k
        return Status::OK();
538
2.10k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
151
                            const ColumnPtr& col_right_ptr) const {
495
151
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
151
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
151
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
151
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
151
        DCHECK(!(left_is_const && right_is_const));
502
503
151
        if (!left_is_const && !right_is_const) {
504
137
            auto col_res = ColumnUInt8::create();
505
506
137
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
137
            vec_res.resize(col_left->get_data().size());
508
137
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
137
                              typename PrimitiveTypeTraits<PT>::CppType,
510
137
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
137
                                                     vec_res);
512
513
137
            block.replace_by_position(result, std::move(col_res));
514
137
        } else if (!left_is_const && right_is_const) {
515
14
            auto col_res = ColumnUInt8::create();
516
517
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
14
            vec_res.resize(col_left->size());
519
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
14
                              typename PrimitiveTypeTraits<PT>::CppType,
521
14
                              Op<PT>>::vector_constant(col_left->get_data(),
522
14
                                                       col_right->get_element(0), vec_res);
523
524
14
            block.replace_by_position(result, std::move(col_res));
525
14
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
151
        return Status::OK();
538
151
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1.19k
                            const ColumnPtr& col_right_ptr) const {
495
1.19k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1.19k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1.19k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1.19k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1.19k
        DCHECK(!(left_is_const && right_is_const));
502
503
1.19k
        if (!left_is_const && !right_is_const) {
504
177
            auto col_res = ColumnUInt8::create();
505
506
177
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
177
            vec_res.resize(col_left->get_data().size());
508
177
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
177
                              typename PrimitiveTypeTraits<PT>::CppType,
510
177
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
177
                                                     vec_res);
512
513
177
            block.replace_by_position(result, std::move(col_res));
514
1.02k
        } else if (!left_is_const && right_is_const) {
515
831
            auto col_res = ColumnUInt8::create();
516
517
831
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
831
            vec_res.resize(col_left->size());
519
831
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
831
                              typename PrimitiveTypeTraits<PT>::CppType,
521
831
                              Op<PT>>::vector_constant(col_left->get_data(),
522
831
                                                       col_right->get_element(0), vec_res);
523
524
831
            block.replace_by_position(result, std::move(col_res));
525
831
        } else if (left_is_const && !right_is_const) {
526
191
            auto col_res = ColumnUInt8::create();
527
528
191
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
191
            vec_res.resize(col_right->size());
530
191
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
191
                              typename PrimitiveTypeTraits<PT>::CppType,
532
191
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
191
                                                       col_right->get_data(), vec_res);
534
535
191
            block.replace_by_position(result, std::move(col_res));
536
191
        }
537
1.19k
        return Status::OK();
538
1.19k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
811
                            const ColumnPtr& col_right_ptr) const {
495
811
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
811
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
811
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
811
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
811
        DCHECK(!(left_is_const && right_is_const));
502
503
811
        if (!left_is_const && !right_is_const) {
504
213
            auto col_res = ColumnUInt8::create();
505
506
213
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
213
            vec_res.resize(col_left->get_data().size());
508
213
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
213
                              typename PrimitiveTypeTraits<PT>::CppType,
510
213
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
213
                                                     vec_res);
512
513
213
            block.replace_by_position(result, std::move(col_res));
514
598
        } else if (!left_is_const && right_is_const) {
515
523
            auto col_res = ColumnUInt8::create();
516
517
523
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
523
            vec_res.resize(col_left->size());
519
523
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
523
                              typename PrimitiveTypeTraits<PT>::CppType,
521
523
                              Op<PT>>::vector_constant(col_left->get_data(),
522
523
                                                       col_right->get_element(0), vec_res);
523
524
523
            block.replace_by_position(result, std::move(col_res));
525
523
        } else if (left_is_const && !right_is_const) {
526
75
            auto col_res = ColumnUInt8::create();
527
528
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
75
            vec_res.resize(col_right->size());
530
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
75
                              typename PrimitiveTypeTraits<PT>::CppType,
532
75
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
75
                                                       col_right->get_data(), vec_res);
534
535
75
            block.replace_by_position(result, std::move(col_res));
536
75
        }
537
811
        return Status::OK();
538
811
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
289
                            const ColumnPtr& col_right_ptr) const {
495
289
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
289
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
289
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
289
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
289
        DCHECK(!(left_is_const && right_is_const));
502
503
289
        if (!left_is_const && !right_is_const) {
504
151
            auto col_res = ColumnUInt8::create();
505
506
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
151
            vec_res.resize(col_left->get_data().size());
508
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
151
                              typename PrimitiveTypeTraits<PT>::CppType,
510
151
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
151
                                                     vec_res);
512
513
151
            block.replace_by_position(result, std::move(col_res));
514
151
        } else if (!left_is_const && right_is_const) {
515
46
            auto col_res = ColumnUInt8::create();
516
517
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
46
            vec_res.resize(col_left->size());
519
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
46
                              typename PrimitiveTypeTraits<PT>::CppType,
521
46
                              Op<PT>>::vector_constant(col_left->get_data(),
522
46
                                                       col_right->get_element(0), vec_res);
523
524
46
            block.replace_by_position(result, std::move(col_res));
525
92
        } else if (left_is_const && !right_is_const) {
526
92
            auto col_res = ColumnUInt8::create();
527
528
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
92
            vec_res.resize(col_right->size());
530
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
92
                              typename PrimitiveTypeTraits<PT>::CppType,
532
92
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
92
                                                       col_right->get_data(), vec_res);
534
535
92
            block.replace_by_position(result, std::move(col_res));
536
92
        }
537
289
        return Status::OK();
538
289
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
18
                            const ColumnPtr& col_right_ptr) const {
495
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
18
        DCHECK(!(left_is_const && right_is_const));
502
503
18
        if (!left_is_const && !right_is_const) {
504
16
            auto col_res = ColumnUInt8::create();
505
506
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
16
            vec_res.resize(col_left->get_data().size());
508
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
16
                              typename PrimitiveTypeTraits<PT>::CppType,
510
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
16
                                                     vec_res);
512
513
16
            block.replace_by_position(result, std::move(col_res));
514
16
        } else if (!left_is_const && right_is_const) {
515
2
            auto col_res = ColumnUInt8::create();
516
517
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
2
            vec_res.resize(col_left->size());
519
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
2
                              typename PrimitiveTypeTraits<PT>::CppType,
521
2
                              Op<PT>>::vector_constant(col_left->get_data(),
522
2
                                                       col_right->get_element(0), vec_res);
523
524
2
            block.replace_by_position(result, std::move(col_res));
525
2
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
18
        return Status::OK();
538
18
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
16
                            const ColumnPtr& col_right_ptr) const {
495
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
16
        DCHECK(!(left_is_const && right_is_const));
502
503
16
        if (!left_is_const && !right_is_const) {
504
16
            auto col_res = ColumnUInt8::create();
505
506
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
16
            vec_res.resize(col_left->get_data().size());
508
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
16
                              typename PrimitiveTypeTraits<PT>::CppType,
510
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
16
                                                     vec_res);
512
513
16
            block.replace_by_position(result, std::move(col_res));
514
16
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
16
        return Status::OK();
538
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
153
                            const ColumnPtr& col_right_ptr) const {
495
153
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
153
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
153
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
153
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
153
        DCHECK(!(left_is_const && right_is_const));
502
503
153
        if (!left_is_const && !right_is_const) {
504
153
            auto col_res = ColumnUInt8::create();
505
506
153
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
153
            vec_res.resize(col_left->get_data().size());
508
153
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
153
                              typename PrimitiveTypeTraits<PT>::CppType,
510
153
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
153
                                                     vec_res);
512
513
153
            block.replace_by_position(result, std::move(col_res));
514
153
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
153
        return Status::OK();
538
153
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
356
                            const ColumnPtr& col_right_ptr) const {
495
356
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
356
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
356
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
356
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
356
        DCHECK(!(left_is_const && right_is_const));
502
503
356
        if (!left_is_const && !right_is_const) {
504
156
            auto col_res = ColumnUInt8::create();
505
506
156
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
156
            vec_res.resize(col_left->get_data().size());
508
156
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
156
                              typename PrimitiveTypeTraits<PT>::CppType,
510
156
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
156
                                                     vec_res);
512
513
156
            block.replace_by_position(result, std::move(col_res));
514
200
        } else if (!left_is_const && right_is_const) {
515
200
            auto col_res = ColumnUInt8::create();
516
517
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
200
            vec_res.resize(col_left->size());
519
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
200
                              typename PrimitiveTypeTraits<PT>::CppType,
521
200
                              Op<PT>>::vector_constant(col_left->get_data(),
522
200
                                                       col_right->get_element(0), vec_res);
523
524
200
            block.replace_by_position(result, std::move(col_res));
525
200
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
356
        return Status::OK();
538
356
    }
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
494
42
                            const ColumnPtr& col_right_ptr) const {
495
42
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
42
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
42
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
42
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
42
        DCHECK(!(left_is_const && right_is_const));
502
503
42
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
42
        } else if (!left_is_const && right_is_const) {
515
42
            auto col_res = ColumnUInt8::create();
516
517
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
42
            vec_res.resize(col_left->size());
519
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
42
                              typename PrimitiveTypeTraits<PT>::CppType,
521
42
                              Op<PT>>::vector_constant(col_left->get_data(),
522
42
                                                       col_right->get_element(0), vec_res);
523
524
42
            block.replace_by_position(result, std::move(col_res));
525
42
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
42
        return Status::OK();
538
42
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
580
                            const ColumnPtr& col_right_ptr) const {
495
580
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
580
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
580
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
580
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
580
        DCHECK(!(left_is_const && right_is_const));
502
503
580
        if (!left_is_const && !right_is_const) {
504
416
            auto col_res = ColumnUInt8::create();
505
506
416
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
416
            vec_res.resize(col_left->get_data().size());
508
416
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
416
                              typename PrimitiveTypeTraits<PT>::CppType,
510
416
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
416
                                                     vec_res);
512
513
416
            block.replace_by_position(result, std::move(col_res));
514
416
        } else if (!left_is_const && right_is_const) {
515
157
            auto col_res = ColumnUInt8::create();
516
517
157
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
157
            vec_res.resize(col_left->size());
519
157
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
157
                              typename PrimitiveTypeTraits<PT>::CppType,
521
157
                              Op<PT>>::vector_constant(col_left->get_data(),
522
157
                                                       col_right->get_element(0), vec_res);
523
524
157
            block.replace_by_position(result, std::move(col_res));
525
157
        } else if (left_is_const && !right_is_const) {
526
5
            auto col_res = ColumnUInt8::create();
527
528
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
5
            vec_res.resize(col_right->size());
530
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
5
                              typename PrimitiveTypeTraits<PT>::CppType,
532
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
5
                                                       col_right->get_data(), vec_res);
534
535
5
            block.replace_by_position(result, std::move(col_res));
536
5
        }
537
580
        return Status::OK();
538
580
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
42
                            const ColumnPtr& col_right_ptr) const {
495
42
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
42
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
42
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
42
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
42
        DCHECK(!(left_is_const && right_is_const));
502
503
42
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
42
        } else if (!left_is_const && right_is_const) {
515
42
            auto col_res = ColumnUInt8::create();
516
517
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
42
            vec_res.resize(col_left->size());
519
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
42
                              typename PrimitiveTypeTraits<PT>::CppType,
521
42
                              Op<PT>>::vector_constant(col_left->get_data(),
522
42
                                                       col_right->get_element(0), vec_res);
523
524
42
            block.replace_by_position(result, std::move(col_res));
525
42
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
42
        return Status::OK();
538
42
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
1
                            const ColumnPtr& col_right_ptr) const {
495
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
1
        DCHECK(!(left_is_const && right_is_const));
502
503
1
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
1
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
1
        return Status::OK();
538
1
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
61
                            const ColumnPtr& col_right_ptr) const {
495
61
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
61
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
61
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
61
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
61
        DCHECK(!(left_is_const && right_is_const));
502
503
61
        if (!left_is_const && !right_is_const) {
504
1
            auto col_res = ColumnUInt8::create();
505
506
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
1
            vec_res.resize(col_left->get_data().size());
508
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
1
                              typename PrimitiveTypeTraits<PT>::CppType,
510
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
1
                                                     vec_res);
512
513
1
            block.replace_by_position(result, std::move(col_res));
514
60
        } else if (!left_is_const && right_is_const) {
515
60
            auto col_res = ColumnUInt8::create();
516
517
60
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
60
            vec_res.resize(col_left->size());
519
60
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
60
                              typename PrimitiveTypeTraits<PT>::CppType,
521
60
                              Op<PT>>::vector_constant(col_left->get_data(),
522
60
                                                       col_right->get_element(0), vec_res);
523
524
60
            block.replace_by_position(result, std::move(col_res));
525
60
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
61
        return Status::OK();
538
61
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
77
                            const ColumnPtr& col_right_ptr) const {
495
77
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
77
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
77
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
77
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
77
        DCHECK(!(left_is_const && right_is_const));
502
503
77
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
77
        } else if (!left_is_const && right_is_const) {
515
77
            auto col_res = ColumnUInt8::create();
516
517
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
77
            vec_res.resize(col_left->size());
519
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
77
                              typename PrimitiveTypeTraits<PT>::CppType,
521
77
                              Op<PT>>::vector_constant(col_left->get_data(),
522
77
                                                       col_right->get_element(0), vec_res);
523
524
77
            block.replace_by_position(result, std::move(col_res));
525
77
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
77
        return Status::OK();
538
77
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
6.83k
                            const ColumnPtr& col_right_ptr) const {
495
6.83k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
6.83k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
6.83k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
6.83k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
6.83k
        DCHECK(!(left_is_const && right_is_const));
502
503
6.83k
        if (!left_is_const && !right_is_const) {
504
10
            auto col_res = ColumnUInt8::create();
505
506
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
10
            vec_res.resize(col_left->get_data().size());
508
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
10
                              typename PrimitiveTypeTraits<PT>::CppType,
510
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
10
                                                     vec_res);
512
513
10
            block.replace_by_position(result, std::move(col_res));
514
6.82k
        } else if (!left_is_const && right_is_const) {
515
6.35k
            auto col_res = ColumnUInt8::create();
516
517
6.35k
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
6.35k
            vec_res.resize(col_left->size());
519
6.35k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
6.35k
                              typename PrimitiveTypeTraits<PT>::CppType,
521
6.35k
                              Op<PT>>::vector_constant(col_left->get_data(),
522
6.35k
                                                       col_right->get_element(0), vec_res);
523
524
6.35k
            block.replace_by_position(result, std::move(col_res));
525
6.35k
        } else if (left_is_const && !right_is_const) {
526
477
            auto col_res = ColumnUInt8::create();
527
528
477
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
477
            vec_res.resize(col_right->size());
530
477
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
477
                              typename PrimitiveTypeTraits<PT>::CppType,
532
477
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
477
                                                       col_right->get_data(), vec_res);
534
535
477
            block.replace_by_position(result, std::move(col_res));
536
477
        }
537
6.83k
        return Status::OK();
538
6.83k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
345
                            const ColumnPtr& col_right_ptr) const {
495
345
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
345
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
345
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
345
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
345
        DCHECK(!(left_is_const && right_is_const));
502
503
345
        if (!left_is_const && !right_is_const) {
504
31
            auto col_res = ColumnUInt8::create();
505
506
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
31
            vec_res.resize(col_left->get_data().size());
508
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
31
                              typename PrimitiveTypeTraits<PT>::CppType,
510
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
31
                                                     vec_res);
512
513
31
            block.replace_by_position(result, std::move(col_res));
514
314
        } else if (!left_is_const && right_is_const) {
515
266
            auto col_res = ColumnUInt8::create();
516
517
266
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
266
            vec_res.resize(col_left->size());
519
266
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
266
                              typename PrimitiveTypeTraits<PT>::CppType,
521
266
                              Op<PT>>::vector_constant(col_left->get_data(),
522
266
                                                       col_right->get_element(0), vec_res);
523
524
266
            block.replace_by_position(result, std::move(col_res));
525
266
        } else if (left_is_const && !right_is_const) {
526
48
            auto col_res = ColumnUInt8::create();
527
528
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
48
            vec_res.resize(col_right->size());
530
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
48
                              typename PrimitiveTypeTraits<PT>::CppType,
532
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
48
                                                       col_right->get_data(), vec_res);
534
535
48
            block.replace_by_position(result, std::move(col_res));
536
48
        }
537
345
        return Status::OK();
538
345
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
34
                            const ColumnPtr& col_right_ptr) const {
495
34
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
34
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
34
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
34
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
34
        DCHECK(!(left_is_const && right_is_const));
502
503
34
        if (!left_is_const && !right_is_const) {
504
0
            auto col_res = ColumnUInt8::create();
505
506
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
0
            vec_res.resize(col_left->get_data().size());
508
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
0
                              typename PrimitiveTypeTraits<PT>::CppType,
510
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
0
                                                     vec_res);
512
513
0
            block.replace_by_position(result, std::move(col_res));
514
34
        } else if (!left_is_const && right_is_const) {
515
34
            auto col_res = ColumnUInt8::create();
516
517
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
34
            vec_res.resize(col_left->size());
519
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
34
                              typename PrimitiveTypeTraits<PT>::CppType,
521
34
                              Op<PT>>::vector_constant(col_left->get_data(),
522
34
                                                       col_right->get_element(0), vec_res);
523
524
34
            block.replace_by_position(result, std::move(col_res));
525
34
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
34
        return Status::OK();
538
34
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
20
                            const ColumnPtr& col_right_ptr) const {
495
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
20
        DCHECK(!(left_is_const && right_is_const));
502
503
20
        if (!left_is_const && !right_is_const) {
504
20
            auto col_res = ColumnUInt8::create();
505
506
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
20
            vec_res.resize(col_left->get_data().size());
508
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
20
                              typename PrimitiveTypeTraits<PT>::CppType,
510
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
20
                                                     vec_res);
512
513
20
            block.replace_by_position(result, std::move(col_res));
514
20
        } else if (!left_is_const && right_is_const) {
515
0
            auto col_res = ColumnUInt8::create();
516
517
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
0
            vec_res.resize(col_left->size());
519
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
0
                              typename PrimitiveTypeTraits<PT>::CppType,
521
0
                              Op<PT>>::vector_constant(col_left->get_data(),
522
0
                                                       col_right->get_element(0), vec_res);
523
524
0
            block.replace_by_position(result, std::move(col_res));
525
0
        } else if (left_is_const && !right_is_const) {
526
0
            auto col_res = ColumnUInt8::create();
527
528
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
0
            vec_res.resize(col_right->size());
530
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
0
                              typename PrimitiveTypeTraits<PT>::CppType,
532
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
0
                                                       col_right->get_data(), vec_res);
534
535
0
            block.replace_by_position(result, std::move(col_res));
536
0
        }
537
20
        return Status::OK();
538
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
494
128
                            const ColumnPtr& col_right_ptr) const {
495
128
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
496
128
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
497
498
128
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
499
128
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
500
501
128
        DCHECK(!(left_is_const && right_is_const));
502
503
128
        if (!left_is_const && !right_is_const) {
504
20
            auto col_res = ColumnUInt8::create();
505
506
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
507
20
            vec_res.resize(col_left->get_data().size());
508
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
509
20
                              typename PrimitiveTypeTraits<PT>::CppType,
510
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
511
20
                                                     vec_res);
512
513
20
            block.replace_by_position(result, std::move(col_res));
514
108
        } else if (!left_is_const && right_is_const) {
515
107
            auto col_res = ColumnUInt8::create();
516
517
107
            ColumnUInt8::Container& vec_res = col_res->get_data();
518
107
            vec_res.resize(col_left->size());
519
107
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
520
107
                              typename PrimitiveTypeTraits<PT>::CppType,
521
107
                              Op<PT>>::vector_constant(col_left->get_data(),
522
107
                                                       col_right->get_element(0), vec_res);
523
524
107
            block.replace_by_position(result, std::move(col_res));
525
107
        } else if (left_is_const && !right_is_const) {
526
1
            auto col_res = ColumnUInt8::create();
527
528
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
529
1
            vec_res.resize(col_right->size());
530
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
531
1
                              typename PrimitiveTypeTraits<PT>::CppType,
532
1
                              Op<PT>>::constant_vector(col_left->get_element(0),
533
1
                                                       col_right->get_data(), vec_res);
534
535
1
            block.replace_by_position(result, std::move(col_res));
536
1
        }
537
128
        return Status::OK();
538
128
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
539
540
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
541
3.11k
                           const ColumnWithTypeAndName& col_right) const {
542
3.11k
        auto call = [&](const auto& type) -> bool {
543
3.11k
            using DispatchType = std::decay_t<decltype(type)>;
544
3.11k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
3.11k
                    block, result, col_left, col_right);
546
3.11k
            return true;
547
3.11k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
542
132
        auto call = [&](const auto& type) -> bool {
543
132
            using DispatchType = std::decay_t<decltype(type)>;
544
132
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
132
                    block, result, col_left, col_right);
546
132
            return true;
547
132
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
542
152
        auto call = [&](const auto& type) -> bool {
543
152
            using DispatchType = std::decay_t<decltype(type)>;
544
152
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
152
                    block, result, col_left, col_right);
546
152
            return true;
547
152
        };
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
542
888
        auto call = [&](const auto& type) -> bool {
543
888
            using DispatchType = std::decay_t<decltype(type)>;
544
888
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
888
                    block, result, col_left, col_right);
546
888
            return true;
547
888
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
542
34
        auto call = [&](const auto& type) -> bool {
543
34
            using DispatchType = std::decay_t<decltype(type)>;
544
34
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
34
                    block, result, col_left, col_right);
546
34
            return true;
547
34
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
542
69
        auto call = [&](const auto& type) -> bool {
543
69
            using DispatchType = std::decay_t<decltype(type)>;
544
69
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
69
                    block, result, col_left, col_right);
546
69
            return true;
547
69
        };
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
542
28
        auto call = [&](const auto& type) -> bool {
543
28
            using DispatchType = std::decay_t<decltype(type)>;
544
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
28
                    block, result, col_left, col_right);
546
28
            return true;
547
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
542
30
        auto call = [&](const auto& type) -> bool {
543
30
            using DispatchType = std::decay_t<decltype(type)>;
544
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
30
                    block, result, col_left, col_right);
546
30
            return true;
547
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
542
8
        auto call = [&](const auto& type) -> bool {
543
8
            using DispatchType = std::decay_t<decltype(type)>;
544
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
8
                    block, result, col_left, col_right);
546
8
            return true;
547
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
542
66
        auto call = [&](const auto& type) -> bool {
543
66
            using DispatchType = std::decay_t<decltype(type)>;
544
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
66
                    block, result, col_left, col_right);
546
66
            return true;
547
66
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
542
671
        auto call = [&](const auto& type) -> bool {
543
671
            using DispatchType = std::decay_t<decltype(type)>;
544
671
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
671
                    block, result, col_left, col_right);
546
671
            return true;
547
671
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
542
2
        auto call = [&](const auto& type) -> bool {
543
2
            using DispatchType = std::decay_t<decltype(type)>;
544
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
2
                    block, result, col_left, col_right);
546
2
            return true;
547
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
542
1
        auto call = [&](const auto& type) -> bool {
543
1
            using DispatchType = std::decay_t<decltype(type)>;
544
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
1
                    block, result, col_left, col_right);
546
1
            return true;
547
1
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
542
89
        auto call = [&](const auto& type) -> bool {
543
89
            using DispatchType = std::decay_t<decltype(type)>;
544
89
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
89
                    block, result, col_left, col_right);
546
89
            return true;
547
89
        };
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
542
51
        auto call = [&](const auto& type) -> bool {
543
51
            using DispatchType = std::decay_t<decltype(type)>;
544
51
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
51
                    block, result, col_left, col_right);
546
51
            return true;
547
51
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
542
17
        auto call = [&](const auto& type) -> bool {
543
17
            using DispatchType = std::decay_t<decltype(type)>;
544
17
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
17
                    block, result, col_left, col_right);
546
17
            return true;
547
17
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
542
179
        auto call = [&](const auto& type) -> bool {
543
179
            using DispatchType = std::decay_t<decltype(type)>;
544
179
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
179
                    block, result, col_left, col_right);
546
179
            return true;
547
179
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
542
215
        auto call = [&](const auto& type) -> bool {
543
215
            using DispatchType = std::decay_t<decltype(type)>;
544
215
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
215
                    block, result, col_left, col_right);
546
215
            return true;
547
215
        };
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
542
289
        auto call = [&](const auto& type) -> bool {
543
289
            using DispatchType = std::decay_t<decltype(type)>;
544
289
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
289
                    block, result, col_left, col_right);
546
289
            return true;
547
289
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
542
1
        auto call = [&](const auto& type) -> bool {
543
1
            using DispatchType = std::decay_t<decltype(type)>;
544
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
1
                    block, result, col_left, col_right);
546
1
            return true;
547
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
542
4
        auto call = [&](const auto& type) -> bool {
543
4
            using DispatchType = std::decay_t<decltype(type)>;
544
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
4
                    block, result, col_left, col_right);
546
4
            return true;
547
4
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
542
98
        auto call = [&](const auto& type) -> bool {
543
98
            using DispatchType = std::decay_t<decltype(type)>;
544
98
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
98
                    block, result, col_left, col_right);
546
98
            return true;
547
98
        };
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
542
76
        auto call = [&](const auto& type) -> bool {
543
76
            using DispatchType = std::decay_t<decltype(type)>;
544
76
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
76
                    block, result, col_left, col_right);
546
76
            return true;
547
76
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
542
12
        auto call = [&](const auto& type) -> bool {
543
12
            using DispatchType = std::decay_t<decltype(type)>;
544
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
12
                    block, result, col_left, col_right);
546
12
            return true;
547
12
        };
548
549
3.11k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
550
0
            return Status::RuntimeError(
551
0
                    "type of left column {} is not equal to type of right column {}",
552
0
                    col_left.type->get_name(), col_right.type->get_name());
553
0
        }
554
555
3.11k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
556
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
557
0
                                        col_left.type->get_name(), col_right.type->get_name());
558
0
        }
559
3.11k
        return Status::OK();
560
3.11k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
541
1.20k
                           const ColumnWithTypeAndName& col_right) const {
542
1.20k
        auto call = [&](const auto& type) -> bool {
543
1.20k
            using DispatchType = std::decay_t<decltype(type)>;
544
1.20k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
1.20k
                    block, result, col_left, col_right);
546
1.20k
            return true;
547
1.20k
        };
548
549
1.20k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
550
0
            return Status::RuntimeError(
551
0
                    "type of left column {} is not equal to type of right column {}",
552
0
                    col_left.type->get_name(), col_right.type->get_name());
553
0
        }
554
555
1.20k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
556
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
557
0
                                        col_left.type->get_name(), col_right.type->get_name());
558
0
        }
559
1.20k
        return Status::OK();
560
1.20k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
541
127
                           const ColumnWithTypeAndName& col_right) const {
542
127
        auto call = [&](const auto& type) -> bool {
543
127
            using DispatchType = std::decay_t<decltype(type)>;
544
127
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
127
                    block, result, col_left, col_right);
546
127
            return true;
547
127
        };
548
549
127
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
550
0
            return Status::RuntimeError(
551
0
                    "type of left column {} is not equal to type of right column {}",
552
0
                    col_left.type->get_name(), col_right.type->get_name());
553
0
        }
554
555
127
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
556
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
557
0
                                        col_left.type->get_name(), col_right.type->get_name());
558
0
        }
559
127
        return Status::OK();
560
127
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
541
747
                           const ColumnWithTypeAndName& col_right) const {
542
747
        auto call = [&](const auto& type) -> bool {
543
747
            using DispatchType = std::decay_t<decltype(type)>;
544
747
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
747
                    block, result, col_left, col_right);
546
747
            return true;
547
747
        };
548
549
747
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
550
0
            return Status::RuntimeError(
551
0
                    "type of left column {} is not equal to type of right column {}",
552
0
                    col_left.type->get_name(), col_right.type->get_name());
553
0
        }
554
555
747
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
556
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
557
0
                                        col_left.type->get_name(), col_right.type->get_name());
558
0
        }
559
747
        return Status::OK();
560
747
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
541
158
                           const ColumnWithTypeAndName& col_right) const {
542
158
        auto call = [&](const auto& type) -> bool {
543
158
            using DispatchType = std::decay_t<decltype(type)>;
544
158
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
158
                    block, result, col_left, col_right);
546
158
            return true;
547
158
        };
548
549
158
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
550
0
            return Status::RuntimeError(
551
0
                    "type of left column {} is not equal to type of right column {}",
552
0
                    col_left.type->get_name(), col_right.type->get_name());
553
0
        }
554
555
158
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
556
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
557
0
                                        col_left.type->get_name(), col_right.type->get_name());
558
0
        }
559
158
        return Status::OK();
560
158
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
541
684
                           const ColumnWithTypeAndName& col_right) const {
542
684
        auto call = [&](const auto& type) -> bool {
543
684
            using DispatchType = std::decay_t<decltype(type)>;
544
684
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
684
                    block, result, col_left, col_right);
546
684
            return true;
547
684
        };
548
549
684
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
550
0
            return Status::RuntimeError(
551
0
                    "type of left column {} is not equal to type of right column {}",
552
0
                    col_left.type->get_name(), col_right.type->get_name());
553
0
        }
554
555
684
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
556
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
557
0
                                        col_left.type->get_name(), col_right.type->get_name());
558
0
        }
559
684
        return Status::OK();
560
684
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
541
190
                           const ColumnWithTypeAndName& col_right) const {
542
190
        auto call = [&](const auto& type) -> bool {
543
190
            using DispatchType = std::decay_t<decltype(type)>;
544
190
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
545
190
                    block, result, col_left, col_right);
546
190
            return true;
547
190
        };
548
549
190
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
550
0
            return Status::RuntimeError(
551
0
                    "type of left column {} is not equal to type of right column {}",
552
0
                    col_left.type->get_name(), col_right.type->get_name());
553
0
        }
554
555
190
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
556
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
557
0
                                        col_left.type->get_name(), col_right.type->get_name());
558
0
        }
559
190
        return Status::OK();
560
190
    }
561
562
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
563
13.0k
                          const IColumn* c1) const {
564
13.0k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
565
13.0k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
566
13.0k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
567
13.0k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
568
13.0k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
569
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
570
0
                                        c0->get_name(), c1->get_name(), name);
571
0
        }
572
13.0k
        DCHECK(!(c0_const && c1_const));
573
13.0k
        const ColumnString::Chars* c0_const_chars = nullptr;
574
13.0k
        const ColumnString::Chars* c1_const_chars = nullptr;
575
13.0k
        ColumnString::Offset c0_const_size = 0;
576
13.0k
        ColumnString::Offset c1_const_size = 0;
577
578
13.0k
        if (c0_const) {
579
82
            const ColumnString* c0_const_string =
580
82
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
581
582
82
            if (c0_const_string) {
583
82
                c0_const_chars = &c0_const_string->get_chars();
584
82
                c0_const_size = c0_const_string->get_offsets()[0];
585
82
            } else {
586
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
587
0
                                            c0->get_name(), name);
588
0
            }
589
82
        }
590
591
13.0k
        if (c1_const) {
592
12.0k
            const ColumnString* c1_const_string =
593
12.0k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
594
595
12.0k
            if (c1_const_string) {
596
12.0k
                c1_const_chars = &c1_const_string->get_chars();
597
12.0k
                c1_const_size = c1_const_string->get_offsets()[0];
598
12.0k
            } else {
599
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
600
0
                                            c1->get_name(), name);
601
0
            }
602
12.0k
        }
603
604
13.0k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
605
606
13.0k
        auto c_res = ColumnUInt8::create();
607
13.0k
        ColumnUInt8::Container& vec_res = c_res->get_data();
608
13.0k
        vec_res.resize(c0->size());
609
610
13.0k
        if (c0_string && c1_string) {
611
955
            StringImpl::string_vector_string_vector(
612
955
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
613
955
                    c1_string->get_offsets(), vec_res);
614
12.1k
        } else if (c0_string && c1_const) {
615
12.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
616
12.0k
                                               *c1_const_chars, c1_const_size, vec_res);
617
12.0k
        } else if (c0_const && c1_string) {
618
82
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
619
82
                                               c1_string->get_chars(), c1_string->get_offsets(),
620
82
                                               vec_res);
621
82
        } else {
622
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
623
0
                                        c0->get_name(), c1->get_name(), name);
624
0
        }
625
13.0k
        block.replace_by_position(result, std::move(c_res));
626
13.0k
        return Status::OK();
627
13.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
563
11.1k
                          const IColumn* c1) const {
564
11.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
565
11.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
566
11.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
567
11.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
568
11.1k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
569
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
570
0
                                        c0->get_name(), c1->get_name(), name);
571
0
        }
572
11.1k
        DCHECK(!(c0_const && c1_const));
573
11.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
574
11.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
575
11.1k
        ColumnString::Offset c0_const_size = 0;
576
11.1k
        ColumnString::Offset c1_const_size = 0;
577
578
11.1k
        if (c0_const) {
579
16
            const ColumnString* c0_const_string =
580
16
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
581
582
16
            if (c0_const_string) {
583
16
                c0_const_chars = &c0_const_string->get_chars();
584
16
                c0_const_size = c0_const_string->get_offsets()[0];
585
16
            } else {
586
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
587
0
                                            c0->get_name(), name);
588
0
            }
589
16
        }
590
591
11.1k
        if (c1_const) {
592
10.6k
            const ColumnString* c1_const_string =
593
10.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
594
595
10.6k
            if (c1_const_string) {
596
10.6k
                c1_const_chars = &c1_const_string->get_chars();
597
10.6k
                c1_const_size = c1_const_string->get_offsets()[0];
598
10.6k
            } else {
599
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
600
0
                                            c1->get_name(), name);
601
0
            }
602
10.6k
        }
603
604
11.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
605
606
11.1k
        auto c_res = ColumnUInt8::create();
607
11.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
608
11.1k
        vec_res.resize(c0->size());
609
610
11.1k
        if (c0_string && c1_string) {
611
449
            StringImpl::string_vector_string_vector(
612
449
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
613
449
                    c1_string->get_offsets(), vec_res);
614
10.6k
        } else if (c0_string && c1_const) {
615
10.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
616
10.6k
                                               *c1_const_chars, c1_const_size, vec_res);
617
10.6k
        } else if (c0_const && c1_string) {
618
16
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
619
16
                                               c1_string->get_chars(), c1_string->get_offsets(),
620
16
                                               vec_res);
621
16
        } else {
622
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
623
0
                                        c0->get_name(), c1->get_name(), name);
624
0
        }
625
11.1k
        block.replace_by_position(result, std::move(c_res));
626
11.1k
        return Status::OK();
627
11.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
563
124
                          const IColumn* c1) const {
564
124
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
565
124
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
566
124
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
567
124
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
568
124
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
569
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
570
0
                                        c0->get_name(), c1->get_name(), name);
571
0
        }
572
124
        DCHECK(!(c0_const && c1_const));
573
124
        const ColumnString::Chars* c0_const_chars = nullptr;
574
124
        const ColumnString::Chars* c1_const_chars = nullptr;
575
124
        ColumnString::Offset c0_const_size = 0;
576
124
        ColumnString::Offset c1_const_size = 0;
577
578
124
        if (c0_const) {
579
0
            const ColumnString* c0_const_string =
580
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
581
582
0
            if (c0_const_string) {
583
0
                c0_const_chars = &c0_const_string->get_chars();
584
0
                c0_const_size = c0_const_string->get_offsets()[0];
585
0
            } else {
586
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
587
0
                                            c0->get_name(), name);
588
0
            }
589
0
        }
590
591
124
        if (c1_const) {
592
120
            const ColumnString* c1_const_string =
593
120
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
594
595
120
            if (c1_const_string) {
596
120
                c1_const_chars = &c1_const_string->get_chars();
597
120
                c1_const_size = c1_const_string->get_offsets()[0];
598
120
            } else {
599
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
600
0
                                            c1->get_name(), name);
601
0
            }
602
120
        }
603
604
124
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
605
606
124
        auto c_res = ColumnUInt8::create();
607
124
        ColumnUInt8::Container& vec_res = c_res->get_data();
608
124
        vec_res.resize(c0->size());
609
610
124
        if (c0_string && c1_string) {
611
4
            StringImpl::string_vector_string_vector(
612
4
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
613
4
                    c1_string->get_offsets(), vec_res);
614
120
        } else if (c0_string && c1_const) {
615
120
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
616
120
                                               *c1_const_chars, c1_const_size, vec_res);
617
120
        } else if (c0_const && c1_string) {
618
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
619
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
620
0
                                               vec_res);
621
0
        } else {
622
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
623
0
                                        c0->get_name(), c1->get_name(), name);
624
0
        }
625
124
        block.replace_by_position(result, std::move(c_res));
626
124
        return Status::OK();
627
124
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
563
108
                          const IColumn* c1) const {
564
108
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
565
108
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
566
108
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
567
108
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
568
108
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
569
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
570
0
                                        c0->get_name(), c1->get_name(), name);
571
0
        }
572
108
        DCHECK(!(c0_const && c1_const));
573
108
        const ColumnString::Chars* c0_const_chars = nullptr;
574
108
        const ColumnString::Chars* c1_const_chars = nullptr;
575
108
        ColumnString::Offset c0_const_size = 0;
576
108
        ColumnString::Offset c1_const_size = 0;
577
578
108
        if (c0_const) {
579
0
            const ColumnString* c0_const_string =
580
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
581
582
0
            if (c0_const_string) {
583
0
                c0_const_chars = &c0_const_string->get_chars();
584
0
                c0_const_size = c0_const_string->get_offsets()[0];
585
0
            } else {
586
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
587
0
                                            c0->get_name(), name);
588
0
            }
589
0
        }
590
591
108
        if (c1_const) {
592
106
            const ColumnString* c1_const_string =
593
106
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
594
595
106
            if (c1_const_string) {
596
106
                c1_const_chars = &c1_const_string->get_chars();
597
106
                c1_const_size = c1_const_string->get_offsets()[0];
598
106
            } else {
599
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
600
0
                                            c1->get_name(), name);
601
0
            }
602
106
        }
603
604
108
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
605
606
108
        auto c_res = ColumnUInt8::create();
607
108
        ColumnUInt8::Container& vec_res = c_res->get_data();
608
108
        vec_res.resize(c0->size());
609
610
108
        if (c0_string && c1_string) {
611
2
            StringImpl::string_vector_string_vector(
612
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
613
2
                    c1_string->get_offsets(), vec_res);
614
106
        } else if (c0_string && c1_const) {
615
106
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
616
106
                                               *c1_const_chars, c1_const_size, vec_res);
617
106
        } else if (c0_const && c1_string) {
618
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
619
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
620
0
                                               vec_res);
621
0
        } else {
622
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
623
0
                                        c0->get_name(), c1->get_name(), name);
624
0
        }
625
108
        block.replace_by_position(result, std::move(c_res));
626
108
        return Status::OK();
627
108
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
563
644
                          const IColumn* c1) const {
564
644
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
565
644
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
566
644
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
567
644
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
568
644
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
569
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
570
0
                                        c0->get_name(), c1->get_name(), name);
571
0
        }
572
644
        DCHECK(!(c0_const && c1_const));
573
644
        const ColumnString::Chars* c0_const_chars = nullptr;
574
644
        const ColumnString::Chars* c1_const_chars = nullptr;
575
644
        ColumnString::Offset c0_const_size = 0;
576
644
        ColumnString::Offset c1_const_size = 0;
577
578
644
        if (c0_const) {
579
60
            const ColumnString* c0_const_string =
580
60
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
581
582
60
            if (c0_const_string) {
583
60
                c0_const_chars = &c0_const_string->get_chars();
584
60
                c0_const_size = c0_const_string->get_offsets()[0];
585
60
            } else {
586
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
587
0
                                            c0->get_name(), name);
588
0
            }
589
60
        }
590
591
644
        if (c1_const) {
592
548
            const ColumnString* c1_const_string =
593
548
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
594
595
548
            if (c1_const_string) {
596
548
                c1_const_chars = &c1_const_string->get_chars();
597
548
                c1_const_size = c1_const_string->get_offsets()[0];
598
548
            } else {
599
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
600
0
                                            c1->get_name(), name);
601
0
            }
602
548
        }
603
604
644
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
605
606
644
        auto c_res = ColumnUInt8::create();
607
644
        ColumnUInt8::Container& vec_res = c_res->get_data();
608
644
        vec_res.resize(c0->size());
609
610
644
        if (c0_string && c1_string) {
611
36
            StringImpl::string_vector_string_vector(
612
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
613
36
                    c1_string->get_offsets(), vec_res);
614
608
        } else if (c0_string && c1_const) {
615
548
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
616
548
                                               *c1_const_chars, c1_const_size, vec_res);
617
548
        } else if (c0_const && c1_string) {
618
60
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
619
60
                                               c1_string->get_chars(), c1_string->get_offsets(),
620
60
                                               vec_res);
621
60
        } else {
622
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
623
0
                                        c0->get_name(), c1->get_name(), name);
624
0
        }
625
644
        block.replace_by_position(result, std::move(c_res));
626
644
        return Status::OK();
627
644
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
563
510
                          const IColumn* c1) const {
564
510
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
565
510
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
566
510
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
567
510
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
568
510
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
569
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
570
0
                                        c0->get_name(), c1->get_name(), name);
571
0
        }
572
510
        DCHECK(!(c0_const && c1_const));
573
510
        const ColumnString::Chars* c0_const_chars = nullptr;
574
510
        const ColumnString::Chars* c1_const_chars = nullptr;
575
510
        ColumnString::Offset c0_const_size = 0;
576
510
        ColumnString::Offset c1_const_size = 0;
577
578
510
        if (c0_const) {
579
6
            const ColumnString* c0_const_string =
580
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
581
582
6
            if (c0_const_string) {
583
6
                c0_const_chars = &c0_const_string->get_chars();
584
6
                c0_const_size = c0_const_string->get_offsets()[0];
585
6
            } else {
586
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
587
0
                                            c0->get_name(), name);
588
0
            }
589
6
        }
590
591
510
        if (c1_const) {
592
40
            const ColumnString* c1_const_string =
593
40
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
594
595
40
            if (c1_const_string) {
596
40
                c1_const_chars = &c1_const_string->get_chars();
597
40
                c1_const_size = c1_const_string->get_offsets()[0];
598
40
            } else {
599
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
600
0
                                            c1->get_name(), name);
601
0
            }
602
40
        }
603
604
510
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
605
606
510
        auto c_res = ColumnUInt8::create();
607
510
        ColumnUInt8::Container& vec_res = c_res->get_data();
608
510
        vec_res.resize(c0->size());
609
610
510
        if (c0_string && c1_string) {
611
464
            StringImpl::string_vector_string_vector(
612
464
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
613
464
                    c1_string->get_offsets(), vec_res);
614
464
        } else if (c0_string && c1_const) {
615
40
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
616
40
                                               *c1_const_chars, c1_const_size, vec_res);
617
40
        } else if (c0_const && c1_string) {
618
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
619
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
620
6
                                               vec_res);
621
6
        } else {
622
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
623
0
                                        c0->get_name(), c1->get_name(), name);
624
0
        }
625
510
        block.replace_by_position(result, std::move(c_res));
626
510
        return Status::OK();
627
510
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
563
599
                          const IColumn* c1) const {
564
599
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
565
599
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
566
599
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
567
599
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
568
599
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
569
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
570
0
                                        c0->get_name(), c1->get_name(), name);
571
0
        }
572
599
        DCHECK(!(c0_const && c1_const));
573
599
        const ColumnString::Chars* c0_const_chars = nullptr;
574
599
        const ColumnString::Chars* c1_const_chars = nullptr;
575
599
        ColumnString::Offset c0_const_size = 0;
576
599
        ColumnString::Offset c1_const_size = 0;
577
578
599
        if (c0_const) {
579
0
            const ColumnString* c0_const_string =
580
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
581
582
0
            if (c0_const_string) {
583
0
                c0_const_chars = &c0_const_string->get_chars();
584
0
                c0_const_size = c0_const_string->get_offsets()[0];
585
0
            } else {
586
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
587
0
                                            c0->get_name(), name);
588
0
            }
589
0
        }
590
591
599
        if (c1_const) {
592
599
            const ColumnString* c1_const_string =
593
599
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
594
595
599
            if (c1_const_string) {
596
599
                c1_const_chars = &c1_const_string->get_chars();
597
599
                c1_const_size = c1_const_string->get_offsets()[0];
598
599
            } else {
599
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
600
0
                                            c1->get_name(), name);
601
0
            }
602
599
        }
603
604
599
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
605
606
599
        auto c_res = ColumnUInt8::create();
607
599
        ColumnUInt8::Container& vec_res = c_res->get_data();
608
599
        vec_res.resize(c0->size());
609
610
599
        if (c0_string && c1_string) {
611
0
            StringImpl::string_vector_string_vector(
612
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
613
0
                    c1_string->get_offsets(), vec_res);
614
599
        } else if (c0_string && c1_const) {
615
599
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
616
599
                                               *c1_const_chars, c1_const_size, vec_res);
617
599
        } else if (c0_const && c1_string) {
618
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
619
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
620
0
                                               vec_res);
621
0
        } else {
622
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
623
0
                                        c0->get_name(), c1->get_name(), name);
624
0
        }
625
599
        block.replace_by_position(result, std::move(c_res));
626
599
        return Status::OK();
627
599
    }
628
629
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
630
138
                                         const IColumn* c1) const {
631
138
        bool c0_const = is_column_const(*c0);
632
138
        bool c1_const = is_column_const(*c1);
633
634
138
        DCHECK(!(c0_const && c1_const));
635
636
138
        auto c_res = ColumnUInt8::create();
637
138
        ColumnUInt8::Container& vec_res = c_res->get_data();
638
138
        vec_res.resize(c0->size());
639
640
138
        if (c0_const) {
641
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
642
138
        } else if (c1_const) {
643
129
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
644
129
        } else {
645
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
646
9
        }
647
648
138
        block.replace_by_position(result, std::move(c_res));
649
138
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
630
17
                                         const IColumn* c1) const {
631
17
        bool c0_const = is_column_const(*c0);
632
17
        bool c1_const = is_column_const(*c1);
633
634
17
        DCHECK(!(c0_const && c1_const));
635
636
17
        auto c_res = ColumnUInt8::create();
637
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
638
17
        vec_res.resize(c0->size());
639
640
17
        if (c0_const) {
641
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
642
17
        } else if (c1_const) {
643
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
644
13
        } else {
645
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
646
4
        }
647
648
17
        block.replace_by_position(result, std::move(c_res));
649
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
630
8
                                         const IColumn* c1) const {
631
8
        bool c0_const = is_column_const(*c0);
632
8
        bool c1_const = is_column_const(*c1);
633
634
8
        DCHECK(!(c0_const && c1_const));
635
636
8
        auto c_res = ColumnUInt8::create();
637
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
638
8
        vec_res.resize(c0->size());
639
640
8
        if (c0_const) {
641
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
642
8
        } else if (c1_const) {
643
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
644
8
        } else {
645
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
646
0
        }
647
648
8
        block.replace_by_position(result, std::move(c_res));
649
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
630
9
                                         const IColumn* c1) const {
631
9
        bool c0_const = is_column_const(*c0);
632
9
        bool c1_const = is_column_const(*c1);
633
634
9
        DCHECK(!(c0_const && c1_const));
635
636
9
        auto c_res = ColumnUInt8::create();
637
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
638
9
        vec_res.resize(c0->size());
639
640
9
        if (c0_const) {
641
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
642
9
        } else if (c1_const) {
643
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
644
8
        } else {
645
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
646
1
        }
647
648
9
        block.replace_by_position(result, std::move(c_res));
649
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
630
56
                                         const IColumn* c1) const {
631
56
        bool c0_const = is_column_const(*c0);
632
56
        bool c1_const = is_column_const(*c1);
633
634
56
        DCHECK(!(c0_const && c1_const));
635
636
56
        auto c_res = ColumnUInt8::create();
637
56
        ColumnUInt8::Container& vec_res = c_res->get_data();
638
56
        vec_res.resize(c0->size());
639
640
56
        if (c0_const) {
641
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
642
56
        } else if (c1_const) {
643
55
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
644
55
        } else {
645
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
646
1
        }
647
648
56
        block.replace_by_position(result, std::move(c_res));
649
56
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
630
11
                                         const IColumn* c1) const {
631
11
        bool c0_const = is_column_const(*c0);
632
11
        bool c1_const = is_column_const(*c1);
633
634
11
        DCHECK(!(c0_const && c1_const));
635
636
11
        auto c_res = ColumnUInt8::create();
637
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
638
11
        vec_res.resize(c0->size());
639
640
11
        if (c0_const) {
641
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
642
11
        } else if (c1_const) {
643
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
644
8
        } else {
645
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
646
3
        }
647
648
11
        block.replace_by_position(result, std::move(c_res));
649
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
630
37
                                         const IColumn* c1) const {
631
37
        bool c0_const = is_column_const(*c0);
632
37
        bool c1_const = is_column_const(*c1);
633
634
37
        DCHECK(!(c0_const && c1_const));
635
636
37
        auto c_res = ColumnUInt8::create();
637
37
        ColumnUInt8::Container& vec_res = c_res->get_data();
638
37
        vec_res.resize(c0->size());
639
640
37
        if (c0_const) {
641
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
642
37
        } else if (c1_const) {
643
37
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
644
37
        } else {
645
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
646
0
        }
647
648
37
        block.replace_by_position(result, std::move(c_res));
649
37
    }
650
651
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
652
138
                           const ColumnWithTypeAndName& c1) const {
653
138
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
654
138
        return Status::OK();
655
138
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
652
17
                           const ColumnWithTypeAndName& c1) const {
653
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
654
17
        return Status::OK();
655
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
652
8
                           const ColumnWithTypeAndName& c1) const {
653
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
654
8
        return Status::OK();
655
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
652
9
                           const ColumnWithTypeAndName& c1) const {
653
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
654
9
        return Status::OK();
655
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
652
56
                           const ColumnWithTypeAndName& c1) const {
653
56
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
654
56
        return Status::OK();
655
56
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
652
11
                           const ColumnWithTypeAndName& c1) const {
653
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
654
11
        return Status::OK();
655
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
652
37
                           const ColumnWithTypeAndName& c1) const {
653
37
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
654
37
        return Status::OK();
655
37
    }
656
657
public:
658
222
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
658
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
658
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
658
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
658
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
658
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
658
1
    String get_name() const override { return name; }
659
660
266k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
660
241k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
660
1.16k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
660
5.00k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
660
6.93k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
660
3.01k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
660
8.97k
    size_t get_number_of_arguments() const override { return 2; }
661
662
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
663
3.10k
                                                const VExprSPtrs& arguments) const override {
664
3.10k
        auto op = comparison_zonemap_detail::op_from_name(name);
665
3.10k
        DORIS_CHECK(op.has_value());
666
3.10k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
667
3.10k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
663
1.85k
                                                const VExprSPtrs& arguments) const override {
664
1.85k
        auto op = comparison_zonemap_detail::op_from_name(name);
665
1.85k
        DORIS_CHECK(op.has_value());
666
1.85k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
667
1.85k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
663
125
                                                const VExprSPtrs& arguments) const override {
664
125
        auto op = comparison_zonemap_detail::op_from_name(name);
665
125
        DORIS_CHECK(op.has_value());
666
125
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
667
125
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
663
275
                                                const VExprSPtrs& arguments) const override {
664
275
        auto op = comparison_zonemap_detail::op_from_name(name);
665
275
        DORIS_CHECK(op.has_value());
666
275
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
667
275
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
663
233
                                                const VExprSPtrs& arguments) const override {
664
233
        auto op = comparison_zonemap_detail::op_from_name(name);
665
233
        DORIS_CHECK(op.has_value());
666
233
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
667
233
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
663
275
                                                const VExprSPtrs& arguments) const override {
664
275
        auto op = comparison_zonemap_detail::op_from_name(name);
665
275
        DORIS_CHECK(op.has_value());
666
275
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
667
275
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
663
337
                                                const VExprSPtrs& arguments) const override {
664
337
        auto op = comparison_zonemap_detail::op_from_name(name);
665
337
        DORIS_CHECK(op.has_value());
666
337
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
667
337
    }
668
669
30.7k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
670
30.7k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
671
30.8k
               comparison_zonemap_detail::can_evaluate(arguments);
672
30.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
669
15.2k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
670
15.2k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
671
15.2k
               comparison_zonemap_detail::can_evaluate(arguments);
672
15.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
669
1.43k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
670
1.43k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
671
1.43k
               comparison_zonemap_detail::can_evaluate(arguments);
672
1.43k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
669
6.01k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
670
6.01k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
671
6.07k
               comparison_zonemap_detail::can_evaluate(arguments);
672
6.01k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
669
3.21k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
670
3.21k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
671
3.22k
               comparison_zonemap_detail::can_evaluate(arguments);
672
3.21k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
669
3.25k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
670
3.25k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
671
3.26k
               comparison_zonemap_detail::can_evaluate(arguments);
672
3.25k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
669
1.53k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
670
1.53k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
671
1.54k
               comparison_zonemap_detail::can_evaluate(arguments);
672
1.53k
    }
673
674
    ZoneMapFilterResult evaluate_dictionary_filter(const DictionaryEvalContext& ctx,
675
14
                                                   const VExprSPtrs& arguments) const override {
676
14
        auto op = comparison_zonemap_detail::op_from_name(name);
677
14
        DORIS_CHECK(op.has_value());
678
14
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
679
14
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
675
4
                                                   const VExprSPtrs& arguments) const override {
676
4
        auto op = comparison_zonemap_detail::op_from_name(name);
677
4
        DORIS_CHECK(op.has_value());
678
4
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
679
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
675
3
                                                   const VExprSPtrs& arguments) const override {
676
3
        auto op = comparison_zonemap_detail::op_from_name(name);
677
3
        DORIS_CHECK(op.has_value());
678
3
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
679
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
675
7
                                                   const VExprSPtrs& arguments) const override {
676
7
        auto op = comparison_zonemap_detail::op_from_name(name);
677
7
        DORIS_CHECK(op.has_value());
678
7
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
679
7
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
680
681
142
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
682
142
        auto op = comparison_zonemap_detail::op_from_name(name);
683
142
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
684
142
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
681
25
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
682
25
        auto op = comparison_zonemap_detail::op_from_name(name);
683
25
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
684
25
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
681
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
682
1
        auto op = comparison_zonemap_detail::op_from_name(name);
683
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
684
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
681
91
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
682
91
        auto op = comparison_zonemap_detail::op_from_name(name);
683
91
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
684
91
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
681
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
682
1
        auto op = comparison_zonemap_detail::op_from_name(name);
683
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
684
1
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
681
23
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
682
23
        auto op = comparison_zonemap_detail::op_from_name(name);
683
23
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
684
23
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
681
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
682
1
        auto op = comparison_zonemap_detail::op_from_name(name);
683
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
684
1
    }
685
686
    ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
687
19
                                              const VExprSPtrs& arguments) const override {
688
19
        auto op = comparison_zonemap_detail::op_from_name(name);
689
19
        DORIS_CHECK(op.has_value());
690
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
691
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
687
19
                                              const VExprSPtrs& arguments) const override {
688
19
        auto op = comparison_zonemap_detail::op_from_name(name);
689
19
        DORIS_CHECK(op.has_value());
690
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
691
19
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
692
693
61
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
694
61
        auto op = comparison_zonemap_detail::op_from_name(name);
695
61
        return op == comparison_zonemap_detail::Op::EQ &&
696
61
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
697
61
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
693
27
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
694
27
        auto op = comparison_zonemap_detail::op_from_name(name);
695
27
        return op == comparison_zonemap_detail::Op::EQ &&
696
27
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
697
27
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
693
1
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
694
1
        auto op = comparison_zonemap_detail::op_from_name(name);
695
1
        return op == comparison_zonemap_detail::Op::EQ &&
696
1
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
697
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
693
27
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
694
27
        auto op = comparison_zonemap_detail::op_from_name(name);
695
27
        return op == comparison_zonemap_detail::Op::EQ &&
696
27
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
697
27
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
693
6
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
694
6
        auto op = comparison_zonemap_detail::op_from_name(name);
695
6
        return op == comparison_zonemap_detail::Op::EQ &&
696
6
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
697
6
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
698
699
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
700
266k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
701
266k
        return std::make_shared<DataTypeUInt8>();
702
266k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
700
241k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
701
241k
        return std::make_shared<DataTypeUInt8>();
702
241k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
700
1.15k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
701
1.15k
        return std::make_shared<DataTypeUInt8>();
702
1.15k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
700
5.00k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
701
5.00k
        return std::make_shared<DataTypeUInt8>();
702
5.00k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
700
6.95k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
701
6.95k
        return std::make_shared<DataTypeUInt8>();
702
6.95k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
700
3.01k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
701
3.01k
        return std::make_shared<DataTypeUInt8>();
702
3.01k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
700
9.00k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
701
9.00k
        return std::make_shared<DataTypeUInt8>();
702
9.00k
    }
703
704
    Status evaluate_inverted_index(
705
            const ColumnsWithTypeAndName& arguments,
706
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
707
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
708
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
709
691
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
710
691
        DCHECK(arguments.size() == 1);
711
691
        DCHECK(data_type_with_names.size() == 1);
712
691
        DCHECK(iterators.size() == 1);
713
691
        auto* iter = iterators[0];
714
691
        auto data_type_with_name = data_type_with_names[0];
715
691
        if (iter == nullptr) {
716
0
            return Status::OK();
717
0
        }
718
691
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
719
11
            return Status::OK();
720
11
        }
721
680
        segment_v2::InvertedIndexQueryType query_type;
722
680
        std::string_view name_view(name);
723
680
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
724
607
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
725
607
        } else if (name_view == NameLess::name) {
726
31
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
727
42
        } else if (name_view == NameLessOrEquals::name) {
728
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
729
42
        } else if (name_view == NameGreater::name) {
730
35
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
731
35
        } else if (name_view == NameGreaterOrEquals::name) {
732
8
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
733
18.4E
        } else {
734
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
735
18.4E
        }
736
737
681
        if (segment_v2::is_range_query(query_type) &&
738
681
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
739
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
740
1
            return Status::OK();
741
1
        }
742
680
        Field param_value;
743
680
        arguments[0].column->get(0, param_value);
744
680
        if (param_value.is_null()) {
745
2
            return Status::OK();
746
2
        }
747
678
        segment_v2::InvertedIndexParam param;
748
678
        param.column_name = data_type_with_name.first;
749
678
        param.column_type = data_type_with_name.second;
750
678
        param.query_value = param_value;
751
678
        param.query_type = query_type;
752
678
        param.num_rows = num_rows;
753
678
        param.roaring = std::make_shared<roaring::Roaring>();
754
678
        param.analyzer_ctx = analyzer_ctx;
755
678
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
756
648
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
757
648
        if (iter->has_null()) {
758
647
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
759
647
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
760
647
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
761
647
        }
762
648
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
763
648
        bitmap_result = result;
764
648
        bitmap_result.mask_out_null();
765
766
648
        if (name_view == NameNotEquals::name) {
767
21
            roaring::Roaring full_result;
768
21
            full_result.addRange(0, num_rows);
769
21
            bitmap_result.op_not(&full_result);
770
21
        }
771
772
648
        return Status::OK();
773
648
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
709
596
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
710
596
        DCHECK(arguments.size() == 1);
711
596
        DCHECK(data_type_with_names.size() == 1);
712
596
        DCHECK(iterators.size() == 1);
713
596
        auto* iter = iterators[0];
714
596
        auto data_type_with_name = data_type_with_names[0];
715
596
        if (iter == nullptr) {
716
0
            return Status::OK();
717
0
        }
718
596
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
719
11
            return Status::OK();
720
11
        }
721
585
        segment_v2::InvertedIndexQueryType query_type;
722
585
        std::string_view name_view(name);
723
586
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
724
586
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
725
18.4E
        } else if (name_view == NameLess::name) {
726
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
727
18.4E
        } else if (name_view == NameLessOrEquals::name) {
728
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
729
18.4E
        } else if (name_view == NameGreater::name) {
730
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
731
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
732
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
733
18.4E
        } else {
734
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
735
18.4E
        }
736
737
586
        if (segment_v2::is_range_query(query_type) &&
738
586
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
739
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
740
0
            return Status::OK();
741
0
        }
742
586
        Field param_value;
743
586
        arguments[0].column->get(0, param_value);
744
586
        if (param_value.is_null()) {
745
2
            return Status::OK();
746
2
        }
747
584
        segment_v2::InvertedIndexParam param;
748
584
        param.column_name = data_type_with_name.first;
749
584
        param.column_type = data_type_with_name.second;
750
584
        param.query_value = param_value;
751
584
        param.query_type = query_type;
752
584
        param.num_rows = num_rows;
753
584
        param.roaring = std::make_shared<roaring::Roaring>();
754
584
        param.analyzer_ctx = analyzer_ctx;
755
584
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
756
568
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
757
568
        if (iter->has_null()) {
758
568
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
759
568
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
760
568
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
761
568
        }
762
568
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
763
568
        bitmap_result = result;
764
568
        bitmap_result.mask_out_null();
765
766
568
        if (name_view == NameNotEquals::name) {
767
0
            roaring::Roaring full_result;
768
0
            full_result.addRange(0, num_rows);
769
0
            bitmap_result.op_not(&full_result);
770
0
        }
771
772
568
        return Status::OK();
773
568
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
709
21
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
710
21
        DCHECK(arguments.size() == 1);
711
21
        DCHECK(data_type_with_names.size() == 1);
712
21
        DCHECK(iterators.size() == 1);
713
21
        auto* iter = iterators[0];
714
21
        auto data_type_with_name = data_type_with_names[0];
715
21
        if (iter == nullptr) {
716
0
            return Status::OK();
717
0
        }
718
21
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
719
0
            return Status::OK();
720
0
        }
721
21
        segment_v2::InvertedIndexQueryType query_type;
722
21
        std::string_view name_view(name);
723
21
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
724
21
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
725
21
        } else if (name_view == NameLess::name) {
726
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
727
0
        } else if (name_view == NameLessOrEquals::name) {
728
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
729
0
        } else if (name_view == NameGreater::name) {
730
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
731
0
        } else if (name_view == NameGreaterOrEquals::name) {
732
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
733
0
        } else {
734
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
735
0
        }
736
737
21
        if (segment_v2::is_range_query(query_type) &&
738
21
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
739
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
740
0
            return Status::OK();
741
0
        }
742
21
        Field param_value;
743
21
        arguments[0].column->get(0, param_value);
744
21
        if (param_value.is_null()) {
745
0
            return Status::OK();
746
0
        }
747
21
        segment_v2::InvertedIndexParam param;
748
21
        param.column_name = data_type_with_name.first;
749
21
        param.column_type = data_type_with_name.second;
750
21
        param.query_value = param_value;
751
21
        param.query_type = query_type;
752
21
        param.num_rows = num_rows;
753
21
        param.roaring = std::make_shared<roaring::Roaring>();
754
21
        param.analyzer_ctx = analyzer_ctx;
755
21
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
756
21
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
757
21
        if (iter->has_null()) {
758
20
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
759
20
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
760
20
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
761
20
        }
762
21
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
763
21
        bitmap_result = result;
764
21
        bitmap_result.mask_out_null();
765
766
21
        if (name_view == NameNotEquals::name) {
767
21
            roaring::Roaring full_result;
768
21
            full_result.addRange(0, num_rows);
769
21
            bitmap_result.op_not(&full_result);
770
21
        }
771
772
21
        return Status::OK();
773
21
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
709
35
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
710
35
        DCHECK(arguments.size() == 1);
711
35
        DCHECK(data_type_with_names.size() == 1);
712
35
        DCHECK(iterators.size() == 1);
713
35
        auto* iter = iterators[0];
714
35
        auto data_type_with_name = data_type_with_names[0];
715
35
        if (iter == nullptr) {
716
0
            return Status::OK();
717
0
        }
718
35
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
719
0
            return Status::OK();
720
0
        }
721
35
        segment_v2::InvertedIndexQueryType query_type;
722
35
        std::string_view name_view(name);
723
35
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
724
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
725
35
        } else if (name_view == NameLess::name) {
726
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
727
35
        } else if (name_view == NameLessOrEquals::name) {
728
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
729
35
        } else if (name_view == NameGreater::name) {
730
35
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
731
35
        } else if (name_view == NameGreaterOrEquals::name) {
732
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
733
0
        } else {
734
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
735
0
        }
736
737
35
        if (segment_v2::is_range_query(query_type) &&
738
35
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
739
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
740
1
            return Status::OK();
741
1
        }
742
34
        Field param_value;
743
34
        arguments[0].column->get(0, param_value);
744
34
        if (param_value.is_null()) {
745
0
            return Status::OK();
746
0
        }
747
34
        segment_v2::InvertedIndexParam param;
748
34
        param.column_name = data_type_with_name.first;
749
34
        param.column_type = data_type_with_name.second;
750
34
        param.query_value = param_value;
751
34
        param.query_type = query_type;
752
34
        param.num_rows = num_rows;
753
34
        param.roaring = std::make_shared<roaring::Roaring>();
754
34
        param.analyzer_ctx = analyzer_ctx;
755
34
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
756
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
757
34
        if (iter->has_null()) {
758
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
759
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
760
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
761
34
        }
762
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
763
34
        bitmap_result = result;
764
34
        bitmap_result.mask_out_null();
765
766
34
        if (name_view == NameNotEquals::name) {
767
0
            roaring::Roaring full_result;
768
0
            full_result.addRange(0, num_rows);
769
0
            bitmap_result.op_not(&full_result);
770
0
        }
771
772
34
        return Status::OK();
773
34
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
709
8
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
710
8
        DCHECK(arguments.size() == 1);
711
8
        DCHECK(data_type_with_names.size() == 1);
712
8
        DCHECK(iterators.size() == 1);
713
8
        auto* iter = iterators[0];
714
8
        auto data_type_with_name = data_type_with_names[0];
715
8
        if (iter == nullptr) {
716
0
            return Status::OK();
717
0
        }
718
8
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
719
0
            return Status::OK();
720
0
        }
721
8
        segment_v2::InvertedIndexQueryType query_type;
722
8
        std::string_view name_view(name);
723
8
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
724
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
725
8
        } else if (name_view == NameLess::name) {
726
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
727
8
        } else if (name_view == NameLessOrEquals::name) {
728
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
729
8
        } else if (name_view == NameGreater::name) {
730
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
731
8
        } else if (name_view == NameGreaterOrEquals::name) {
732
8
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
733
8
        } else {
734
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
735
0
        }
736
737
8
        if (segment_v2::is_range_query(query_type) &&
738
8
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
739
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
740
0
            return Status::OK();
741
0
        }
742
8
        Field param_value;
743
8
        arguments[0].column->get(0, param_value);
744
8
        if (param_value.is_null()) {
745
0
            return Status::OK();
746
0
        }
747
8
        segment_v2::InvertedIndexParam param;
748
8
        param.column_name = data_type_with_name.first;
749
8
        param.column_type = data_type_with_name.second;
750
8
        param.query_value = param_value;
751
8
        param.query_type = query_type;
752
8
        param.num_rows = num_rows;
753
8
        param.roaring = std::make_shared<roaring::Roaring>();
754
8
        param.analyzer_ctx = analyzer_ctx;
755
8
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
756
4
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
757
4
        if (iter->has_null()) {
758
4
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
759
4
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
760
4
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
761
4
        }
762
4
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
763
4
        bitmap_result = result;
764
4
        bitmap_result.mask_out_null();
765
766
4
        if (name_view == NameNotEquals::name) {
767
0
            roaring::Roaring full_result;
768
0
            full_result.addRange(0, num_rows);
769
0
            bitmap_result.op_not(&full_result);
770
0
        }
771
772
4
        return Status::OK();
773
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
709
31
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
710
31
        DCHECK(arguments.size() == 1);
711
31
        DCHECK(data_type_with_names.size() == 1);
712
31
        DCHECK(iterators.size() == 1);
713
31
        auto* iter = iterators[0];
714
31
        auto data_type_with_name = data_type_with_names[0];
715
31
        if (iter == nullptr) {
716
0
            return Status::OK();
717
0
        }
718
31
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
719
0
            return Status::OK();
720
0
        }
721
31
        segment_v2::InvertedIndexQueryType query_type;
722
31
        std::string_view name_view(name);
723
31
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
724
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
725
31
        } else if (name_view == NameLess::name) {
726
31
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
727
31
        } else if (name_view == NameLessOrEquals::name) {
728
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
729
0
        } else if (name_view == NameGreater::name) {
730
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
731
0
        } else if (name_view == NameGreaterOrEquals::name) {
732
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
733
0
        } else {
734
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
735
0
        }
736
737
31
        if (segment_v2::is_range_query(query_type) &&
738
31
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
739
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
740
0
            return Status::OK();
741
0
        }
742
31
        Field param_value;
743
31
        arguments[0].column->get(0, param_value);
744
31
        if (param_value.is_null()) {
745
0
            return Status::OK();
746
0
        }
747
31
        segment_v2::InvertedIndexParam param;
748
31
        param.column_name = data_type_with_name.first;
749
31
        param.column_type = data_type_with_name.second;
750
31
        param.query_value = param_value;
751
31
        param.query_type = query_type;
752
31
        param.num_rows = num_rows;
753
31
        param.roaring = std::make_shared<roaring::Roaring>();
754
31
        param.analyzer_ctx = analyzer_ctx;
755
31
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
756
21
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
757
21
        if (iter->has_null()) {
758
21
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
759
21
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
760
21
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
761
21
        }
762
21
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
763
21
        bitmap_result = result;
764
21
        bitmap_result.mask_out_null();
765
766
21
        if (name_view == NameNotEquals::name) {
767
0
            roaring::Roaring full_result;
768
0
            full_result.addRange(0, num_rows);
769
0
            bitmap_result.op_not(&full_result);
770
0
        }
771
772
21
        return Status::OK();
773
21
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
774
775
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
776
123k
                        uint32_t result, size_t input_rows_count) const override {
777
123k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
778
123k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
779
780
123k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
781
123k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
782
123k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
783
123k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
784
785
123k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
786
123k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
787
788
        /// The case when arguments are the same (tautological comparison). Return constant.
789
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
790
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
791
123k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
792
123k
            col_left_untyped == col_right_untyped) {
793
            /// Always true: =, <=, >=
794
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
795
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
796
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
797
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
798
0
                block.get_by_position(result).column =
799
0
                        DataTypeUInt8()
800
0
                                .create_column_const(input_rows_count,
801
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
802
0
                                ->convert_to_full_column_if_const();
803
0
                return Status::OK();
804
0
            } else {
805
0
                block.get_by_position(result).column =
806
0
                        DataTypeUInt8()
807
0
                                .create_column_const(input_rows_count,
808
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
809
0
                                ->convert_to_full_column_if_const();
810
0
                return Status::OK();
811
0
            }
812
0
        }
813
814
230k
        auto can_compare = [](PrimitiveType t) -> bool {
815
230k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
230k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
814
36.9k
        auto can_compare = [](PrimitiveType t) -> bool {
815
36.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
36.9k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
814
5.29k
        auto can_compare = [](PrimitiveType t) -> bool {
815
5.29k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
5.29k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
814
149k
        auto can_compare = [](PrimitiveType t) -> bool {
815
149k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
149k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
814
5.19k
        auto can_compare = [](PrimitiveType t) -> bool {
815
5.19k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
5.19k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
814
16.5k
        auto can_compare = [](PrimitiveType t) -> bool {
815
16.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
16.5k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
814
17.1k
        auto can_compare = [](PrimitiveType t) -> bool {
815
17.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
17.1k
        };
817
818
123k
        if (can_compare(left_type->get_primitive_type()) &&
819
123k
            can_compare(right_type->get_primitive_type())) {
820
            // check left type equals right type TODO: remove this after FE is aware of scales difference
821
107k
            if (!left_type->equals_ignore_precision(*right_type)) {
822
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
823
0
                                            get_name(), left_type->get_name(),
824
0
                                            right_type->get_name());
825
0
            }
826
107k
        }
827
828
123k
        auto compare_type = left_type->get_primitive_type();
829
123k
        switch (compare_type) {
830
254
        case TYPE_BOOLEAN:
831
254
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
832
5.30k
        case TYPE_DATEV2:
833
5.30k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
834
853
        case TYPE_DATETIMEV2:
835
853
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
836
7
        case TYPE_TIMESTAMPTZ:
837
7
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
838
8.56k
        case TYPE_TINYINT:
839
8.56k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
840
2.41k
        case TYPE_SMALLINT:
841
2.41k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
842
79.7k
        case TYPE_INT:
843
79.7k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
844
6.85k
        case TYPE_BIGINT:
845
6.85k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
846
664
        case TYPE_LARGEINT:
847
664
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
848
35
        case TYPE_IPV4:
849
35
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
850
35
        case TYPE_IPV6:
851
35
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
852
556
        case TYPE_FLOAT:
853
556
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
854
1.94k
        case TYPE_DOUBLE:
855
1.94k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
856
4
        case TYPE_TIMEV2:
857
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
858
0
        case TYPE_DECIMALV2:
859
324
        case TYPE_DECIMAL32:
860
1.01k
        case TYPE_DECIMAL64:
861
3.01k
        case TYPE_DECIMAL128I:
862
3.11k
        case TYPE_DECIMAL256:
863
3.11k
            return execute_decimal(block, result, col_with_type_and_name_left,
864
3.11k
                                   col_with_type_and_name_right);
865
1.31k
        case TYPE_CHAR:
866
6.87k
        case TYPE_VARCHAR:
867
13.0k
        case TYPE_STRING:
868
13.0k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
869
138
        default:
870
138
            return execute_generic(block, result, col_with_type_and_name_left,
871
138
                                   col_with_type_and_name_right);
872
123k
        }
873
0
        return Status::OK();
874
123k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
776
24.6k
                        uint32_t result, size_t input_rows_count) const override {
777
24.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
778
24.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
779
780
24.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
781
24.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
782
24.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
783
24.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
784
785
24.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
786
24.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
787
788
        /// The case when arguments are the same (tautological comparison). Return constant.
789
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
790
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
791
24.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
792
24.6k
            col_left_untyped == col_right_untyped) {
793
            /// Always true: =, <=, >=
794
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
795
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
796
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
797
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
798
0
                block.get_by_position(result).column =
799
0
                        DataTypeUInt8()
800
0
                                .create_column_const(input_rows_count,
801
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
802
0
                                ->convert_to_full_column_if_const();
803
0
                return Status::OK();
804
            } else {
805
                block.get_by_position(result).column =
806
                        DataTypeUInt8()
807
                                .create_column_const(input_rows_count,
808
                                                     Field::create_field<TYPE_BOOLEAN>(0))
809
                                ->convert_to_full_column_if_const();
810
                return Status::OK();
811
            }
812
0
        }
813
814
0
        auto can_compare = [](PrimitiveType t) -> bool {
815
24.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
24.6k
        };
817
818
24.6k
        if (can_compare(left_type->get_primitive_type()) &&
819
24.6k
            can_compare(right_type->get_primitive_type())) {
820
            // check left type equals right type TODO: remove this after FE is aware of scales difference
821
12.2k
            if (!left_type->equals_ignore_precision(*right_type)) {
822
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
823
0
                                            get_name(), left_type->get_name(),
824
0
                                            right_type->get_name());
825
0
            }
826
12.2k
        }
827
828
24.6k
        auto compare_type = left_type->get_primitive_type();
829
24.6k
        switch (compare_type) {
830
85
        case TYPE_BOOLEAN:
831
85
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
832
666
        case TYPE_DATEV2:
833
666
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
834
360
        case TYPE_DATETIMEV2:
835
360
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
836
2
        case TYPE_TIMESTAMPTZ:
837
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
838
4.93k
        case TYPE_TINYINT:
839
4.93k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
840
363
        case TYPE_SMALLINT:
841
363
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
842
2.03k
        case TYPE_INT:
843
2.03k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
844
2.90k
        case TYPE_BIGINT:
845
2.90k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
846
100
        case TYPE_LARGEINT:
847
100
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
848
12
        case TYPE_IPV4:
849
12
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
850
17
        case TYPE_IPV6:
851
17
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
852
91
        case TYPE_FLOAT:
853
91
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
854
720
        case TYPE_DOUBLE:
855
720
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
856
4
        case TYPE_TIMEV2:
857
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
858
0
        case TYPE_DECIMALV2:
859
132
        case TYPE_DECIMAL32:
860
284
        case TYPE_DECIMAL64:
861
1.17k
        case TYPE_DECIMAL128I:
862
1.20k
        case TYPE_DECIMAL256:
863
1.20k
            return execute_decimal(block, result, col_with_type_and_name_left,
864
1.20k
                                   col_with_type_and_name_right);
865
1.05k
        case TYPE_CHAR:
866
5.34k
        case TYPE_VARCHAR:
867
11.1k
        case TYPE_STRING:
868
11.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
869
17
        default:
870
17
            return execute_generic(block, result, col_with_type_and_name_left,
871
17
                                   col_with_type_and_name_right);
872
24.6k
        }
873
0
        return Status::OK();
874
24.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
776
2.77k
                        uint32_t result, size_t input_rows_count) const override {
777
2.77k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
778
2.77k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
779
780
2.77k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
781
2.77k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
782
2.77k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
783
2.77k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
784
785
2.77k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
786
2.77k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
787
788
        /// The case when arguments are the same (tautological comparison). Return constant.
789
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
790
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
791
2.77k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
792
2.77k
            col_left_untyped == col_right_untyped) {
793
            /// Always true: =, <=, >=
794
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
795
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
796
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
797
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
798
                block.get_by_position(result).column =
799
                        DataTypeUInt8()
800
                                .create_column_const(input_rows_count,
801
                                                     Field::create_field<TYPE_BOOLEAN>(1))
802
                                ->convert_to_full_column_if_const();
803
                return Status::OK();
804
0
            } else {
805
0
                block.get_by_position(result).column =
806
0
                        DataTypeUInt8()
807
0
                                .create_column_const(input_rows_count,
808
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
809
0
                                ->convert_to_full_column_if_const();
810
0
                return Status::OK();
811
0
            }
812
0
        }
813
814
0
        auto can_compare = [](PrimitiveType t) -> bool {
815
2.77k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
2.77k
        };
817
818
2.77k
        if (can_compare(left_type->get_primitive_type()) &&
819
2.77k
            can_compare(right_type->get_primitive_type())) {
820
            // check left type equals right type TODO: remove this after FE is aware of scales difference
821
2.51k
            if (!left_type->equals_ignore_precision(*right_type)) {
822
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
823
0
                                            get_name(), left_type->get_name(),
824
0
                                            right_type->get_name());
825
0
            }
826
2.51k
        }
827
828
2.77k
        auto compare_type = left_type->get_primitive_type();
829
2.77k
        switch (compare_type) {
830
0
        case TYPE_BOOLEAN:
831
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
832
68
        case TYPE_DATEV2:
833
68
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
834
0
        case TYPE_DATETIMEV2:
835
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
836
0
        case TYPE_TIMESTAMPTZ:
837
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
838
84
        case TYPE_TINYINT:
839
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
840
0
        case TYPE_SMALLINT:
841
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
842
1.45k
        case TYPE_INT:
843
1.45k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
844
808
        case TYPE_BIGINT:
845
808
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
846
0
        case TYPE_LARGEINT:
847
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
848
0
        case TYPE_IPV4:
849
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
850
0
        case TYPE_IPV6:
851
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
852
48
        case TYPE_FLOAT:
853
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
854
60
        case TYPE_DOUBLE:
855
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
856
0
        case TYPE_TIMEV2:
857
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
858
0
        case TYPE_DECIMALV2:
859
0
        case TYPE_DECIMAL32:
860
69
        case TYPE_DECIMAL64:
861
97
        case TYPE_DECIMAL128I:
862
127
        case TYPE_DECIMAL256:
863
127
            return execute_decimal(block, result, col_with_type_and_name_left,
864
127
                                   col_with_type_and_name_right);
865
1
        case TYPE_CHAR:
866
26
        case TYPE_VARCHAR:
867
124
        case TYPE_STRING:
868
124
            return execute_string(block, result, col_left_untyped, col_right_untyped);
869
8
        default:
870
8
            return execute_generic(block, result, col_with_type_and_name_left,
871
8
                                   col_with_type_and_name_right);
872
2.77k
        }
873
0
        return Status::OK();
874
2.77k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
776
75.3k
                        uint32_t result, size_t input_rows_count) const override {
777
75.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
778
75.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
779
780
75.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
781
75.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
782
75.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
783
75.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
784
785
75.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
786
75.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
787
788
        /// The case when arguments are the same (tautological comparison). Return constant.
789
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
790
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
791
75.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
792
75.3k
            col_left_untyped == col_right_untyped) {
793
            /// Always true: =, <=, >=
794
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
795
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
796
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
797
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
798
                block.get_by_position(result).column =
799
                        DataTypeUInt8()
800
                                .create_column_const(input_rows_count,
801
                                                     Field::create_field<TYPE_BOOLEAN>(1))
802
                                ->convert_to_full_column_if_const();
803
                return Status::OK();
804
0
            } else {
805
0
                block.get_by_position(result).column =
806
0
                        DataTypeUInt8()
807
0
                                .create_column_const(input_rows_count,
808
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
809
0
                                ->convert_to_full_column_if_const();
810
0
                return Status::OK();
811
0
            }
812
0
        }
813
814
0
        auto can_compare = [](PrimitiveType t) -> bool {
815
75.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
75.3k
        };
817
818
75.3k
        if (can_compare(left_type->get_primitive_type()) &&
819
75.3k
            can_compare(right_type->get_primitive_type())) {
820
            // check left type equals right type TODO: remove this after FE is aware of scales difference
821
74.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
822
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
823
0
                                            get_name(), left_type->get_name(),
824
0
                                            right_type->get_name());
825
0
            }
826
74.4k
        }
827
828
75.3k
        auto compare_type = left_type->get_primitive_type();
829
75.3k
        switch (compare_type) {
830
0
        case TYPE_BOOLEAN:
831
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
832
1.41k
        case TYPE_DATEV2:
833
1.41k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
834
2
        case TYPE_DATETIMEV2:
835
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
836
1
        case TYPE_TIMESTAMPTZ:
837
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
838
1.33k
        case TYPE_TINYINT:
839
1.33k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
840
1.77k
        case TYPE_SMALLINT:
841
1.77k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
842
67.1k
        case TYPE_INT:
843
67.1k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
844
1.78k
        case TYPE_BIGINT:
845
1.78k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
846
221
        case TYPE_LARGEINT:
847
221
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
848
4
        case TYPE_IPV4:
849
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
850
1
        case TYPE_IPV6:
851
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
852
220
        case TYPE_FLOAT:
853
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
854
545
        case TYPE_DOUBLE:
855
545
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
856
0
        case TYPE_TIMEV2:
857
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
858
0
        case TYPE_DECIMALV2:
859
8
        case TYPE_DECIMAL32:
860
74
        case TYPE_DECIMAL64:
861
745
        case TYPE_DECIMAL128I:
862
747
        case TYPE_DECIMAL256:
863
747
            return execute_decimal(block, result, col_with_type_and_name_left,
864
747
                                   col_with_type_and_name_right);
865
4
        case TYPE_CHAR:
866
22
        case TYPE_VARCHAR:
867
108
        case TYPE_STRING:
868
108
            return execute_string(block, result, col_left_untyped, col_right_untyped);
869
9
        default:
870
9
            return execute_generic(block, result, col_with_type_and_name_left,
871
9
                                   col_with_type_and_name_right);
872
75.3k
        }
873
0
        return Status::OK();
874
75.3k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
776
2.99k
                        uint32_t result, size_t input_rows_count) const override {
777
2.99k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
778
2.99k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
779
780
2.99k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
781
2.99k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
782
2.99k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
783
2.99k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
784
785
2.99k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
786
2.99k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
787
788
        /// The case when arguments are the same (tautological comparison). Return constant.
789
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
790
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
791
2.99k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
792
2.99k
            col_left_untyped == col_right_untyped) {
793
            /// Always true: =, <=, >=
794
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
795
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
796
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
797
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
798
0
                block.get_by_position(result).column =
799
0
                        DataTypeUInt8()
800
0
                                .create_column_const(input_rows_count,
801
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
802
0
                                ->convert_to_full_column_if_const();
803
0
                return Status::OK();
804
            } else {
805
                block.get_by_position(result).column =
806
                        DataTypeUInt8()
807
                                .create_column_const(input_rows_count,
808
                                                     Field::create_field<TYPE_BOOLEAN>(0))
809
                                ->convert_to_full_column_if_const();
810
                return Status::OK();
811
            }
812
0
        }
813
814
0
        auto can_compare = [](PrimitiveType t) -> bool {
815
2.99k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
2.99k
        };
817
818
2.99k
        if (can_compare(left_type->get_primitive_type()) &&
819
2.99k
            can_compare(right_type->get_primitive_type())) {
820
            // check left type equals right type TODO: remove this after FE is aware of scales difference
821
2.19k
            if (!left_type->equals_ignore_precision(*right_type)) {
822
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
823
0
                                            get_name(), left_type->get_name(),
824
0
                                            right_type->get_name());
825
0
            }
826
2.19k
        }
827
828
2.99k
        auto compare_type = left_type->get_primitive_type();
829
2.99k
        switch (compare_type) {
830
36
        case TYPE_BOOLEAN:
831
36
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
832
450
        case TYPE_DATEV2:
833
450
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
834
112
        case TYPE_DATETIMEV2:
835
112
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
836
1
        case TYPE_TIMESTAMPTZ:
837
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
838
41
        case TYPE_TINYINT:
839
41
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
840
53
        case TYPE_SMALLINT:
841
53
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
842
1.05k
        case TYPE_INT:
843
1.05k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
844
206
        case TYPE_BIGINT:
845
206
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
846
20
        case TYPE_LARGEINT:
847
20
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
848
1
        case TYPE_IPV4:
849
1
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
850
1
        case TYPE_IPV6:
851
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
852
24
        case TYPE_FLOAT:
853
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
854
139
        case TYPE_DOUBLE:
855
139
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
856
0
        case TYPE_TIMEV2:
857
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
858
0
        case TYPE_DECIMALV2:
859
1
        case TYPE_DECIMAL32:
860
90
        case TYPE_DECIMAL64:
861
141
        case TYPE_DECIMAL128I:
862
158
        case TYPE_DECIMAL256:
863
158
            return execute_decimal(block, result, col_with_type_and_name_left,
864
158
                                   col_with_type_and_name_right);
865
21
        case TYPE_CHAR:
866
600
        case TYPE_VARCHAR:
867
644
        case TYPE_STRING:
868
644
            return execute_string(block, result, col_left_untyped, col_right_untyped);
869
56
        default:
870
56
            return execute_generic(block, result, col_with_type_and_name_left,
871
56
                                   col_with_type_and_name_right);
872
2.99k
        }
873
0
        return Status::OK();
874
2.99k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
776
8.86k
                        uint32_t result, size_t input_rows_count) const override {
777
8.86k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
778
8.86k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
779
780
8.86k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
781
8.86k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
782
8.86k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
783
8.86k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
784
785
8.86k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
786
8.86k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
787
788
        /// The case when arguments are the same (tautological comparison). Return constant.
789
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
790
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
791
8.86k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
792
8.86k
            col_left_untyped == col_right_untyped) {
793
            /// Always true: =, <=, >=
794
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
795
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
796
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
797
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
798
                block.get_by_position(result).column =
799
                        DataTypeUInt8()
800
                                .create_column_const(input_rows_count,
801
                                                     Field::create_field<TYPE_BOOLEAN>(1))
802
                                ->convert_to_full_column_if_const();
803
                return Status::OK();
804
0
            } else {
805
0
                block.get_by_position(result).column =
806
0
                        DataTypeUInt8()
807
0
                                .create_column_const(input_rows_count,
808
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
809
0
                                ->convert_to_full_column_if_const();
810
0
                return Status::OK();
811
0
            }
812
0
        }
813
814
0
        auto can_compare = [](PrimitiveType t) -> bool {
815
8.86k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
8.86k
        };
817
818
8.86k
        if (can_compare(left_type->get_primitive_type()) &&
819
8.86k
            can_compare(right_type->get_primitive_type())) {
820
            // check left type equals right type TODO: remove this after FE is aware of scales difference
821
7.65k
            if (!left_type->equals_ignore_precision(*right_type)) {
822
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
823
0
                                            get_name(), left_type->get_name(),
824
0
                                            right_type->get_name());
825
0
            }
826
7.65k
        }
827
828
8.86k
        auto compare_type = left_type->get_primitive_type();
829
8.86k
        switch (compare_type) {
830
91
        case TYPE_BOOLEAN:
831
91
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
832
2.12k
        case TYPE_DATEV2:
833
2.12k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
834
337
        case TYPE_DATETIMEV2:
835
337
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
836
2
        case TYPE_TIMESTAMPTZ:
837
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
838
2.11k
        case TYPE_TINYINT:
839
2.11k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
840
151
        case TYPE_SMALLINT:
841
151
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
842
1.19k
        case TYPE_INT:
843
1.19k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
844
811
        case TYPE_BIGINT:
845
811
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
846
289
        case TYPE_LARGEINT:
847
289
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
848
18
        case TYPE_IPV4:
849
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
850
16
        case TYPE_IPV6:
851
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
852
153
        case TYPE_FLOAT:
853
153
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
854
356
        case TYPE_DOUBLE:
855
356
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
856
0
        case TYPE_TIMEV2:
857
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
858
0
        case TYPE_DECIMALV2:
859
179
        case TYPE_DECIMAL32:
860
394
        case TYPE_DECIMAL64:
861
683
        case TYPE_DECIMAL128I:
862
684
        case TYPE_DECIMAL256:
863
684
            return execute_decimal(block, result, col_with_type_and_name_left,
864
684
                                   col_with_type_and_name_right);
865
188
        case TYPE_CHAR:
866
344
        case TYPE_VARCHAR:
867
510
        case TYPE_STRING:
868
510
            return execute_string(block, result, col_left_untyped, col_right_untyped);
869
11
        default:
870
11
            return execute_generic(block, result, col_with_type_and_name_left,
871
11
                                   col_with_type_and_name_right);
872
8.86k
        }
873
0
        return Status::OK();
874
8.86k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
776
8.99k
                        uint32_t result, size_t input_rows_count) const override {
777
8.99k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
778
8.99k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
779
780
8.99k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
781
8.99k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
782
8.99k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
783
8.99k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
784
785
8.99k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
786
8.99k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
787
788
        /// The case when arguments are the same (tautological comparison). Return constant.
789
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
790
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
791
8.99k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
792
8.99k
            col_left_untyped == col_right_untyped) {
793
            /// Always true: =, <=, >=
794
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
795
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
796
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
797
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
798
0
                block.get_by_position(result).column =
799
0
                        DataTypeUInt8()
800
0
                                .create_column_const(input_rows_count,
801
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
802
0
                                ->convert_to_full_column_if_const();
803
0
                return Status::OK();
804
            } else {
805
                block.get_by_position(result).column =
806
                        DataTypeUInt8()
807
                                .create_column_const(input_rows_count,
808
                                                     Field::create_field<TYPE_BOOLEAN>(0))
809
                                ->convert_to_full_column_if_const();
810
                return Status::OK();
811
            }
812
0
        }
813
814
0
        auto can_compare = [](PrimitiveType t) -> bool {
815
8.99k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
816
8.99k
        };
817
818
8.99k
        if (can_compare(left_type->get_primitive_type()) &&
819
8.99k
            can_compare(right_type->get_primitive_type())) {
820
            // check left type equals right type TODO: remove this after FE is aware of scales difference
821
8.20k
            if (!left_type->equals_ignore_precision(*right_type)) {
822
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
823
0
                                            get_name(), left_type->get_name(),
824
0
                                            right_type->get_name());
825
0
            }
826
8.20k
        }
827
828
8.99k
        auto compare_type = left_type->get_primitive_type();
829
8.99k
        switch (compare_type) {
830
42
        case TYPE_BOOLEAN:
831
42
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
832
578
        case TYPE_DATEV2:
833
578
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
834
42
        case TYPE_DATETIMEV2:
835
42
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
836
1
        case TYPE_TIMESTAMPTZ:
837
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
838
61
        case TYPE_TINYINT:
839
61
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
840
77
        case TYPE_SMALLINT:
841
77
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
842
6.83k
        case TYPE_INT:
843
6.83k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
844
345
        case TYPE_BIGINT:
845
345
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
846
34
        case TYPE_LARGEINT:
847
34
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
848
0
        case TYPE_IPV4:
849
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
850
0
        case TYPE_IPV6:
851
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
852
20
        case TYPE_FLOAT:
853
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
854
128
        case TYPE_DOUBLE:
855
128
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
856
0
        case TYPE_TIMEV2:
857
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
858
0
        case TYPE_DECIMALV2:
859
4
        case TYPE_DECIMAL32:
860
102
        case TYPE_DECIMAL64:
861
178
        case TYPE_DECIMAL128I:
862
190
        case TYPE_DECIMAL256:
863
190
            return execute_decimal(block, result, col_with_type_and_name_left,
864
190
                                   col_with_type_and_name_right);
865
39
        case TYPE_CHAR:
866
531
        case TYPE_VARCHAR:
867
599
        case TYPE_STRING:
868
599
            return execute_string(block, result, col_left_untyped, col_right_untyped);
869
37
        default:
870
37
            return execute_generic(block, result, col_with_type_and_name_left,
871
37
                                   col_with_type_and_name_right);
872
8.99k
        }
873
0
        return Status::OK();
874
8.99k
    }
875
};
876
877
} // namespace doris