Coverage Report

Created: 2026-07-02 17:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <compare>
24
#include <limits>
25
#include <optional>
26
#include <string_view>
27
#include <type_traits>
28
29
#include "common/check.h"
30
#include "common/logging.h"
31
#include "core/accurate_comparison.h"
32
#include "core/assert_cast.h"
33
#include "core/column/column_const.h"
34
#include "core/column/column_decimal.h"
35
#include "core/column/column_nullable.h"
36
#include "core/column/column_string.h"
37
#include "core/data_type/data_type_nullable.h"
38
#include "core/data_type/data_type_number.h"
39
#include "core/data_type/data_type_string.h"
40
#include "core/data_type/define_primitive_type.h"
41
#include "core/decimal_comparison.h"
42
#include "core/field.h"
43
#include "core/memcmp_small.h"
44
#include "core/value/vdatetime_value.h"
45
#include "exprs/expr_zonemap_filter.h"
46
#include "exprs/function/function.h"
47
#include "exprs/function/function_helpers.h"
48
#include "exprs/function/functions_logical.h"
49
#include "exprs/vexpr.h"
50
#include "storage/index/index_reader_helper.h"
51
52
namespace doris {
53
/** Comparison functions: ==, !=, <, >, <=, >=.
54
  * The comparison functions always return 0 or 1 (UInt8).
55
  *
56
  * You can compare the following types:
57
  * - numbers and decimals;
58
  * - strings and fixed strings;
59
  * - dates;
60
  * - datetimes;
61
  *   within each group, but not from different groups;
62
  * - tuples (lexicographic comparison).
63
  *
64
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
65
  */
66
67
template <typename A, typename B, typename Op>
68
struct NumComparisonImpl {
69
    /// If you don't specify NO_INLINE, the compiler will inline this function, but we don't need this as this function contains tight loop inside.
70
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
71
8.78k
                                        PaddedPODArray<UInt8>& c) {
72
8.78k
        size_t size = a.size();
73
8.78k
        const A* __restrict a_pos = a.data();
74
8.78k
        const B* __restrict b_pos = b.data();
75
8.78k
        UInt8* __restrict c_pos = c.data();
76
8.78k
        const A* __restrict a_end = a_pos + size;
77
78
5.50M
        while (a_pos < a_end) {
79
5.49M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
5.49M
            ++a_pos;
81
5.49M
            ++b_pos;
82
5.49M
            ++c_pos;
83
5.49M
        }
84
8.78k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
71
76
                                        PaddedPODArray<UInt8>& c) {
72
76
        size_t size = a.size();
73
76
        const A* __restrict a_pos = a.data();
74
76
        const B* __restrict b_pos = b.data();
75
76
        UInt8* __restrict c_pos = c.data();
76
76
        const A* __restrict a_end = a_pos + size;
77
78
152
        while (a_pos < a_end) {
79
76
            *c_pos = Op::apply(*a_pos, *b_pos);
80
76
            ++a_pos;
81
76
            ++b_pos;
82
76
            ++c_pos;
83
76
        }
84
76
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
245
                                        PaddedPODArray<UInt8>& c) {
72
245
        size_t size = a.size();
73
245
        const A* __restrict a_pos = a.data();
74
245
        const B* __restrict b_pos = b.data();
75
245
        UInt8* __restrict c_pos = c.data();
76
245
        const A* __restrict a_end = a_pos + size;
77
78
499
        while (a_pos < a_end) {
79
254
            *c_pos = Op::apply(*a_pos, *b_pos);
80
254
            ++a_pos;
81
254
            ++b_pos;
82
254
            ++c_pos;
83
254
        }
84
245
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
289
                                        PaddedPODArray<UInt8>& c) {
72
289
        size_t size = a.size();
73
289
        const A* __restrict a_pos = a.data();
74
289
        const B* __restrict b_pos = b.data();
75
289
        UInt8* __restrict c_pos = c.data();
76
289
        const A* __restrict a_end = a_pos + size;
77
78
596
        while (a_pos < a_end) {
79
307
            *c_pos = Op::apply(*a_pos, *b_pos);
80
307
            ++a_pos;
81
307
            ++b_pos;
82
307
            ++c_pos;
83
307
        }
84
289
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
4
                                        PaddedPODArray<UInt8>& c) {
72
4
        size_t size = a.size();
73
4
        const A* __restrict a_pos = a.data();
74
4
        const B* __restrict b_pos = b.data();
75
4
        UInt8* __restrict c_pos = c.data();
76
4
        const A* __restrict a_end = a_pos + size;
77
78
14
        while (a_pos < a_end) {
79
10
            *c_pos = Op::apply(*a_pos, *b_pos);
80
10
            ++a_pos;
81
10
            ++b_pos;
82
10
            ++c_pos;
83
10
        }
84
4
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
173
                                        PaddedPODArray<UInt8>& c) {
72
173
        size_t size = a.size();
73
173
        const A* __restrict a_pos = a.data();
74
173
        const B* __restrict b_pos = b.data();
75
173
        UInt8* __restrict c_pos = c.data();
76
173
        const A* __restrict a_end = a_pos + size;
77
78
488
        while (a_pos < a_end) {
79
315
            *c_pos = Op::apply(*a_pos, *b_pos);
80
315
            ++a_pos;
81
315
            ++b_pos;
82
315
            ++c_pos;
83
315
        }
84
173
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
77
                                        PaddedPODArray<UInt8>& c) {
72
77
        size_t size = a.size();
73
77
        const A* __restrict a_pos = a.data();
74
77
        const B* __restrict b_pos = b.data();
75
77
        UInt8* __restrict c_pos = c.data();
76
77
        const A* __restrict a_end = a_pos + size;
77
78
154
        while (a_pos < a_end) {
79
77
            *c_pos = Op::apply(*a_pos, *b_pos);
80
77
            ++a_pos;
81
77
            ++b_pos;
82
77
            ++c_pos;
83
77
        }
84
77
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
260
                                        PaddedPODArray<UInt8>& c) {
72
260
        size_t size = a.size();
73
260
        const A* __restrict a_pos = a.data();
74
260
        const B* __restrict b_pos = b.data();
75
260
        UInt8* __restrict c_pos = c.data();
76
260
        const A* __restrict a_end = a_pos + size;
77
78
1.74k
        while (a_pos < a_end) {
79
1.48k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.48k
            ++a_pos;
81
1.48k
            ++b_pos;
82
1.48k
            ++c_pos;
83
1.48k
        }
84
260
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
160
                                        PaddedPODArray<UInt8>& c) {
72
160
        size_t size = a.size();
73
160
        const A* __restrict a_pos = a.data();
74
160
        const B* __restrict b_pos = b.data();
75
160
        UInt8* __restrict c_pos = c.data();
76
160
        const A* __restrict a_end = a_pos + size;
77
78
1.48k
        while (a_pos < a_end) {
79
1.32k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.32k
            ++a_pos;
81
1.32k
            ++b_pos;
82
1.32k
            ++c_pos;
83
1.32k
        }
84
160
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
85
                                        PaddedPODArray<UInt8>& c) {
72
85
        size_t size = a.size();
73
85
        const A* __restrict a_pos = a.data();
74
85
        const B* __restrict b_pos = b.data();
75
85
        UInt8* __restrict c_pos = c.data();
76
85
        const A* __restrict a_end = a_pos + size;
77
78
170
        while (a_pos < a_end) {
79
85
            *c_pos = Op::apply(*a_pos, *b_pos);
80
85
            ++a_pos;
81
85
            ++b_pos;
82
85
            ++c_pos;
83
85
        }
84
85
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
16
                                        PaddedPODArray<UInt8>& c) {
72
16
        size_t size = a.size();
73
16
        const A* __restrict a_pos = a.data();
74
16
        const B* __restrict b_pos = b.data();
75
16
        UInt8* __restrict c_pos = c.data();
76
16
        const A* __restrict a_end = a_pos + size;
77
78
32
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
24
                                        PaddedPODArray<UInt8>& c) {
72
24
        size_t size = a.size();
73
24
        const A* __restrict a_pos = a.data();
74
24
        const B* __restrict b_pos = b.data();
75
24
        UInt8* __restrict c_pos = c.data();
76
24
        const A* __restrict a_end = a_pos + size;
77
78
48
        while (a_pos < a_end) {
79
24
            *c_pos = Op::apply(*a_pos, *b_pos);
80
24
            ++a_pos;
81
24
            ++b_pos;
82
24
            ++c_pos;
83
24
        }
84
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
111
                                        PaddedPODArray<UInt8>& c) {
72
111
        size_t size = a.size();
73
111
        const A* __restrict a_pos = a.data();
74
111
        const B* __restrict b_pos = b.data();
75
111
        UInt8* __restrict c_pos = c.data();
76
111
        const A* __restrict a_end = a_pos + size;
77
78
241
        while (a_pos < a_end) {
79
130
            *c_pos = Op::apply(*a_pos, *b_pos);
80
130
            ++a_pos;
81
130
            ++b_pos;
82
130
            ++c_pos;
83
130
        }
84
111
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
113
                                        PaddedPODArray<UInt8>& c) {
72
113
        size_t size = a.size();
73
113
        const A* __restrict a_pos = a.data();
74
113
        const B* __restrict b_pos = b.data();
75
113
        UInt8* __restrict c_pos = c.data();
76
113
        const A* __restrict a_end = a_pos + size;
77
78
247
        while (a_pos < a_end) {
79
134
            *c_pos = Op::apply(*a_pos, *b_pos);
80
134
            ++a_pos;
81
134
            ++b_pos;
82
134
            ++c_pos;
83
134
        }
84
113
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
4
                                        PaddedPODArray<UInt8>& c) {
72
4
        size_t size = a.size();
73
4
        const A* __restrict a_pos = a.data();
74
4
        const B* __restrict b_pos = b.data();
75
4
        UInt8* __restrict c_pos = c.data();
76
4
        const A* __restrict a_end = a_pos + size;
77
78
8
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
39
                                        PaddedPODArray<UInt8>& c) {
72
39
        size_t size = a.size();
73
39
        const A* __restrict a_pos = a.data();
74
39
        const B* __restrict b_pos = b.data();
75
39
        UInt8* __restrict c_pos = c.data();
76
39
        const A* __restrict a_end = a_pos + size;
77
78
108
        while (a_pos < a_end) {
79
69
            *c_pos = Op::apply(*a_pos, *b_pos);
80
69
            ++a_pos;
81
69
            ++b_pos;
82
69
            ++c_pos;
83
69
        }
84
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
56
                                        PaddedPODArray<UInt8>& c) {
72
56
        size_t size = a.size();
73
56
        const A* __restrict a_pos = a.data();
74
56
        const B* __restrict b_pos = b.data();
75
56
        UInt8* __restrict c_pos = c.data();
76
56
        const A* __restrict a_end = a_pos + size;
77
78
252
        while (a_pos < a_end) {
79
196
            *c_pos = Op::apply(*a_pos, *b_pos);
80
196
            ++a_pos;
81
196
            ++b_pos;
82
196
            ++c_pos;
83
196
        }
84
56
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1.15k
                                        PaddedPODArray<UInt8>& c) {
72
1.15k
        size_t size = a.size();
73
1.15k
        const A* __restrict a_pos = a.data();
74
1.15k
        const B* __restrict b_pos = b.data();
75
1.15k
        UInt8* __restrict c_pos = c.data();
76
1.15k
        const A* __restrict a_end = a_pos + size;
77
78
359k
        while (a_pos < a_end) {
79
358k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
358k
            ++a_pos;
81
358k
            ++b_pos;
82
358k
            ++c_pos;
83
358k
        }
84
1.15k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
377
                                        PaddedPODArray<UInt8>& c) {
72
377
        size_t size = a.size();
73
377
        const A* __restrict a_pos = a.data();
74
377
        const B* __restrict b_pos = b.data();
75
377
        UInt8* __restrict c_pos = c.data();
76
377
        const A* __restrict a_end = a_pos + size;
77
78
7.50k
        while (a_pos < a_end) {
79
7.12k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
7.12k
            ++a_pos;
81
7.12k
            ++b_pos;
82
7.12k
            ++c_pos;
83
7.12k
        }
84
377
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
1.22k
                                        PaddedPODArray<UInt8>& c) {
72
1.22k
        size_t size = a.size();
73
1.22k
        const A* __restrict a_pos = a.data();
74
1.22k
        const B* __restrict b_pos = b.data();
75
1.22k
        UInt8* __restrict c_pos = c.data();
76
1.22k
        const A* __restrict a_end = a_pos + size;
77
78
3.88M
        while (a_pos < a_end) {
79
3.88M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
3.88M
            ++a_pos;
81
3.88M
            ++b_pos;
82
3.88M
            ++c_pos;
83
3.88M
        }
84
1.22k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
3
                                        PaddedPODArray<UInt8>& c) {
72
3
        size_t size = a.size();
73
3
        const A* __restrict a_pos = a.data();
74
3
        const B* __restrict b_pos = b.data();
75
3
        UInt8* __restrict c_pos = c.data();
76
3
        const A* __restrict a_end = a_pos + size;
77
78
12
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
38
                                        PaddedPODArray<UInt8>& c) {
72
38
        size_t size = a.size();
73
38
        const A* __restrict a_pos = a.data();
74
38
        const B* __restrict b_pos = b.data();
75
38
        UInt8* __restrict c_pos = c.data();
76
38
        const A* __restrict a_end = a_pos + size;
77
78
322
        while (a_pos < a_end) {
79
284
            *c_pos = Op::apply(*a_pos, *b_pos);
80
284
            ++a_pos;
81
284
            ++b_pos;
82
284
            ++c_pos;
83
284
        }
84
38
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
112
                                        PaddedPODArray<UInt8>& c) {
72
112
        size_t size = a.size();
73
112
        const A* __restrict a_pos = a.data();
74
112
        const B* __restrict b_pos = b.data();
75
112
        UInt8* __restrict c_pos = c.data();
76
112
        const A* __restrict a_end = a_pos + size;
77
78
376
        while (a_pos < a_end) {
79
264
            *c_pos = Op::apply(*a_pos, *b_pos);
80
264
            ++a_pos;
81
264
            ++b_pos;
82
264
            ++c_pos;
83
264
        }
84
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
49
                                        PaddedPODArray<UInt8>& c) {
72
49
        size_t size = a.size();
73
49
        const A* __restrict a_pos = a.data();
74
49
        const B* __restrict b_pos = b.data();
75
49
        UInt8* __restrict c_pos = c.data();
76
49
        const A* __restrict a_end = a_pos + size;
77
78
271
        while (a_pos < a_end) {
79
222
            *c_pos = Op::apply(*a_pos, *b_pos);
80
222
            ++a_pos;
81
222
            ++b_pos;
82
222
            ++c_pos;
83
222
        }
84
49
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
64
                                        PaddedPODArray<UInt8>& c) {
72
64
        size_t size = a.size();
73
64
        const A* __restrict a_pos = a.data();
74
64
        const B* __restrict b_pos = b.data();
75
64
        UInt8* __restrict c_pos = c.data();
76
64
        const A* __restrict a_end = a_pos + size;
77
78
577
        while (a_pos < a_end) {
79
513
            *c_pos = Op::apply(*a_pos, *b_pos);
80
513
            ++a_pos;
81
513
            ++b_pos;
82
513
            ++c_pos;
83
513
        }
84
64
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
2
                                        PaddedPODArray<UInt8>& c) {
72
2
        size_t size = a.size();
73
2
        const A* __restrict a_pos = a.data();
74
2
        const B* __restrict b_pos = b.data();
75
2
        UInt8* __restrict c_pos = c.data();
76
2
        const A* __restrict a_end = a_pos + size;
77
78
6
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
2
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
27
                                        PaddedPODArray<UInt8>& c) {
72
27
        size_t size = a.size();
73
27
        const A* __restrict a_pos = a.data();
74
27
        const B* __restrict b_pos = b.data();
75
27
        UInt8* __restrict c_pos = c.data();
76
27
        const A* __restrict a_end = a_pos + size;
77
78
97
        while (a_pos < a_end) {
79
70
            *c_pos = Op::apply(*a_pos, *b_pos);
80
70
            ++a_pos;
81
70
            ++b_pos;
82
70
            ++c_pos;
83
70
        }
84
27
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
6
                                        PaddedPODArray<UInt8>& c) {
72
6
        size_t size = a.size();
73
6
        const A* __restrict a_pos = a.data();
74
6
        const B* __restrict b_pos = b.data();
75
6
        UInt8* __restrict c_pos = c.data();
76
6
        const A* __restrict a_end = a_pos + size;
77
78
70
        while (a_pos < a_end) {
79
64
            *c_pos = Op::apply(*a_pos, *b_pos);
80
64
            ++a_pos;
81
64
            ++b_pos;
82
64
            ++c_pos;
83
64
        }
84
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
3
                                        PaddedPODArray<UInt8>& c) {
72
3
        size_t size = a.size();
73
3
        const A* __restrict a_pos = a.data();
74
3
        const B* __restrict b_pos = b.data();
75
3
        UInt8* __restrict c_pos = c.data();
76
3
        const A* __restrict a_end = a_pos + size;
77
78
12
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
5
                                        PaddedPODArray<UInt8>& c) {
72
5
        size_t size = a.size();
73
5
        const A* __restrict a_pos = a.data();
74
5
        const B* __restrict b_pos = b.data();
75
5
        UInt8* __restrict c_pos = c.data();
76
5
        const A* __restrict a_end = a_pos + size;
77
78
21
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
5
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
9
                                        PaddedPODArray<UInt8>& c) {
72
9
        size_t size = a.size();
73
9
        const A* __restrict a_pos = a.data();
74
9
        const B* __restrict b_pos = b.data();
75
9
        UInt8* __restrict c_pos = c.data();
76
9
        const A* __restrict a_end = a_pos + size;
77
78
64
        while (a_pos < a_end) {
79
55
            *c_pos = Op::apply(*a_pos, *b_pos);
80
55
            ++a_pos;
81
55
            ++b_pos;
82
55
            ++c_pos;
83
55
        }
84
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
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
2
        while (a_pos < a_end) {
79
1
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1
            ++a_pos;
81
1
            ++b_pos;
82
1
            ++c_pos;
83
1
        }
84
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
21
                                        PaddedPODArray<UInt8>& c) {
72
21
        size_t size = a.size();
73
21
        const A* __restrict a_pos = a.data();
74
21
        const B* __restrict b_pos = b.data();
75
21
        UInt8* __restrict c_pos = c.data();
76
21
        const A* __restrict a_end = a_pos + size;
77
78
64
        while (a_pos < a_end) {
79
43
            *c_pos = Op::apply(*a_pos, *b_pos);
80
43
            ++a_pos;
81
43
            ++b_pos;
82
43
            ++c_pos;
83
43
        }
84
21
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
71
101
                                        PaddedPODArray<UInt8>& c) {
72
101
        size_t size = a.size();
73
101
        const A* __restrict a_pos = a.data();
74
101
        const B* __restrict b_pos = b.data();
75
101
        UInt8* __restrict c_pos = c.data();
76
101
        const A* __restrict a_end = a_pos + size;
77
78
376
        while (a_pos < a_end) {
79
275
            *c_pos = Op::apply(*a_pos, *b_pos);
80
275
            ++a_pos;
81
275
            ++b_pos;
82
275
            ++c_pos;
83
275
        }
84
101
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
1.84k
                                        PaddedPODArray<UInt8>& c) {
72
1.84k
        size_t size = a.size();
73
1.84k
        const A* __restrict a_pos = a.data();
74
1.84k
        const B* __restrict b_pos = b.data();
75
1.84k
        UInt8* __restrict c_pos = c.data();
76
1.84k
        const A* __restrict a_end = a_pos + size;
77
78
1.22M
        while (a_pos < a_end) {
79
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
80
1.22M
            ++a_pos;
81
1.22M
            ++b_pos;
82
1.22M
            ++c_pos;
83
1.22M
        }
84
1.84k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
275
                                        PaddedPODArray<UInt8>& c) {
72
275
        size_t size = a.size();
73
275
        const A* __restrict a_pos = a.data();
74
275
        const B* __restrict b_pos = b.data();
75
275
        UInt8* __restrict c_pos = c.data();
76
275
        const A* __restrict a_end = a_pos + size;
77
78
898
        while (a_pos < a_end) {
79
623
            *c_pos = Op::apply(*a_pos, *b_pos);
80
623
            ++a_pos;
81
623
            ++b_pos;
82
623
            ++c_pos;
83
623
        }
84
275
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
3
                                        PaddedPODArray<UInt8>& c) {
72
3
        size_t size = a.size();
73
3
        const A* __restrict a_pos = a.data();
74
3
        const B* __restrict b_pos = b.data();
75
3
        UInt8* __restrict c_pos = c.data();
76
3
        const A* __restrict a_end = a_pos + size;
77
78
12
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
154
                                        PaddedPODArray<UInt8>& c) {
72
154
        size_t size = a.size();
73
154
        const A* __restrict a_pos = a.data();
74
154
        const B* __restrict b_pos = b.data();
75
154
        UInt8* __restrict c_pos = c.data();
76
154
        const A* __restrict a_end = a_pos + size;
77
78
482
        while (a_pos < a_end) {
79
328
            *c_pos = Op::apply(*a_pos, *b_pos);
80
328
            ++a_pos;
81
328
            ++b_pos;
82
328
            ++c_pos;
83
328
        }
84
154
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
113
                                        PaddedPODArray<UInt8>& c) {
72
113
        size_t size = a.size();
73
113
        const A* __restrict a_pos = a.data();
74
113
        const B* __restrict b_pos = b.data();
75
113
        UInt8* __restrict c_pos = c.data();
76
113
        const A* __restrict a_end = a_pos + size;
77
78
402
        while (a_pos < a_end) {
79
289
            *c_pos = Op::apply(*a_pos, *b_pos);
80
289
            ++a_pos;
81
289
            ++b_pos;
82
289
            ++c_pos;
83
289
        }
84
113
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
170
                                        PaddedPODArray<UInt8>& c) {
72
170
        size_t size = a.size();
73
170
        const A* __restrict a_pos = a.data();
74
170
        const B* __restrict b_pos = b.data();
75
170
        UInt8* __restrict c_pos = c.data();
76
170
        const A* __restrict a_end = a_pos + size;
77
78
1.00k
        while (a_pos < a_end) {
79
833
            *c_pos = Op::apply(*a_pos, *b_pos);
80
833
            ++a_pos;
81
833
            ++b_pos;
82
833
            ++c_pos;
83
833
        }
84
170
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
234
                                        PaddedPODArray<UInt8>& c) {
72
234
        size_t size = a.size();
73
234
        const A* __restrict a_pos = a.data();
74
234
        const B* __restrict b_pos = b.data();
75
234
        UInt8* __restrict c_pos = c.data();
76
234
        const A* __restrict a_end = a_pos + size;
77
78
5.40k
        while (a_pos < a_end) {
79
5.16k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
5.16k
            ++a_pos;
81
5.16k
            ++b_pos;
82
5.16k
            ++c_pos;
83
5.16k
        }
84
234
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
145
                                        PaddedPODArray<UInt8>& c) {
72
145
        size_t size = a.size();
73
145
        const A* __restrict a_pos = a.data();
74
145
        const B* __restrict b_pos = b.data();
75
145
        UInt8* __restrict c_pos = c.data();
76
145
        const A* __restrict a_end = a_pos + size;
77
78
464
        while (a_pos < a_end) {
79
319
            *c_pos = Op::apply(*a_pos, *b_pos);
80
319
            ++a_pos;
81
319
            ++b_pos;
82
319
            ++c_pos;
83
319
        }
84
145
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
16
                                        PaddedPODArray<UInt8>& c) {
72
16
        size_t size = a.size();
73
16
        const A* __restrict a_pos = a.data();
74
16
        const B* __restrict b_pos = b.data();
75
16
        UInt8* __restrict c_pos = c.data();
76
16
        const A* __restrict a_end = a_pos + size;
77
78
32
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
16
                                        PaddedPODArray<UInt8>& c) {
72
16
        size_t size = a.size();
73
16
        const A* __restrict a_pos = a.data();
74
16
        const B* __restrict b_pos = b.data();
75
16
        UInt8* __restrict c_pos = c.data();
76
16
        const A* __restrict a_end = a_pos + size;
77
78
32
        while (a_pos < a_end) {
79
16
            *c_pos = Op::apply(*a_pos, *b_pos);
80
16
            ++a_pos;
81
16
            ++b_pos;
82
16
            ++c_pos;
83
16
        }
84
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
145
                                        PaddedPODArray<UInt8>& c) {
72
145
        size_t size = a.size();
73
145
        const A* __restrict a_pos = a.data();
74
145
        const B* __restrict b_pos = b.data();
75
145
        UInt8* __restrict c_pos = c.data();
76
145
        const A* __restrict a_end = a_pos + size;
77
78
483
        while (a_pos < a_end) {
79
338
            *c_pos = Op::apply(*a_pos, *b_pos);
80
338
            ++a_pos;
81
338
            ++b_pos;
82
338
            ++c_pos;
83
338
        }
84
145
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
153
                                        PaddedPODArray<UInt8>& c) {
72
153
        size_t size = a.size();
73
153
        const A* __restrict a_pos = a.data();
74
153
        const B* __restrict b_pos = b.data();
75
153
        UInt8* __restrict c_pos = c.data();
76
153
        const A* __restrict a_end = a_pos + size;
77
78
509
        while (a_pos < a_end) {
79
356
            *c_pos = Op::apply(*a_pos, *b_pos);
80
356
            ++a_pos;
81
356
            ++b_pos;
82
356
            ++c_pos;
83
356
        }
84
153
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
71
420
                                        PaddedPODArray<UInt8>& c) {
72
420
        size_t size = a.size();
73
420
        const A* __restrict a_pos = a.data();
74
420
        const B* __restrict b_pos = b.data();
75
420
        UInt8* __restrict c_pos = c.data();
76
420
        const A* __restrict a_end = a_pos + size;
77
78
6.81k
        while (a_pos < a_end) {
79
6.39k
            *c_pos = Op::apply(*a_pos, *b_pos);
80
6.39k
            ++a_pos;
81
6.39k
            ++b_pos;
82
6.39k
            ++c_pos;
83
6.39k
        }
84
420
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
71
3
                                        PaddedPODArray<UInt8>& c) {
72
3
        size_t size = a.size();
73
3
        const A* __restrict a_pos = a.data();
74
3
        const B* __restrict b_pos = b.data();
75
3
        UInt8* __restrict c_pos = c.data();
76
3
        const A* __restrict a_end = a_pos + size;
77
78
12
        while (a_pos < a_end) {
79
9
            *c_pos = Op::apply(*a_pos, *b_pos);
80
9
            ++a_pos;
81
9
            ++b_pos;
82
9
            ++c_pos;
83
9
        }
84
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
1
                                        PaddedPODArray<UInt8>& c) {
72
1
        size_t size = a.size();
73
1
        const A* __restrict a_pos = a.data();
74
1
        const B* __restrict b_pos = b.data();
75
1
        UInt8* __restrict c_pos = c.data();
76
1
        const A* __restrict a_end = a_pos + size;
77
78
5
        while (a_pos < a_end) {
79
4
            *c_pos = Op::apply(*a_pos, *b_pos);
80
4
            ++a_pos;
81
4
            ++b_pos;
82
4
            ++c_pos;
83
4
        }
84
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
10
                                        PaddedPODArray<UInt8>& c) {
72
10
        size_t size = a.size();
73
10
        const A* __restrict a_pos = a.data();
74
10
        const B* __restrict b_pos = b.data();
75
10
        UInt8* __restrict c_pos = c.data();
76
10
        const A* __restrict a_end = a_pos + size;
77
78
33
        while (a_pos < a_end) {
79
23
            *c_pos = Op::apply(*a_pos, *b_pos);
80
23
            ++a_pos;
81
23
            ++b_pos;
82
23
            ++c_pos;
83
23
        }
84
10
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
31
                                        PaddedPODArray<UInt8>& c) {
72
31
        size_t size = a.size();
73
31
        const A* __restrict a_pos = a.data();
74
31
        const B* __restrict b_pos = b.data();
75
31
        UInt8* __restrict c_pos = c.data();
76
31
        const A* __restrict a_end = a_pos + size;
77
78
69
        while (a_pos < a_end) {
79
38
            *c_pos = Op::apply(*a_pos, *b_pos);
80
38
            ++a_pos;
81
38
            ++b_pos;
82
38
            ++c_pos;
83
38
        }
84
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
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
71
20
                                        PaddedPODArray<UInt8>& c) {
72
20
        size_t size = a.size();
73
20
        const A* __restrict a_pos = a.data();
74
20
        const B* __restrict b_pos = b.data();
75
20
        UInt8* __restrict c_pos = c.data();
76
20
        const A* __restrict a_end = a_pos + size;
77
78
59
        while (a_pos < a_end) {
79
39
            *c_pos = Op::apply(*a_pos, *b_pos);
80
39
            ++a_pos;
81
39
            ++b_pos;
82
39
            ++c_pos;
83
39
        }
84
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
85
86
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
87
42.2k
                                          PaddedPODArray<UInt8>& c) {
88
42.2k
        size_t size = a.size();
89
42.2k
        const A* __restrict a_pos = a.data();
90
42.2k
        UInt8* __restrict c_pos = c.data();
91
42.2k
        const A* __restrict a_end = a_pos + size;
92
93
33.1M
        while (a_pos < a_end) {
94
33.0M
            *c_pos = Op::apply(*a_pos, b);
95
33.0M
            ++a_pos;
96
33.0M
            ++c_pos;
97
33.0M
        }
98
42.2k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
87
24
                                          PaddedPODArray<UInt8>& c) {
88
24
        size_t size = a.size();
89
24
        const A* __restrict a_pos = a.data();
90
24
        UInt8* __restrict c_pos = c.data();
91
24
        const A* __restrict a_end = a_pos + size;
92
93
166
        while (a_pos < a_end) {
94
142
            *c_pos = Op::apply(*a_pos, b);
95
142
            ++a_pos;
96
142
            ++c_pos;
97
142
        }
98
24
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
325
                                          PaddedPODArray<UInt8>& c) {
88
325
        size_t size = a.size();
89
325
        const A* __restrict a_pos = a.data();
90
325
        UInt8* __restrict c_pos = c.data();
91
325
        const A* __restrict a_end = a_pos + size;
92
93
202k
        while (a_pos < a_end) {
94
201k
            *c_pos = Op::apply(*a_pos, b);
95
201k
            ++a_pos;
96
201k
            ++c_pos;
97
201k
        }
98
325
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
172
                                          PaddedPODArray<UInt8>& c) {
88
172
        size_t size = a.size();
89
172
        const A* __restrict a_pos = a.data();
90
172
        UInt8* __restrict c_pos = c.data();
91
172
        const A* __restrict a_end = a_pos + size;
92
93
100k
        while (a_pos < a_end) {
94
100k
            *c_pos = Op::apply(*a_pos, b);
95
100k
            ++a_pos;
96
100k
            ++c_pos;
97
100k
        }
98
172
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
4.82k
                                          PaddedPODArray<UInt8>& c) {
88
4.82k
        size_t size = a.size();
89
4.82k
        const A* __restrict a_pos = a.data();
90
4.82k
        UInt8* __restrict c_pos = c.data();
91
4.82k
        const A* __restrict a_end = a_pos + size;
92
93
8.99M
        while (a_pos < a_end) {
94
8.99M
            *c_pos = Op::apply(*a_pos, b);
95
8.99M
            ++a_pos;
96
8.99M
            ++c_pos;
97
8.99M
        }
98
4.82k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
305
                                          PaddedPODArray<UInt8>& c) {
88
305
        size_t size = a.size();
89
305
        const A* __restrict a_pos = a.data();
90
305
        UInt8* __restrict c_pos = c.data();
91
305
        const A* __restrict a_end = a_pos + size;
92
93
101k
        while (a_pos < a_end) {
94
100k
            *c_pos = Op::apply(*a_pos, b);
95
100k
            ++a_pos;
96
100k
            ++c_pos;
97
100k
        }
98
305
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.68k
                                          PaddedPODArray<UInt8>& c) {
88
1.68k
        size_t size = a.size();
89
1.68k
        const A* __restrict a_pos = a.data();
90
1.68k
        UInt8* __restrict c_pos = c.data();
91
1.68k
        const A* __restrict a_end = a_pos + size;
92
93
167k
        while (a_pos < a_end) {
94
165k
            *c_pos = Op::apply(*a_pos, b);
95
165k
            ++a_pos;
96
165k
            ++c_pos;
97
165k
        }
98
1.68k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.27k
                                          PaddedPODArray<UInt8>& c) {
88
1.27k
        size_t size = a.size();
89
1.27k
        const A* __restrict a_pos = a.data();
90
1.27k
        UInt8* __restrict c_pos = c.data();
91
1.27k
        const A* __restrict a_end = a_pos + size;
92
93
591k
        while (a_pos < a_end) {
94
590k
            *c_pos = Op::apply(*a_pos, b);
95
590k
            ++a_pos;
96
590k
            ++c_pos;
97
590k
        }
98
1.27k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
35
                                          PaddedPODArray<UInt8>& c) {
88
35
        size_t size = a.size();
89
35
        const A* __restrict a_pos = a.data();
90
35
        UInt8* __restrict c_pos = c.data();
91
35
        const A* __restrict a_end = a_pos + size;
92
93
100k
        while (a_pos < a_end) {
94
100k
            *c_pos = Op::apply(*a_pos, b);
95
100k
            ++a_pos;
96
100k
            ++c_pos;
97
100k
        }
98
35
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
15
                                          PaddedPODArray<UInt8>& c) {
88
15
        size_t size = a.size();
89
15
        const A* __restrict a_pos = a.data();
90
15
        UInt8* __restrict c_pos = c.data();
91
15
        const A* __restrict a_end = a_pos + size;
92
93
129
        while (a_pos < a_end) {
94
114
            *c_pos = Op::apply(*a_pos, b);
95
114
            ++a_pos;
96
114
            ++c_pos;
97
114
        }
98
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
6
                                          PaddedPODArray<UInt8>& c) {
88
6
        size_t size = a.size();
89
6
        const A* __restrict a_pos = a.data();
90
6
        UInt8* __restrict c_pos = c.data();
91
6
        const A* __restrict a_end = a_pos + size;
92
93
12
        while (a_pos < a_end) {
94
6
            *c_pos = Op::apply(*a_pos, b);
95
6
            ++a_pos;
96
6
            ++c_pos;
97
6
        }
98
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
201
                                          PaddedPODArray<UInt8>& c) {
88
201
        size_t size = a.size();
89
201
        const A* __restrict a_pos = a.data();
90
201
        UInt8* __restrict c_pos = c.data();
91
201
        const A* __restrict a_end = a_pos + size;
92
93
700k
        while (a_pos < a_end) {
94
700k
            *c_pos = Op::apply(*a_pos, b);
95
700k
            ++a_pos;
96
700k
            ++c_pos;
97
700k
        }
98
201
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
31
                                          PaddedPODArray<UInt8>& c) {
88
31
        size_t size = a.size();
89
31
        const A* __restrict a_pos = a.data();
90
31
        UInt8* __restrict c_pos = c.data();
91
31
        const A* __restrict a_end = a_pos + size;
92
93
82
        while (a_pos < a_end) {
94
51
            *c_pos = Op::apply(*a_pos, b);
95
51
            ++a_pos;
96
51
            ++c_pos;
97
51
        }
98
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
28
                                          PaddedPODArray<UInt8>& c) {
88
28
        size_t size = a.size();
89
28
        const A* __restrict a_pos = a.data();
90
28
        UInt8* __restrict c_pos = c.data();
91
28
        const A* __restrict a_end = a_pos + size;
92
93
78
        while (a_pos < a_end) {
94
50
            *c_pos = Op::apply(*a_pos, b);
95
50
            ++a_pos;
96
50
            ++c_pos;
97
50
        }
98
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
279
                                          PaddedPODArray<UInt8>& c) {
88
279
        size_t size = a.size();
89
279
        const A* __restrict a_pos = a.data();
90
279
        UInt8* __restrict c_pos = c.data();
91
279
        const A* __restrict a_end = a_pos + size;
92
93
2.27k
        while (a_pos < a_end) {
94
1.99k
            *c_pos = Op::apply(*a_pos, b);
95
1.99k
            ++a_pos;
96
1.99k
            ++c_pos;
97
1.99k
        }
98
279
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
826
                                          PaddedPODArray<UInt8>& c) {
88
826
        size_t size = a.size();
89
826
        const A* __restrict a_pos = a.data();
90
826
        UInt8* __restrict c_pos = c.data();
91
826
        const A* __restrict a_end = a_pos + size;
92
93
3.96k
        while (a_pos < a_end) {
94
3.13k
            *c_pos = Op::apply(*a_pos, b);
95
3.13k
            ++a_pos;
96
3.13k
            ++c_pos;
97
3.13k
        }
98
826
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
28
                                          PaddedPODArray<UInt8>& c) {
88
28
        size_t size = a.size();
89
28
        const A* __restrict a_pos = a.data();
90
28
        UInt8* __restrict c_pos = c.data();
91
28
        const A* __restrict a_end = a_pos + size;
92
93
70
        while (a_pos < a_end) {
94
42
            *c_pos = Op::apply(*a_pos, b);
95
42
            ++a_pos;
96
42
            ++c_pos;
97
42
        }
98
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
40
                                          PaddedPODArray<UInt8>& c) {
88
40
        size_t size = a.size();
89
40
        const A* __restrict a_pos = a.data();
90
40
        UInt8* __restrict c_pos = c.data();
91
40
        const A* __restrict a_end = a_pos + size;
92
93
282
        while (a_pos < a_end) {
94
242
            *c_pos = Op::apply(*a_pos, b);
95
242
            ++a_pos;
96
242
            ++c_pos;
97
242
        }
98
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
41
                                          PaddedPODArray<UInt8>& c) {
88
41
        size_t size = a.size();
89
41
        const A* __restrict a_pos = a.data();
90
41
        UInt8* __restrict c_pos = c.data();
91
41
        const A* __restrict a_end = a_pos + size;
92
93
149
        while (a_pos < a_end) {
94
108
            *c_pos = Op::apply(*a_pos, b);
95
108
            ++a_pos;
96
108
            ++c_pos;
97
108
        }
98
41
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
384
                                          PaddedPODArray<UInt8>& c) {
88
384
        size_t size = a.size();
89
384
        const A* __restrict a_pos = a.data();
90
384
        UInt8* __restrict c_pos = c.data();
91
384
        const A* __restrict a_end = a_pos + size;
92
93
1.34M
        while (a_pos < a_end) {
94
1.34M
            *c_pos = Op::apply(*a_pos, b);
95
1.34M
            ++a_pos;
96
1.34M
            ++c_pos;
97
1.34M
        }
98
384
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
2
                                          PaddedPODArray<UInt8>& c) {
88
2
        size_t size = a.size();
89
2
        const A* __restrict a_pos = a.data();
90
2
        UInt8* __restrict c_pos = c.data();
91
2
        const A* __restrict a_end = a_pos + size;
92
93
6
        while (a_pos < a_end) {
94
4
            *c_pos = Op::apply(*a_pos, b);
95
4
            ++a_pos;
96
4
            ++c_pos;
97
4
        }
98
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
59
                                          PaddedPODArray<UInt8>& c) {
88
59
        size_t size = a.size();
89
59
        const A* __restrict a_pos = a.data();
90
59
        UInt8* __restrict c_pos = c.data();
91
59
        const A* __restrict a_end = a_pos + size;
92
93
269
        while (a_pos < a_end) {
94
210
            *c_pos = Op::apply(*a_pos, b);
95
210
            ++a_pos;
96
210
            ++c_pos;
97
210
        }
98
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
87
1
                                          PaddedPODArray<UInt8>& c) {
88
1
        size_t size = a.size();
89
1
        const A* __restrict a_pos = a.data();
90
1
        UInt8* __restrict c_pos = c.data();
91
1
        const A* __restrict a_end = a_pos + size;
92
93
8
        while (a_pos < a_end) {
94
7
            *c_pos = Op::apply(*a_pos, b);
95
7
            ++a_pos;
96
7
            ++c_pos;
97
7
        }
98
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.27k
                                          PaddedPODArray<UInt8>& c) {
88
1.27k
        size_t size = a.size();
89
1.27k
        const A* __restrict a_pos = a.data();
90
1.27k
        UInt8* __restrict c_pos = c.data();
91
1.27k
        const A* __restrict a_end = a_pos + size;
92
93
7.04k
        while (a_pos < a_end) {
94
5.77k
            *c_pos = Op::apply(*a_pos, b);
95
5.77k
            ++a_pos;
96
5.77k
            ++c_pos;
97
5.77k
        }
98
1.27k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.99k
                                          PaddedPODArray<UInt8>& c) {
88
1.99k
        size_t size = a.size();
89
1.99k
        const A* __restrict a_pos = a.data();
90
1.99k
        UInt8* __restrict c_pos = c.data();
91
1.99k
        const A* __restrict a_end = a_pos + size;
92
93
5.56k
        while (a_pos < a_end) {
94
3.57k
            *c_pos = Op::apply(*a_pos, b);
95
3.57k
            ++a_pos;
96
3.57k
            ++c_pos;
97
3.57k
        }
98
1.99k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.45k
                                          PaddedPODArray<UInt8>& c) {
88
1.45k
        size_t size = a.size();
89
1.45k
        const A* __restrict a_pos = a.data();
90
1.45k
        UInt8* __restrict c_pos = c.data();
91
1.45k
        const A* __restrict a_end = a_pos + size;
92
93
6.26k
        while (a_pos < a_end) {
94
4.81k
            *c_pos = Op::apply(*a_pos, b);
95
4.81k
            ++a_pos;
96
4.81k
            ++c_pos;
97
4.81k
        }
98
1.45k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
230
                                          PaddedPODArray<UInt8>& c) {
88
230
        size_t size = a.size();
89
230
        const A* __restrict a_pos = a.data();
90
230
        UInt8* __restrict c_pos = c.data();
91
230
        const A* __restrict a_end = a_pos + size;
92
93
1.14k
        while (a_pos < a_end) {
94
915
            *c_pos = Op::apply(*a_pos, b);
95
915
            ++a_pos;
96
915
            ++c_pos;
97
915
        }
98
230
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
9.69k
                                          PaddedPODArray<UInt8>& c) {
88
9.69k
        size_t size = a.size();
89
9.69k
        const A* __restrict a_pos = a.data();
90
9.69k
        UInt8* __restrict c_pos = c.data();
91
9.69k
        const A* __restrict a_end = a_pos + size;
92
93
5.27M
        while (a_pos < a_end) {
94
5.26M
            *c_pos = Op::apply(*a_pos, b);
95
5.26M
            ++a_pos;
96
5.26M
            ++c_pos;
97
5.26M
        }
98
9.69k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
4.19k
                                          PaddedPODArray<UInt8>& c) {
88
4.19k
        size_t size = a.size();
89
4.19k
        const A* __restrict a_pos = a.data();
90
4.19k
        UInt8* __restrict c_pos = c.data();
91
4.19k
        const A* __restrict a_end = a_pos + size;
92
93
952k
        while (a_pos < a_end) {
94
948k
            *c_pos = Op::apply(*a_pos, b);
95
948k
            ++a_pos;
96
948k
            ++c_pos;
97
948k
        }
98
4.19k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.28k
                                          PaddedPODArray<UInt8>& c) {
88
1.28k
        size_t size = a.size();
89
1.28k
        const A* __restrict a_pos = a.data();
90
1.28k
        UInt8* __restrict c_pos = c.data();
91
1.28k
        const A* __restrict a_end = a_pos + size;
92
93
97.8k
        while (a_pos < a_end) {
94
96.5k
            *c_pos = Op::apply(*a_pos, b);
95
96.5k
            ++a_pos;
96
96.5k
            ++c_pos;
97
96.5k
        }
98
1.28k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
1.02k
                                          PaddedPODArray<UInt8>& c) {
88
1.02k
        size_t size = a.size();
89
1.02k
        const A* __restrict a_pos = a.data();
90
1.02k
        UInt8* __restrict c_pos = c.data();
91
1.02k
        const A* __restrict a_end = a_pos + size;
92
93
11.6k
        while (a_pos < a_end) {
94
10.6k
            *c_pos = Op::apply(*a_pos, b);
95
10.6k
            ++a_pos;
96
10.6k
            ++c_pos;
97
10.6k
        }
98
1.02k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
293
                                          PaddedPODArray<UInt8>& c) {
88
293
        size_t size = a.size();
89
293
        const A* __restrict a_pos = a.data();
90
293
        UInt8* __restrict c_pos = c.data();
91
293
        const A* __restrict a_end = a_pos + size;
92
93
1.93k
        while (a_pos < a_end) {
94
1.63k
            *c_pos = Op::apply(*a_pos, b);
95
1.63k
            ++a_pos;
96
1.63k
            ++c_pos;
97
1.63k
        }
98
293
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
76
                                          PaddedPODArray<UInt8>& c) {
88
76
        size_t size = a.size();
89
76
        const A* __restrict a_pos = a.data();
90
76
        UInt8* __restrict c_pos = c.data();
91
76
        const A* __restrict a_end = a_pos + size;
92
93
86.2k
        while (a_pos < a_end) {
94
86.1k
            *c_pos = Op::apply(*a_pos, b);
95
86.1k
            ++a_pos;
96
86.1k
            ++c_pos;
97
86.1k
        }
98
76
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
3
                                          PaddedPODArray<UInt8>& c) {
88
3
        size_t size = a.size();
89
3
        const A* __restrict a_pos = a.data();
90
3
        UInt8* __restrict c_pos = c.data();
91
3
        const A* __restrict a_end = a_pos + size;
92
93
31
        while (a_pos < a_end) {
94
28
            *c_pos = Op::apply(*a_pos, b);
95
28
            ++a_pos;
96
28
            ++c_pos;
97
28
        }
98
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
2
                                          PaddedPODArray<UInt8>& c) {
88
2
        size_t size = a.size();
89
2
        const A* __restrict a_pos = a.data();
90
2
        UInt8* __restrict c_pos = c.data();
91
2
        const A* __restrict a_end = a_pos + size;
92
93
22
        while (a_pos < a_end) {
94
20
            *c_pos = Op::apply(*a_pos, b);
95
20
            ++a_pos;
96
20
            ++c_pos;
97
20
        }
98
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
200
                                          PaddedPODArray<UInt8>& c) {
88
200
        size_t size = a.size();
89
200
        const A* __restrict a_pos = a.data();
90
200
        UInt8* __restrict c_pos = c.data();
91
200
        const A* __restrict a_end = a_pos + size;
92
93
2.61k
        while (a_pos < a_end) {
94
2.41k
            *c_pos = Op::apply(*a_pos, b);
95
2.41k
            ++a_pos;
96
2.41k
            ++c_pos;
97
2.41k
        }
98
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
508
                                          PaddedPODArray<UInt8>& c) {
88
508
        size_t size = a.size();
89
508
        const A* __restrict a_pos = a.data();
90
508
        UInt8* __restrict c_pos = c.data();
91
508
        const A* __restrict a_end = a_pos + size;
92
93
7.44k
        while (a_pos < a_end) {
94
6.93k
            *c_pos = Op::apply(*a_pos, b);
95
6.93k
            ++a_pos;
96
6.93k
            ++c_pos;
97
6.93k
        }
98
508
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
226
                                          PaddedPODArray<UInt8>& c) {
88
226
        size_t size = a.size();
89
226
        const A* __restrict a_pos = a.data();
90
226
        UInt8* __restrict c_pos = c.data();
91
226
        const A* __restrict a_end = a_pos + size;
92
93
282k
        while (a_pos < a_end) {
94
282k
            *c_pos = Op::apply(*a_pos, b);
95
282k
            ++a_pos;
96
282k
            ++c_pos;
97
282k
        }
98
226
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
87
14
                                          PaddedPODArray<UInt8>& c) {
88
14
        size_t size = a.size();
89
14
        const A* __restrict a_pos = a.data();
90
14
        UInt8* __restrict c_pos = c.data();
91
14
        const A* __restrict a_end = a_pos + size;
92
93
70.4k
        while (a_pos < a_end) {
94
70.4k
            *c_pos = Op::apply(*a_pos, b);
95
70.4k
            ++a_pos;
96
70.4k
            ++c_pos;
97
70.4k
        }
98
14
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
87
38
                                          PaddedPODArray<UInt8>& c) {
88
38
        size_t size = a.size();
89
38
        const A* __restrict a_pos = a.data();
90
38
        UInt8* __restrict c_pos = c.data();
91
38
        const A* __restrict a_end = a_pos + size;
92
93
83.3k
        while (a_pos < a_end) {
94
83.2k
            *c_pos = Op::apply(*a_pos, b);
95
83.2k
            ++a_pos;
96
83.2k
            ++c_pos;
97
83.2k
        }
98
38
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
495
                                          PaddedPODArray<UInt8>& c) {
88
495
        size_t size = a.size();
89
495
        const A* __restrict a_pos = a.data();
90
495
        UInt8* __restrict c_pos = c.data();
91
495
        const A* __restrict a_end = a_pos + size;
92
93
1.47M
        while (a_pos < a_end) {
94
1.47M
            *c_pos = Op::apply(*a_pos, b);
95
1.47M
            ++a_pos;
96
1.47M
            ++c_pos;
97
1.47M
        }
98
495
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
205
                                          PaddedPODArray<UInt8>& c) {
88
205
        size_t size = a.size();
89
205
        const A* __restrict a_pos = a.data();
90
205
        UInt8* __restrict c_pos = c.data();
91
205
        const A* __restrict a_end = a_pos + size;
92
93
674k
        while (a_pos < a_end) {
94
673k
            *c_pos = Op::apply(*a_pos, b);
95
673k
            ++a_pos;
96
673k
            ++c_pos;
97
673k
        }
98
205
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
136
                                          PaddedPODArray<UInt8>& c) {
88
136
        size_t size = a.size();
89
136
        const A* __restrict a_pos = a.data();
90
136
        UInt8* __restrict c_pos = c.data();
91
136
        const A* __restrict a_end = a_pos + size;
92
93
511
        while (a_pos < a_end) {
94
375
            *c_pos = Op::apply(*a_pos, b);
95
375
            ++a_pos;
96
375
            ++c_pos;
97
375
        }
98
136
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
87
88
                                          PaddedPODArray<UInt8>& c) {
88
88
        size_t size = a.size();
89
88
        const A* __restrict a_pos = a.data();
90
88
        UInt8* __restrict c_pos = c.data();
91
88
        const A* __restrict a_end = a_pos + size;
92
93
528
        while (a_pos < a_end) {
94
440
            *c_pos = Op::apply(*a_pos, b);
95
440
            ++a_pos;
96
440
            ++c_pos;
97
440
        }
98
88
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
75
                                          PaddedPODArray<UInt8>& c) {
88
75
        size_t size = a.size();
89
75
        const A* __restrict a_pos = a.data();
90
75
        UInt8* __restrict c_pos = c.data();
91
75
        const A* __restrict a_end = a_pos + size;
92
93
140k
        while (a_pos < a_end) {
94
140k
            *c_pos = Op::apply(*a_pos, b);
95
140k
            ++a_pos;
96
140k
            ++c_pos;
97
140k
        }
98
75
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
94
                                          PaddedPODArray<UInt8>& c) {
88
94
        size_t size = a.size();
89
94
        const A* __restrict a_pos = a.data();
90
94
        UInt8* __restrict c_pos = c.data();
91
94
        const A* __restrict a_end = a_pos + size;
92
93
150k
        while (a_pos < a_end) {
94
150k
            *c_pos = Op::apply(*a_pos, b);
95
150k
            ++a_pos;
96
150k
            ++c_pos;
97
150k
        }
98
94
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
71
                                          PaddedPODArray<UInt8>& c) {
88
71
        size_t size = a.size();
89
71
        const A* __restrict a_pos = a.data();
90
71
        UInt8* __restrict c_pos = c.data();
91
71
        const A* __restrict a_end = a_pos + size;
92
93
142k
        while (a_pos < a_end) {
94
142k
            *c_pos = Op::apply(*a_pos, b);
95
142k
            ++a_pos;
96
142k
            ++c_pos;
97
142k
        }
98
71
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
88
                                          PaddedPODArray<UInt8>& c) {
88
88
        size_t size = a.size();
89
88
        const A* __restrict a_pos = a.data();
90
88
        UInt8* __restrict c_pos = c.data();
91
88
        const A* __restrict a_end = a_pos + size;
92
93
91.0k
        while (a_pos < a_end) {
94
90.9k
            *c_pos = Op::apply(*a_pos, b);
95
90.9k
            ++a_pos;
96
90.9k
            ++c_pos;
97
90.9k
        }
98
88
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
977
                                          PaddedPODArray<UInt8>& c) {
88
977
        size_t size = a.size();
89
977
        const A* __restrict a_pos = a.data();
90
977
        UInt8* __restrict c_pos = c.data();
91
977
        const A* __restrict a_end = a_pos + size;
92
93
3.18M
        while (a_pos < a_end) {
94
3.17M
            *c_pos = Op::apply(*a_pos, b);
95
3.17M
            ++a_pos;
96
3.17M
            ++c_pos;
97
3.17M
        }
98
977
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
5.98k
                                          PaddedPODArray<UInt8>& c) {
88
5.98k
        size_t size = a.size();
89
5.98k
        const A* __restrict a_pos = a.data();
90
5.98k
        UInt8* __restrict c_pos = c.data();
91
5.98k
        const A* __restrict a_end = a_pos + size;
92
93
7.14M
        while (a_pos < a_end) {
94
7.13M
            *c_pos = Op::apply(*a_pos, b);
95
7.13M
            ++a_pos;
96
7.13M
            ++c_pos;
97
7.13M
        }
98
5.98k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
242
                                          PaddedPODArray<UInt8>& c) {
88
242
        size_t size = a.size();
89
242
        const A* __restrict a_pos = a.data();
90
242
        UInt8* __restrict c_pos = c.data();
91
242
        const A* __restrict a_end = a_pos + size;
92
93
1.18k
        while (a_pos < a_end) {
94
945
            *c_pos = Op::apply(*a_pos, b);
95
945
            ++a_pos;
96
945
            ++c_pos;
97
945
        }
98
242
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
331
                                          PaddedPODArray<UInt8>& c) {
88
331
        size_t size = a.size();
89
331
        const A* __restrict a_pos = a.data();
90
331
        UInt8* __restrict c_pos = c.data();
91
331
        const A* __restrict a_end = a_pos + size;
92
93
4.08k
        while (a_pos < a_end) {
94
3.75k
            *c_pos = Op::apply(*a_pos, b);
95
3.75k
            ++a_pos;
96
3.75k
            ++c_pos;
97
3.75k
        }
98
331
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
25
                                          PaddedPODArray<UInt8>& c) {
88
25
        size_t size = a.size();
89
25
        const A* __restrict a_pos = a.data();
90
25
        UInt8* __restrict c_pos = c.data();
91
25
        const A* __restrict a_end = a_pos + size;
92
93
103k
        while (a_pos < a_end) {
94
103k
            *c_pos = Op::apply(*a_pos, b);
95
103k
            ++a_pos;
96
103k
            ++c_pos;
97
103k
        }
98
25
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
53
                                          PaddedPODArray<UInt8>& c) {
88
53
        size_t size = a.size();
89
53
        const A* __restrict a_pos = a.data();
90
53
        UInt8* __restrict c_pos = c.data();
91
53
        const A* __restrict a_end = a_pos + size;
92
93
150k
        while (a_pos < a_end) {
94
150k
            *c_pos = Op::apply(*a_pos, b);
95
150k
            ++a_pos;
96
150k
            ++c_pos;
97
150k
        }
98
53
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
10
                                          PaddedPODArray<UInt8>& c) {
88
10
        size_t size = a.size();
89
10
        const A* __restrict a_pos = a.data();
90
10
        UInt8* __restrict c_pos = c.data();
91
10
        const A* __restrict a_end = a_pos + size;
92
93
110
        while (a_pos < a_end) {
94
100
            *c_pos = Op::apply(*a_pos, b);
95
100
            ++a_pos;
96
100
            ++c_pos;
97
100
        }
98
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
10
                                          PaddedPODArray<UInt8>& c) {
88
10
        size_t size = a.size();
89
10
        const A* __restrict a_pos = a.data();
90
10
        UInt8* __restrict c_pos = c.data();
91
10
        const A* __restrict a_end = a_pos + size;
92
93
110
        while (a_pos < a_end) {
94
100
            *c_pos = Op::apply(*a_pos, b);
95
100
            ++a_pos;
96
100
            ++c_pos;
97
100
        }
98
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
4
                                          PaddedPODArray<UInt8>& c) {
88
4
        size_t size = a.size();
89
4
        const A* __restrict a_pos = a.data();
90
4
        UInt8* __restrict c_pos = c.data();
91
4
        const A* __restrict a_end = a_pos + size;
92
93
10
        while (a_pos < a_end) {
94
6
            *c_pos = Op::apply(*a_pos, b);
95
6
            ++a_pos;
96
6
            ++c_pos;
97
6
        }
98
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
149
                                          PaddedPODArray<UInt8>& c) {
88
149
        size_t size = a.size();
89
149
        const A* __restrict a_pos = a.data();
90
149
        UInt8* __restrict c_pos = c.data();
91
149
        const A* __restrict a_end = a_pos + size;
92
93
356k
        while (a_pos < a_end) {
94
355k
            *c_pos = Op::apply(*a_pos, b);
95
355k
            ++a_pos;
96
355k
            ++c_pos;
97
355k
        }
98
149
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
87
138
                                          PaddedPODArray<UInt8>& c) {
88
138
        size_t size = a.size();
89
138
        const A* __restrict a_pos = a.data();
90
138
        UInt8* __restrict c_pos = c.data();
91
138
        const A* __restrict a_end = a_pos + size;
92
93
275k
        while (a_pos < a_end) {
94
275k
            *c_pos = Op::apply(*a_pos, b);
95
275k
            ++a_pos;
96
275k
            ++c_pos;
97
275k
        }
98
138
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
99
100
6.87k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
6.87k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
6.87k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
264
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
264
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
264
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
36
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
36
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
36
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
142
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
142
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
142
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
499
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
499
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
499
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
802
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
802
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
802
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
228
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
216
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
216
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
216
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
3.33k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
3.33k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
3.33k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
500
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
500
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
500
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
30
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
30
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
30
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
100
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
240
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
240
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
240
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
119
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
119
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
119
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
84
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
84
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
84
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
92
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
92
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
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
100
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
245
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
245
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
245
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
24
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
24
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
24
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
100
1
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
101
1
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
102
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
103
};
104
105
/// Generic version, implemented for columns of same type.
106
template <typename Op>
107
struct GenericComparisonImpl {
108
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
11
        }
112
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
6
        }
112
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
1
        }
112
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
1
        }
112
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
111
3
        }
112
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
113
114
127
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
127
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
406k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
405k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
405k
        }
119
127
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
18
        }
119
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
8
        }
119
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
48
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
48
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
232k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
232k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
232k
        }
119
48
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
114
42
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
42
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
116
173k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
117
173k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
118
173k
        }
119
42
    }
120
121
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
122
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
123
0
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
124
};
125
126
template <typename Op>
127
struct StringComparisonImpl {
128
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
129
                                                      const ColumnString::Offsets& a_offsets,
130
                                                      const ColumnString::Chars& b_data,
131
                                                      const ColumnString::Offsets& b_offsets,
132
470
                                                      PaddedPODArray<UInt8>& c) {
133
470
        size_t size = a_offsets.size();
134
470
        ColumnString::Offset prev_a_offset = 0;
135
470
        ColumnString::Offset prev_b_offset = 0;
136
470
        const auto* a_pos = a_data.data();
137
470
        const auto* b_pos = b_data.data();
138
139
1.66k
        for (size_t i = 0; i < size; ++i) {
140
1.19k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
1.19k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
1.19k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
1.19k
                             0);
144
145
1.19k
            prev_a_offset = a_offsets[i];
146
1.19k
            prev_b_offset = b_offsets[i];
147
1.19k
        }
148
470
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
2
                                                      PaddedPODArray<UInt8>& c) {
133
2
        size_t size = a_offsets.size();
134
2
        ColumnString::Offset prev_a_offset = 0;
135
2
        ColumnString::Offset prev_b_offset = 0;
136
2
        const auto* a_pos = a_data.data();
137
2
        const auto* b_pos = b_data.data();
138
139
49
        for (size_t i = 0; i < size; ++i) {
140
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
47
                             0);
144
145
47
            prev_a_offset = a_offsets[i];
146
47
            prev_b_offset = b_offsets[i];
147
47
        }
148
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
36
                                                      PaddedPODArray<UInt8>& c) {
133
36
        size_t size = a_offsets.size();
134
36
        ColumnString::Offset prev_a_offset = 0;
135
36
        ColumnString::Offset prev_b_offset = 0;
136
36
        const auto* a_pos = a_data.data();
137
36
        const auto* b_pos = b_data.data();
138
139
230
        for (size_t i = 0; i < size; ++i) {
140
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
194
                             0);
144
145
194
            prev_a_offset = a_offsets[i];
146
194
            prev_b_offset = b_offsets[i];
147
194
        }
148
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
132
432
                                                      PaddedPODArray<UInt8>& c) {
133
432
        size_t size = a_offsets.size();
134
432
        ColumnString::Offset prev_a_offset = 0;
135
432
        ColumnString::Offset prev_b_offset = 0;
136
432
        const auto* a_pos = a_data.data();
137
432
        const auto* b_pos = b_data.data();
138
139
1.38k
        for (size_t i = 0; i < size; ++i) {
140
954
            c[i] = Op::apply(memcmp_small_allow_overflow15(
141
954
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
142
954
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
143
954
                             0);
144
145
954
            prev_a_offset = a_offsets[i];
146
954
            prev_b_offset = b_offsets[i];
147
954
        }
148
432
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
149
150
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
151
                                                 const ColumnString::Offsets& a_offsets,
152
                                                 const ColumnString::Chars& b_data,
153
                                                 ColumnString::Offset b_size,
154
805
                                                 PaddedPODArray<UInt8>& c) {
155
805
        size_t size = a_offsets.size();
156
805
        ColumnString::Offset prev_a_offset = 0;
157
805
        const auto* a_pos = a_data.data();
158
805
        const auto* b_pos = b_data.data();
159
160
1.29M
        for (size_t i = 0; i < size; ++i) {
161
1.29M
            c[i] = Op::apply(
162
1.29M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
1.29M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
1.29M
                    0);
165
166
1.29M
            prev_a_offset = a_offsets[i];
167
1.29M
        }
168
805
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
188
                                                 PaddedPODArray<UInt8>& c) {
155
188
        size_t size = a_offsets.size();
156
188
        ColumnString::Offset prev_a_offset = 0;
157
188
        const auto* a_pos = a_data.data();
158
188
        const auto* b_pos = b_data.data();
159
160
323k
        for (size_t i = 0; i < size; ++i) {
161
323k
            c[i] = Op::apply(
162
323k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
323k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
323k
                    0);
165
166
323k
            prev_a_offset = a_offsets[i];
167
323k
        }
168
188
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
96
                                                 PaddedPODArray<UInt8>& c) {
155
96
        size_t size = a_offsets.size();
156
96
        ColumnString::Offset prev_a_offset = 0;
157
96
        const auto* a_pos = a_data.data();
158
96
        const auto* b_pos = b_data.data();
159
160
72.8k
        for (size_t i = 0; i < size; ++i) {
161
72.7k
            c[i] = Op::apply(
162
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
72.7k
                    0);
165
166
72.7k
            prev_a_offset = a_offsets[i];
167
72.7k
        }
168
96
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
257
                                                 PaddedPODArray<UInt8>& c) {
155
257
        size_t size = a_offsets.size();
156
257
        ColumnString::Offset prev_a_offset = 0;
157
257
        const auto* a_pos = a_data.data();
158
257
        const auto* b_pos = b_data.data();
159
160
451k
        for (size_t i = 0; i < size; ++i) {
161
450k
            c[i] = Op::apply(
162
450k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
450k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
450k
                    0);
165
166
450k
            prev_a_offset = a_offsets[i];
167
450k
        }
168
257
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
154
264
                                                 PaddedPODArray<UInt8>& c) {
155
264
        size_t size = a_offsets.size();
156
264
        ColumnString::Offset prev_a_offset = 0;
157
264
        const auto* a_pos = a_data.data();
158
264
        const auto* b_pos = b_data.data();
159
160
451k
        for (size_t i = 0; i < size; ++i) {
161
451k
            c[i] = Op::apply(
162
451k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
163
451k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
164
451k
                    0);
165
166
451k
            prev_a_offset = a_offsets[i];
167
451k
        }
168
264
    }
169
170
    static void constant_string_vector(const ColumnString::Chars& a_data,
171
                                       ColumnString::Offset a_size,
172
                                       const ColumnString::Chars& b_data,
173
                                       const ColumnString::Offsets& b_offsets,
174
6
                                       PaddedPODArray<UInt8>& c) {
175
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
176
6
                                                                               a_data, a_size, c);
177
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
174
6
                                       PaddedPODArray<UInt8>& c) {
175
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
176
6
                                                                               a_data, a_size, c);
177
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
178
};
179
180
template <bool positive>
181
struct StringEqualsImpl {
182
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
183
                                                      const ColumnString::Offsets& a_offsets,
184
                                                      const ColumnString::Chars& b_data,
185
                                                      const ColumnString::Offsets& b_offsets,
186
492
                                                      PaddedPODArray<UInt8>& c) {
187
492
        size_t size = a_offsets.size();
188
492
        ColumnString::Offset prev_a_offset = 0;
189
492
        ColumnString::Offset prev_b_offset = 0;
190
492
        const auto* a_pos = a_data.data();
191
492
        const auto* b_pos = b_data.data();
192
193
1.47k
        for (size_t i = 0; i < size; ++i) {
194
983
            auto a_size = a_offsets[i] - prev_a_offset;
195
983
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
983
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
983
                                                               b_pos + prev_b_offset, b_size);
199
200
983
            prev_a_offset = a_offsets[i];
201
983
            prev_b_offset = b_offsets[i];
202
983
        }
203
492
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
186
491
                                                      PaddedPODArray<UInt8>& c) {
187
491
        size_t size = a_offsets.size();
188
491
        ColumnString::Offset prev_a_offset = 0;
189
491
        ColumnString::Offset prev_b_offset = 0;
190
491
        const auto* a_pos = a_data.data();
191
491
        const auto* b_pos = b_data.data();
192
193
1.47k
        for (size_t i = 0; i < size; ++i) {
194
979
            auto a_size = a_offsets[i] - prev_a_offset;
195
979
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
979
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
979
                                                               b_pos + prev_b_offset, b_size);
199
200
979
            prev_a_offset = a_offsets[i];
201
979
            prev_b_offset = b_offsets[i];
202
979
        }
203
491
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
186
1
                                                      PaddedPODArray<UInt8>& c) {
187
1
        size_t size = a_offsets.size();
188
1
        ColumnString::Offset prev_a_offset = 0;
189
1
        ColumnString::Offset prev_b_offset = 0;
190
1
        const auto* a_pos = a_data.data();
191
1
        const auto* b_pos = b_data.data();
192
193
5
        for (size_t i = 0; i < size; ++i) {
194
4
            auto a_size = a_offsets[i] - prev_a_offset;
195
4
            auto b_size = b_offsets[i] - prev_b_offset;
196
197
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
198
4
                                                               b_pos + prev_b_offset, b_size);
199
200
4
            prev_a_offset = a_offsets[i];
201
4
            prev_b_offset = b_offsets[i];
202
4
        }
203
1
    }
204
205
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
206
                                                 const ColumnString::Offsets& a_offsets,
207
                                                 const ColumnString::Chars& b_data,
208
                                                 ColumnString::Offset b_size,
209
10.7k
                                                 PaddedPODArray<UInt8>& c) {
210
10.7k
        size_t size = a_offsets.size();
211
10.7k
        if (b_size == 0) {
212
1
            auto* __restrict data = c.data();
213
1
            auto* __restrict offsets = a_offsets.data();
214
215
1
            ColumnString::Offset prev_a_offset = 0;
216
4
            for (size_t i = 0; i < size; ++i) {
217
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
3
                prev_a_offset = offsets[i];
219
3
            }
220
10.7k
        } else {
221
10.7k
            ColumnString::Offset prev_a_offset = 0;
222
10.7k
            const auto* a_pos = a_data.data();
223
10.7k
            const auto* b_pos = b_data.data();
224
1.54M
            for (size_t i = 0; i < size; ++i) {
225
1.53M
                auto a_size = a_offsets[i] - prev_a_offset;
226
1.53M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
1.53M
                                                                   b_pos, b_size);
228
1.53M
                prev_a_offset = a_offsets[i];
229
1.53M
            }
230
10.7k
        }
231
10.7k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
209
10.6k
                                                 PaddedPODArray<UInt8>& c) {
210
10.6k
        size_t size = a_offsets.size();
211
10.6k
        if (b_size == 0) {
212
0
            auto* __restrict data = c.data();
213
0
            auto* __restrict offsets = a_offsets.data();
214
215
0
            ColumnString::Offset prev_a_offset = 0;
216
0
            for (size_t i = 0; i < size; ++i) {
217
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
0
                prev_a_offset = offsets[i];
219
0
            }
220
10.6k
        } else {
221
10.6k
            ColumnString::Offset prev_a_offset = 0;
222
10.6k
            const auto* a_pos = a_data.data();
223
10.6k
            const auto* b_pos = b_data.data();
224
1.49M
            for (size_t i = 0; i < size; ++i) {
225
1.48M
                auto a_size = a_offsets[i] - prev_a_offset;
226
1.48M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
1.48M
                                                                   b_pos, b_size);
228
1.48M
                prev_a_offset = a_offsets[i];
229
1.48M
            }
230
10.6k
        }
231
10.6k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
209
85
                                                 PaddedPODArray<UInt8>& c) {
210
85
        size_t size = a_offsets.size();
211
85
        if (b_size == 0) {
212
1
            auto* __restrict data = c.data();
213
1
            auto* __restrict offsets = a_offsets.data();
214
215
1
            ColumnString::Offset prev_a_offset = 0;
216
4
            for (size_t i = 0; i < size; ++i) {
217
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
218
3
                prev_a_offset = offsets[i];
219
3
            }
220
84
        } else {
221
84
            ColumnString::Offset prev_a_offset = 0;
222
84
            const auto* a_pos = a_data.data();
223
84
            const auto* b_pos = b_data.data();
224
44.1k
            for (size_t i = 0; i < size; ++i) {
225
44.0k
                auto a_size = a_offsets[i] - prev_a_offset;
226
44.0k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
227
44.0k
                                                                   b_pos, b_size);
228
44.0k
                prev_a_offset = a_offsets[i];
229
44.0k
            }
230
84
        }
231
85
    }
232
233
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
234
                                                 ColumnString::Offset a_size,
235
                                                 const ColumnString::Chars& b_data,
236
                                                 const ColumnString::Offsets& b_offsets,
237
0
                                                 PaddedPODArray<UInt8>& c) {
238
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
239
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
240
};
241
242
template <PrimitiveType PT>
243
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
244
245
template <PrimitiveType PT>
246
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
247
248
struct NameEquals {
249
    static constexpr auto name = "eq";
250
};
251
struct NameNotEquals {
252
    static constexpr auto name = "ne";
253
};
254
struct NameLess {
255
    static constexpr auto name = "lt";
256
};
257
struct NameGreater {
258
    static constexpr auto name = "gt";
259
};
260
struct NameLessOrEquals {
261
    static constexpr auto name = "le";
262
};
263
struct NameGreaterOrEquals {
264
    static constexpr auto name = "ge";
265
};
266
267
namespace comparison_zonemap_detail {
268
enum class Op {
269
    EQ,
270
    NE,
271
    LT,
272
    LE,
273
    GT,
274
    GE,
275
};
276
277
4
inline Op symmetric_op(Op op) {
278
4
    switch (op) {
279
0
    case Op::EQ:
280
0
    case Op::NE:
281
0
        return op;
282
2
    case Op::LT:
283
2
        return Op::GT;
284
0
    case Op::LE:
285
0
        return Op::GE;
286
0
    case Op::GT:
287
0
        return Op::LT;
288
2
    case Op::GE:
289
2
        return Op::LE;
290
4
    }
291
0
    __builtin_unreachable();
292
4
}
293
294
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
295
2.52k
                                    Op op) {
296
2.52k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
297
298
2.52k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal->slot_index,
299
2.52k
                                                              slot_literal->slot_type);
300
2.52k
    if (slot_type == nullptr) {
301
1
        return unsupported_zonemap_filter(ctx);
302
1
    }
303
2.52k
    auto zone_map_ptr = ctx.zone_map(slot_literal->slot_index);
304
2.52k
    if (zone_map_ptr == nullptr) {
305
29
        return unsupported_zonemap_filter(ctx);
306
29
    }
307
2.49k
    const auto& zone_map = *zone_map_ptr;
308
2.49k
    if (!zone_map.has_not_null) {
309
62
        return ZoneMapFilterResult::kNoMatch;
310
62
    }
311
2.43k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
312
98
        return unsupported_zonemap_filter(ctx);
313
98
    }
314
315
2.33k
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
316
2.33k
    const auto& literal = slot_literal->literal;
317
2.33k
    switch (effective_op) {
318
1.46k
    case Op::EQ:
319
1.46k
        return literal < zone_map.min_value || zone_map.max_value < literal
320
1.46k
                       ? ZoneMapFilterResult::kNoMatch
321
1.46k
                       : ZoneMapFilterResult::kMayMatch;
322
96
    case Op::NE:
323
96
        return zone_map.min_value == literal && zone_map.max_value == literal
324
96
                       ? ZoneMapFilterResult::kNoMatch
325
96
                       : ZoneMapFilterResult::kMayMatch;
326
194
    case Op::LT:
327
194
        return zone_map.min_value >= literal ? ZoneMapFilterResult::kNoMatch
328
194
                                             : ZoneMapFilterResult::kMayMatch;
329
180
    case Op::LE:
330
180
        return zone_map.min_value > literal ? ZoneMapFilterResult::kNoMatch
331
180
                                            : ZoneMapFilterResult::kMayMatch;
332
194
    case Op::GT:
333
194
        return zone_map.max_value <= literal ? ZoneMapFilterResult::kNoMatch
334
194
                                             : ZoneMapFilterResult::kMayMatch;
335
206
    case Op::GE:
336
206
        return zone_map.max_value < literal ? ZoneMapFilterResult::kNoMatch
337
206
                                            : ZoneMapFilterResult::kMayMatch;
338
2.33k
    }
339
340
    // keep this to avoid compile failure with g++.
341
0
    __builtin_unreachable();
342
2.33k
}
343
344
29.4k
inline bool can_evaluate(const VExprSPtrs& arguments) {
345
29.4k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
346
29.4k
    if (!slot_literal.has_value()) {
347
19.6k
        return false;
348
19.6k
    }
349
350
    // A NULL literal makes the comparison evaluate to NULL instead of a byte range predicate on
351
    // the slot. This zonemap evaluator only derives bounds from non-NULL literals, so reject this
352
    // shape here before evaluate_zonemap_filter is called.
353
9.79k
    if (slot_literal->literal.is_null()) {
354
4
        return false;
355
4
    }
356
357
9.78k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
358
9.78k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
359
9.78k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
360
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
361
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
362
        // values without running expression casts, so conservatively skip this optimization.
363
1
        return false;
364
1
    }
365
366
9.78k
    return true;
367
9.78k
}
368
369
31.9k
inline std::optional<Op> op_from_name(std::string_view name) {
370
31.9k
    if (name == NameEquals::name) {
371
14.9k
        return Op::EQ;
372
14.9k
    }
373
17.0k
    if (name == NameNotEquals::name) {
374
1.40k
        return Op::NE;
375
1.40k
    }
376
15.6k
    if (name == NameLess::name) {
377
3.78k
        return Op::LT;
378
3.78k
    }
379
11.8k
    if (name == NameLessOrEquals::name) {
380
2.29k
        return Op::LE;
381
2.29k
    }
382
9.56k
    if (name == NameGreater::name) {
383
5.36k
        return Op::GT;
384
5.36k
    }
385
4.24k
    if (name == NameGreaterOrEquals::name) {
386
4.24k
        return Op::GE;
387
4.24k
    }
388
18.4E
    return std::nullopt;
389
4.19k
}
390
} // namespace comparison_zonemap_detail
391
392
template <template <PrimitiveType> class Op, typename Name>
393
class FunctionComparison : public IFunction {
394
public:
395
    static constexpr auto name = Name::name;
396
265k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
396
241k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
396
1.19k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
396
4.93k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
396
6.55k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
396
3.02k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
396
8.27k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
397
398
265k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
398
241k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
398
1.19k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
398
4.93k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
398
6.55k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
398
3.02k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
398
8.27k
    FunctionComparison() = default;
399
400
649k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
400
642k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
400
614
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
400
1.94k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
400
1.72k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
400
1.14k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
400
835
    double execute_cost() const override { return 0.5; }
401
402
private:
403
    template <PrimitiveType PT>
404
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
405
51.0k
                            const ColumnPtr& col_right_ptr) const {
406
51.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
51.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
51.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
51.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
51.0k
        DCHECK(!(left_is_const && right_is_const));
413
414
51.0k
        if (!left_is_const && !right_is_const) {
415
8.78k
            auto col_res = ColumnUInt8::create();
416
417
8.78k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
8.78k
            vec_res.resize(col_left->get_data().size());
419
8.78k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
8.78k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
8.78k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
8.78k
                                                     vec_res);
423
424
8.78k
            block.replace_by_position(result, std::move(col_res));
425
42.2k
        } else if (!left_is_const && right_is_const) {
426
35.3k
            auto col_res = ColumnUInt8::create();
427
428
35.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
35.3k
            vec_res.resize(col_left->size());
430
35.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
35.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
35.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
35.3k
                                                       col_right->get_element(0), vec_res);
434
435
35.3k
            block.replace_by_position(result, std::move(col_res));
436
35.3k
        } else if (left_is_const && !right_is_const) {
437
6.87k
            auto col_res = ColumnUInt8::create();
438
439
6.87k
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
6.87k
            vec_res.resize(col_right->size());
441
6.87k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
6.87k
                              typename PrimitiveTypeTraits<PT>::CppType,
443
6.87k
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
6.87k
                                                       col_right->get_data(), vec_res);
445
446
6.87k
            block.replace_by_position(result, std::move(col_res));
447
6.87k
        }
448
51.0k
        return Status::OK();
449
51.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
100
                            const ColumnPtr& col_right_ptr) const {
406
100
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
100
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
100
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
100
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
100
        DCHECK(!(left_is_const && right_is_const));
413
414
100
        if (!left_is_const && !right_is_const) {
415
76
            auto col_res = ColumnUInt8::create();
416
417
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
76
            vec_res.resize(col_left->get_data().size());
419
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
76
                              typename PrimitiveTypeTraits<PT>::CppType,
421
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
76
                                                     vec_res);
423
424
76
            block.replace_by_position(result, std::move(col_res));
425
76
        } else if (!left_is_const && right_is_const) {
426
24
            auto col_res = ColumnUInt8::create();
427
428
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
24
            vec_res.resize(col_left->size());
430
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
24
                              typename PrimitiveTypeTraits<PT>::CppType,
432
24
                              Op<PT>>::vector_constant(col_left->get_data(),
433
24
                                                       col_right->get_element(0), vec_res);
434
435
24
            block.replace_by_position(result, std::move(col_res));
436
24
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
100
        return Status::OK();
449
100
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
570
                            const ColumnPtr& col_right_ptr) const {
406
570
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
570
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
570
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
570
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
570
        DCHECK(!(left_is_const && right_is_const));
413
414
570
        if (!left_is_const && !right_is_const) {
415
245
            auto col_res = ColumnUInt8::create();
416
417
245
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
245
            vec_res.resize(col_left->get_data().size());
419
245
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
245
                              typename PrimitiveTypeTraits<PT>::CppType,
421
245
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
245
                                                     vec_res);
423
424
245
            block.replace_by_position(result, std::move(col_res));
425
325
        } else if (!left_is_const && right_is_const) {
426
325
            auto col_res = ColumnUInt8::create();
427
428
325
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
325
            vec_res.resize(col_left->size());
430
325
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
325
                              typename PrimitiveTypeTraits<PT>::CppType,
432
325
                              Op<PT>>::vector_constant(col_left->get_data(),
433
325
                                                       col_right->get_element(0), vec_res);
434
435
325
            block.replace_by_position(result, std::move(col_res));
436
325
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
570
        return Status::OK();
449
570
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
461
                            const ColumnPtr& col_right_ptr) const {
406
461
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
461
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
461
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
461
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
461
        DCHECK(!(left_is_const && right_is_const));
413
414
461
        if (!left_is_const && !right_is_const) {
415
289
            auto col_res = ColumnUInt8::create();
416
417
289
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
289
            vec_res.resize(col_left->get_data().size());
419
289
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
289
                              typename PrimitiveTypeTraits<PT>::CppType,
421
289
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
289
                                                     vec_res);
423
424
289
            block.replace_by_position(result, std::move(col_res));
425
289
        } else if (!left_is_const && right_is_const) {
426
172
            auto col_res = ColumnUInt8::create();
427
428
172
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
172
            vec_res.resize(col_left->size());
430
172
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
172
                              typename PrimitiveTypeTraits<PT>::CppType,
432
172
                              Op<PT>>::vector_constant(col_left->get_data(),
433
172
                                                       col_right->get_element(0), vec_res);
434
435
172
            block.replace_by_position(result, std::move(col_res));
436
172
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
461
        return Status::OK();
449
461
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4
                            const ColumnPtr& col_right_ptr) const {
406
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4
        DCHECK(!(left_is_const && right_is_const));
413
414
4
        if (!left_is_const && !right_is_const) {
415
4
            auto col_res = ColumnUInt8::create();
416
417
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
4
            vec_res.resize(col_left->get_data().size());
419
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
4
                              typename PrimitiveTypeTraits<PT>::CppType,
421
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
4
                                                     vec_res);
423
424
4
            block.replace_by_position(result, std::move(col_res));
425
4
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
4
        return Status::OK();
449
4
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4.99k
                            const ColumnPtr& col_right_ptr) const {
406
4.99k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4.99k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4.99k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4.99k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4.99k
        DCHECK(!(left_is_const && right_is_const));
413
414
4.99k
        if (!left_is_const && !right_is_const) {
415
173
            auto col_res = ColumnUInt8::create();
416
417
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
173
            vec_res.resize(col_left->get_data().size());
419
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
173
                              typename PrimitiveTypeTraits<PT>::CppType,
421
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
173
                                                     vec_res);
423
424
173
            block.replace_by_position(result, std::move(col_res));
425
4.82k
        } else if (!left_is_const && right_is_const) {
426
4.55k
            auto col_res = ColumnUInt8::create();
427
428
4.55k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
4.55k
            vec_res.resize(col_left->size());
430
4.55k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
4.55k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
4.55k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
4.55k
                                                       col_right->get_element(0), vec_res);
434
435
4.55k
            block.replace_by_position(result, std::move(col_res));
436
4.55k
        } else if (left_is_const && !right_is_const) {
437
264
            auto col_res = ColumnUInt8::create();
438
439
264
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
264
            vec_res.resize(col_right->size());
441
264
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
264
                              typename PrimitiveTypeTraits<PT>::CppType,
443
264
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
264
                                                       col_right->get_data(), vec_res);
445
446
264
            block.replace_by_position(result, std::move(col_res));
447
264
        }
448
4.99k
        return Status::OK();
449
4.99k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
380
                            const ColumnPtr& col_right_ptr) const {
406
380
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
380
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
380
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
380
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
380
        DCHECK(!(left_is_const && right_is_const));
413
414
380
        if (!left_is_const && !right_is_const) {
415
77
            auto col_res = ColumnUInt8::create();
416
417
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
77
            vec_res.resize(col_left->get_data().size());
419
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
77
                              typename PrimitiveTypeTraits<PT>::CppType,
421
77
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
77
                                                     vec_res);
423
424
77
            block.replace_by_position(result, std::move(col_res));
425
303
        } else if (!left_is_const && right_is_const) {
426
268
            auto col_res = ColumnUInt8::create();
427
428
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
268
            vec_res.resize(col_left->size());
430
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
268
                              typename PrimitiveTypeTraits<PT>::CppType,
432
268
                              Op<PT>>::vector_constant(col_left->get_data(),
433
268
                                                       col_right->get_element(0), vec_res);
434
435
268
            block.replace_by_position(result, std::move(col_res));
436
268
        } else if (left_is_const && !right_is_const) {
437
36
            auto col_res = ColumnUInt8::create();
438
439
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
36
            vec_res.resize(col_right->size());
441
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
36
                              typename PrimitiveTypeTraits<PT>::CppType,
443
36
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
36
                                                       col_right->get_data(), vec_res);
445
446
36
            block.replace_by_position(result, std::move(col_res));
447
36
        }
448
380
        return Status::OK();
449
380
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.94k
                            const ColumnPtr& col_right_ptr) const {
406
1.94k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.94k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.94k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.94k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.94k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.94k
        if (!left_is_const && !right_is_const) {
415
260
            auto col_res = ColumnUInt8::create();
416
417
260
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
260
            vec_res.resize(col_left->get_data().size());
419
260
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
260
                              typename PrimitiveTypeTraits<PT>::CppType,
421
260
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
260
                                                     vec_res);
423
424
260
            block.replace_by_position(result, std::move(col_res));
425
1.68k
        } else if (!left_is_const && right_is_const) {
426
1.54k
            auto col_res = ColumnUInt8::create();
427
428
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.54k
            vec_res.resize(col_left->size());
430
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.54k
                                                       col_right->get_element(0), vec_res);
434
435
1.54k
            block.replace_by_position(result, std::move(col_res));
436
1.54k
        } else if (left_is_const && !right_is_const) {
437
142
            auto col_res = ColumnUInt8::create();
438
439
142
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
142
            vec_res.resize(col_right->size());
441
142
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
142
                              typename PrimitiveTypeTraits<PT>::CppType,
443
142
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
142
                                                       col_right->get_data(), vec_res);
445
446
142
            block.replace_by_position(result, std::move(col_res));
447
142
        }
448
1.94k
        return Status::OK();
449
1.94k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.43k
                            const ColumnPtr& col_right_ptr) const {
406
1.43k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.43k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.43k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.43k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.43k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.43k
        if (!left_is_const && !right_is_const) {
415
160
            auto col_res = ColumnUInt8::create();
416
417
160
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
160
            vec_res.resize(col_left->get_data().size());
419
160
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
160
                              typename PrimitiveTypeTraits<PT>::CppType,
421
160
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
160
                                                     vec_res);
423
424
160
            block.replace_by_position(result, std::move(col_res));
425
1.27k
        } else if (!left_is_const && right_is_const) {
426
772
            auto col_res = ColumnUInt8::create();
427
428
772
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
772
            vec_res.resize(col_left->size());
430
772
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
772
                              typename PrimitiveTypeTraits<PT>::CppType,
432
772
                              Op<PT>>::vector_constant(col_left->get_data(),
433
772
                                                       col_right->get_element(0), vec_res);
434
435
772
            block.replace_by_position(result, std::move(col_res));
436
772
        } else if (left_is_const && !right_is_const) {
437
499
            auto col_res = ColumnUInt8::create();
438
439
499
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
499
            vec_res.resize(col_right->size());
441
499
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
499
                              typename PrimitiveTypeTraits<PT>::CppType,
443
499
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
499
                                                       col_right->get_data(), vec_res);
445
446
499
            block.replace_by_position(result, std::move(col_res));
447
499
        }
448
1.43k
        return Status::OK();
449
1.43k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
120
                            const ColumnPtr& col_right_ptr) const {
406
120
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
120
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
120
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
120
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
120
        DCHECK(!(left_is_const && right_is_const));
413
414
120
        if (!left_is_const && !right_is_const) {
415
85
            auto col_res = ColumnUInt8::create();
416
417
85
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
85
            vec_res.resize(col_left->get_data().size());
419
85
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
85
                              typename PrimitiveTypeTraits<PT>::CppType,
421
85
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
85
                                                     vec_res);
423
424
85
            block.replace_by_position(result, std::move(col_res));
425
85
        } else if (!left_is_const && right_is_const) {
426
27
            auto col_res = ColumnUInt8::create();
427
428
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
27
            vec_res.resize(col_left->size());
430
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
27
                              typename PrimitiveTypeTraits<PT>::CppType,
432
27
                              Op<PT>>::vector_constant(col_left->get_data(),
433
27
                                                       col_right->get_element(0), vec_res);
434
435
27
            block.replace_by_position(result, std::move(col_res));
436
27
        } else if (left_is_const && !right_is_const) {
437
8
            auto col_res = ColumnUInt8::create();
438
439
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
8
            vec_res.resize(col_right->size());
441
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
8
                              typename PrimitiveTypeTraits<PT>::CppType,
443
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
8
                                                       col_right->get_data(), vec_res);
445
446
8
            block.replace_by_position(result, std::move(col_res));
447
8
        }
448
120
        return Status::OK();
449
120
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
31
                            const ColumnPtr& col_right_ptr) const {
406
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
31
        DCHECK(!(left_is_const && right_is_const));
413
414
31
        if (!left_is_const && !right_is_const) {
415
16
            auto col_res = ColumnUInt8::create();
416
417
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
16
            vec_res.resize(col_left->get_data().size());
419
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
16
                              typename PrimitiveTypeTraits<PT>::CppType,
421
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
16
                                                     vec_res);
423
424
16
            block.replace_by_position(result, std::move(col_res));
425
16
        } else if (!left_is_const && right_is_const) {
426
15
            auto col_res = ColumnUInt8::create();
427
428
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
15
            vec_res.resize(col_left->size());
430
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
15
                              typename PrimitiveTypeTraits<PT>::CppType,
432
15
                              Op<PT>>::vector_constant(col_left->get_data(),
433
15
                                                       col_right->get_element(0), vec_res);
434
435
15
            block.replace_by_position(result, std::move(col_res));
436
15
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
31
        return Status::OK();
449
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
30
                            const ColumnPtr& col_right_ptr) const {
406
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
30
        DCHECK(!(left_is_const && right_is_const));
413
414
30
        if (!left_is_const && !right_is_const) {
415
24
            auto col_res = ColumnUInt8::create();
416
417
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
24
            vec_res.resize(col_left->get_data().size());
419
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
24
                              typename PrimitiveTypeTraits<PT>::CppType,
421
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
24
                                                     vec_res);
423
424
24
            block.replace_by_position(result, std::move(col_res));
425
24
        } else if (!left_is_const && right_is_const) {
426
6
            auto col_res = ColumnUInt8::create();
427
428
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
6
            vec_res.resize(col_left->size());
430
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
6
                              typename PrimitiveTypeTraits<PT>::CppType,
432
6
                              Op<PT>>::vector_constant(col_left->get_data(),
433
6
                                                       col_right->get_element(0), vec_res);
434
435
6
            block.replace_by_position(result, std::move(col_res));
436
6
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
30
        return Status::OK();
449
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
111
                            const ColumnPtr& col_right_ptr) const {
406
111
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
111
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
111
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
111
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
111
        DCHECK(!(left_is_const && right_is_const));
413
414
111
        if (!left_is_const && !right_is_const) {
415
111
            auto col_res = ColumnUInt8::create();
416
417
111
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
111
            vec_res.resize(col_left->get_data().size());
419
111
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
111
                              typename PrimitiveTypeTraits<PT>::CppType,
421
111
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
111
                                                     vec_res);
423
424
111
            block.replace_by_position(result, std::move(col_res));
425
111
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
111
        return Status::OK();
449
111
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
314
                            const ColumnPtr& col_right_ptr) const {
406
314
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
314
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
314
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
314
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
314
        DCHECK(!(left_is_const && right_is_const));
413
414
314
        if (!left_is_const && !right_is_const) {
415
113
            auto col_res = ColumnUInt8::create();
416
417
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
113
            vec_res.resize(col_left->get_data().size());
419
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
113
                              typename PrimitiveTypeTraits<PT>::CppType,
421
113
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
113
                                                     vec_res);
423
424
113
            block.replace_by_position(result, std::move(col_res));
425
201
        } else if (!left_is_const && right_is_const) {
426
201
            auto col_res = ColumnUInt8::create();
427
428
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
201
            vec_res.resize(col_left->size());
430
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
201
                              typename PrimitiveTypeTraits<PT>::CppType,
432
201
                              Op<PT>>::vector_constant(col_left->get_data(),
433
201
                                                       col_right->get_element(0), vec_res);
434
435
201
            block.replace_by_position(result, std::move(col_res));
436
201
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
314
        return Status::OK();
449
314
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4
                            const ColumnPtr& col_right_ptr) const {
406
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4
        DCHECK(!(left_is_const && right_is_const));
413
414
4
        if (!left_is_const && !right_is_const) {
415
4
            auto col_res = ColumnUInt8::create();
416
417
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
4
            vec_res.resize(col_left->get_data().size());
419
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
4
                              typename PrimitiveTypeTraits<PT>::CppType,
421
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
4
                                                     vec_res);
423
424
4
            block.replace_by_position(result, std::move(col_res));
425
4
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
4
        return Status::OK();
449
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
70
                            const ColumnPtr& col_right_ptr) const {
406
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
70
        DCHECK(!(left_is_const && right_is_const));
413
414
70
        if (!left_is_const && !right_is_const) {
415
39
            auto col_res = ColumnUInt8::create();
416
417
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
39
            vec_res.resize(col_left->get_data().size());
419
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
39
                              typename PrimitiveTypeTraits<PT>::CppType,
421
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
39
                                                     vec_res);
423
424
39
            block.replace_by_position(result, std::move(col_res));
425
39
        } else if (!left_is_const && right_is_const) {
426
31
            auto col_res = ColumnUInt8::create();
427
428
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
31
            vec_res.resize(col_left->size());
430
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
31
                              typename PrimitiveTypeTraits<PT>::CppType,
432
31
                              Op<PT>>::vector_constant(col_left->get_data(),
433
31
                                                       col_right->get_element(0), vec_res);
434
435
31
            block.replace_by_position(result, std::move(col_res));
436
31
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
70
        return Status::OK();
449
70
    }
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
405
84
                            const ColumnPtr& col_right_ptr) const {
406
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
84
        DCHECK(!(left_is_const && right_is_const));
413
414
84
        if (!left_is_const && !right_is_const) {
415
56
            auto col_res = ColumnUInt8::create();
416
417
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
56
            vec_res.resize(col_left->get_data().size());
419
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
56
                              typename PrimitiveTypeTraits<PT>::CppType,
421
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
56
                                                     vec_res);
423
424
56
            block.replace_by_position(result, std::move(col_res));
425
56
        } else if (!left_is_const && right_is_const) {
426
28
            auto col_res = ColumnUInt8::create();
427
428
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
28
            vec_res.resize(col_left->size());
430
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
28
                              typename PrimitiveTypeTraits<PT>::CppType,
432
28
                              Op<PT>>::vector_constant(col_left->get_data(),
433
28
                                                       col_right->get_element(0), vec_res);
434
435
28
            block.replace_by_position(result, std::move(col_res));
436
28
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
84
        return Status::OK();
449
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
405
1.43k
                            const ColumnPtr& col_right_ptr) const {
406
1.43k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.43k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.43k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.43k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.43k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.43k
        if (!left_is_const && !right_is_const) {
415
1.15k
            auto col_res = ColumnUInt8::create();
416
417
1.15k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1.15k
            vec_res.resize(col_left->get_data().size());
419
1.15k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1.15k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1.15k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1.15k
                                                     vec_res);
423
424
1.15k
            block.replace_by_position(result, std::move(col_res));
425
1.15k
        } else if (!left_is_const && right_is_const) {
426
279
            auto col_res = ColumnUInt8::create();
427
428
279
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
279
            vec_res.resize(col_left->size());
430
279
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
279
                              typename PrimitiveTypeTraits<PT>::CppType,
432
279
                              Op<PT>>::vector_constant(col_left->get_data(),
433
279
                                                       col_right->get_element(0), vec_res);
434
435
279
            block.replace_by_position(result, std::move(col_res));
436
279
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.43k
        return Status::OK();
449
1.43k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.20k
                            const ColumnPtr& col_right_ptr) const {
406
1.20k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.20k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.20k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.20k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.20k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.20k
        if (!left_is_const && !right_is_const) {
415
377
            auto col_res = ColumnUInt8::create();
416
417
377
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
377
            vec_res.resize(col_left->get_data().size());
419
377
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
377
                              typename PrimitiveTypeTraits<PT>::CppType,
421
377
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
377
                                                     vec_res);
423
424
377
            block.replace_by_position(result, std::move(col_res));
425
826
        } else if (!left_is_const && right_is_const) {
426
24
            auto col_res = ColumnUInt8::create();
427
428
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
24
            vec_res.resize(col_left->size());
430
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
24
                              typename PrimitiveTypeTraits<PT>::CppType,
432
24
                              Op<PT>>::vector_constant(col_left->get_data(),
433
24
                                                       col_right->get_element(0), vec_res);
434
435
24
            block.replace_by_position(result, std::move(col_res));
436
802
        } else if (left_is_const && !right_is_const) {
437
802
            auto col_res = ColumnUInt8::create();
438
439
802
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
802
            vec_res.resize(col_right->size());
441
802
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
802
                              typename PrimitiveTypeTraits<PT>::CppType,
443
802
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
802
                                                       col_right->get_data(), vec_res);
445
446
802
            block.replace_by_position(result, std::move(col_res));
447
802
        }
448
1.20k
        return Status::OK();
449
1.20k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
48
                            const ColumnPtr& col_right_ptr) const {
406
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
48
        DCHECK(!(left_is_const && right_is_const));
413
414
48
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
28
        } else if (!left_is_const && right_is_const) {
426
28
            auto col_res = ColumnUInt8::create();
427
428
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
28
            vec_res.resize(col_left->size());
430
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
28
                              typename PrimitiveTypeTraits<PT>::CppType,
432
28
                              Op<PT>>::vector_constant(col_left->get_data(),
433
28
                                                       col_right->get_element(0), vec_res);
434
435
28
            block.replace_by_position(result, std::move(col_res));
436
28
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
48
        return Status::OK();
449
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
60
                            const ColumnPtr& col_right_ptr) const {
406
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
60
        DCHECK(!(left_is_const && right_is_const));
413
414
60
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
40
        } else if (!left_is_const && right_is_const) {
426
40
            auto col_res = ColumnUInt8::create();
427
428
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
40
            vec_res.resize(col_left->size());
430
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
40
                              typename PrimitiveTypeTraits<PT>::CppType,
432
40
                              Op<PT>>::vector_constant(col_left->get_data(),
433
40
                                                       col_right->get_element(0), vec_res);
434
435
40
            block.replace_by_position(result, std::move(col_res));
436
40
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
60
        return Status::OK();
449
60
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.26k
                            const ColumnPtr& col_right_ptr) const {
406
1.26k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.26k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.26k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.26k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.26k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.26k
        if (!left_is_const && !right_is_const) {
415
1.22k
            auto col_res = ColumnUInt8::create();
416
417
1.22k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1.22k
            vec_res.resize(col_left->get_data().size());
419
1.22k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1.22k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1.22k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1.22k
                                                     vec_res);
423
424
1.22k
            block.replace_by_position(result, std::move(col_res));
425
1.22k
        } else if (!left_is_const && right_is_const) {
426
41
            auto col_res = ColumnUInt8::create();
427
428
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
41
            vec_res.resize(col_left->size());
430
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
41
                              typename PrimitiveTypeTraits<PT>::CppType,
432
41
                              Op<PT>>::vector_constant(col_left->get_data(),
433
41
                                                       col_right->get_element(0), vec_res);
434
435
41
            block.replace_by_position(result, std::move(col_res));
436
41
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1.26k
        return Status::OK();
449
1.26k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2
                            const ColumnPtr& col_right_ptr) const {
406
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2
        DCHECK(!(left_is_const && right_is_const));
413
414
2
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
2
        } else if (!left_is_const && right_is_const) {
426
2
            auto col_res = ColumnUInt8::create();
427
428
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
2
            vec_res.resize(col_left->size());
430
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
2
                              typename PrimitiveTypeTraits<PT>::CppType,
432
2
                              Op<PT>>::vector_constant(col_left->get_data(),
433
2
                                                       col_right->get_element(0), vec_res);
434
435
2
            block.replace_by_position(result, std::move(col_res));
436
2
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2
        return Status::OK();
449
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
3
                            const ColumnPtr& col_right_ptr) const {
406
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
3
        DCHECK(!(left_is_const && right_is_const));
413
414
3
        if (!left_is_const && !right_is_const) {
415
3
            auto col_res = ColumnUInt8::create();
416
417
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
3
            vec_res.resize(col_left->get_data().size());
419
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
3
                              typename PrimitiveTypeTraits<PT>::CppType,
421
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
3
                                                     vec_res);
423
424
3
            block.replace_by_position(result, std::move(col_res));
425
3
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
3
        return Status::OK();
449
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.29k
                            const ColumnPtr& col_right_ptr) const {
406
1.29k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.29k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.29k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.29k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.29k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.29k
        if (!left_is_const && !right_is_const) {
415
38
            auto col_res = ColumnUInt8::create();
416
417
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
38
            vec_res.resize(col_left->get_data().size());
419
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
38
                              typename PrimitiveTypeTraits<PT>::CppType,
421
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
38
                                                     vec_res);
423
424
38
            block.replace_by_position(result, std::move(col_res));
425
1.26k
        } else if (!left_is_const && right_is_const) {
426
1.03k
            auto col_res = ColumnUInt8::create();
427
428
1.03k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.03k
            vec_res.resize(col_left->size());
430
1.03k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.03k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.03k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.03k
                                                       col_right->get_element(0), vec_res);
434
435
1.03k
            block.replace_by_position(result, std::move(col_res));
436
1.03k
        } else if (left_is_const && !right_is_const) {
437
228
            auto col_res = ColumnUInt8::create();
438
439
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
228
            vec_res.resize(col_right->size());
441
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
228
                              typename PrimitiveTypeTraits<PT>::CppType,
443
228
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
228
                                                       col_right->get_data(), vec_res);
445
446
228
            block.replace_by_position(result, std::move(col_res));
447
228
        }
448
1.29k
        return Status::OK();
449
1.29k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.77k
                            const ColumnPtr& col_right_ptr) const {
406
1.77k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.77k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.77k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.77k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.77k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.77k
        if (!left_is_const && !right_is_const) {
415
112
            auto col_res = ColumnUInt8::create();
416
417
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
112
            vec_res.resize(col_left->get_data().size());
419
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
112
                              typename PrimitiveTypeTraits<PT>::CppType,
421
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
112
                                                     vec_res);
423
424
112
            block.replace_by_position(result, std::move(col_res));
425
1.66k
        } else if (!left_is_const && right_is_const) {
426
1.45k
            auto col_res = ColumnUInt8::create();
427
428
1.45k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.45k
            vec_res.resize(col_left->size());
430
1.45k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.45k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.45k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.45k
                                                       col_right->get_element(0), vec_res);
434
435
1.45k
            block.replace_by_position(result, std::move(col_res));
436
1.45k
        } else if (left_is_const && !right_is_const) {
437
216
            auto col_res = ColumnUInt8::create();
438
439
216
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
216
            vec_res.resize(col_right->size());
441
216
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
216
                              typename PrimitiveTypeTraits<PT>::CppType,
443
216
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
216
                                                       col_right->get_data(), vec_res);
445
446
216
            block.replace_by_position(result, std::move(col_res));
447
216
        }
448
1.77k
        return Status::OK();
449
1.77k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
12.9k
                            const ColumnPtr& col_right_ptr) const {
406
12.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
12.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
12.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
12.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
12.9k
        DCHECK(!(left_is_const && right_is_const));
413
414
12.9k
        if (!left_is_const && !right_is_const) {
415
49
            auto col_res = ColumnUInt8::create();
416
417
49
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
49
            vec_res.resize(col_left->get_data().size());
419
49
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
49
                              typename PrimitiveTypeTraits<PT>::CppType,
421
49
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
49
                                                     vec_res);
423
424
49
            block.replace_by_position(result, std::move(col_res));
425
12.9k
        } else if (!left_is_const && right_is_const) {
426
9.57k
            auto col_res = ColumnUInt8::create();
427
428
9.57k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
9.57k
            vec_res.resize(col_left->size());
430
9.57k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
9.57k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
9.57k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
9.57k
                                                       col_right->get_element(0), vec_res);
434
435
9.57k
            block.replace_by_position(result, std::move(col_res));
436
9.57k
        } else if (left_is_const && !right_is_const) {
437
3.33k
            auto col_res = ColumnUInt8::create();
438
439
3.33k
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
3.33k
            vec_res.resize(col_right->size());
441
3.33k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
3.33k
                              typename PrimitiveTypeTraits<PT>::CppType,
443
3.33k
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
3.33k
                                                       col_right->get_data(), vec_res);
445
446
3.33k
            block.replace_by_position(result, std::move(col_res));
447
3.33k
        }
448
12.9k
        return Status::OK();
449
12.9k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.76k
                            const ColumnPtr& col_right_ptr) const {
406
1.76k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.76k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.76k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.76k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.76k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.76k
        if (!left_is_const && !right_is_const) {
415
64
            auto col_res = ColumnUInt8::create();
416
417
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
64
            vec_res.resize(col_left->get_data().size());
419
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
64
                              typename PrimitiveTypeTraits<PT>::CppType,
421
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
64
                                                     vec_res);
423
424
64
            block.replace_by_position(result, std::move(col_res));
425
1.70k
        } else if (!left_is_const && right_is_const) {
426
1.20k
            auto col_res = ColumnUInt8::create();
427
428
1.20k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.20k
            vec_res.resize(col_left->size());
430
1.20k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.20k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.20k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.20k
                                                       col_right->get_element(0), vec_res);
434
435
1.20k
            block.replace_by_position(result, std::move(col_res));
436
1.20k
        } else if (left_is_const && !right_is_const) {
437
500
            auto col_res = ColumnUInt8::create();
438
439
500
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
500
            vec_res.resize(col_right->size());
441
500
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
500
                              typename PrimitiveTypeTraits<PT>::CppType,
443
500
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
500
                                                       col_right->get_data(), vec_res);
445
446
500
            block.replace_by_position(result, std::move(col_res));
447
500
        }
448
1.76k
        return Status::OK();
449
1.76k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
233
                            const ColumnPtr& col_right_ptr) const {
406
233
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
233
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
233
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
233
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
233
        DCHECK(!(left_is_const && right_is_const));
413
414
233
        if (!left_is_const && !right_is_const) {
415
2
            auto col_res = ColumnUInt8::create();
416
417
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
2
            vec_res.resize(col_left->get_data().size());
419
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
2
                              typename PrimitiveTypeTraits<PT>::CppType,
421
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
2
                                                     vec_res);
423
424
2
            block.replace_by_position(result, std::move(col_res));
425
231
        } else if (!left_is_const && right_is_const) {
426
201
            auto col_res = ColumnUInt8::create();
427
428
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
201
            vec_res.resize(col_left->size());
430
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
201
                              typename PrimitiveTypeTraits<PT>::CppType,
432
201
                              Op<PT>>::vector_constant(col_left->get_data(),
433
201
                                                       col_right->get_element(0), vec_res);
434
435
201
            block.replace_by_position(result, std::move(col_res));
436
201
        } else if (left_is_const && !right_is_const) {
437
30
            auto col_res = ColumnUInt8::create();
438
439
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
30
            vec_res.resize(col_right->size());
441
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
30
                              typename PrimitiveTypeTraits<PT>::CppType,
443
30
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
30
                                                       col_right->get_data(), vec_res);
445
446
30
            block.replace_by_position(result, std::move(col_res));
447
30
        }
448
233
        return Status::OK();
449
233
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4
                            const ColumnPtr& col_right_ptr) const {
406
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4
        DCHECK(!(left_is_const && right_is_const));
413
414
4
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
3
        } else if (!left_is_const && right_is_const) {
426
3
            auto col_res = ColumnUInt8::create();
427
428
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
3
            vec_res.resize(col_left->size());
430
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
3
                              typename PrimitiveTypeTraits<PT>::CppType,
432
3
                              Op<PT>>::vector_constant(col_left->get_data(),
433
3
                                                       col_right->get_element(0), vec_res);
434
435
3
            block.replace_by_position(result, std::move(col_res));
436
3
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
4
        return Status::OK();
449
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
220
                            const ColumnPtr& col_right_ptr) const {
406
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
220
        DCHECK(!(left_is_const && right_is_const));
413
414
220
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
200
        } else if (!left_is_const && right_is_const) {
426
200
            auto col_res = ColumnUInt8::create();
427
428
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
200
            vec_res.resize(col_left->size());
430
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
200
                              typename PrimitiveTypeTraits<PT>::CppType,
432
200
                              Op<PT>>::vector_constant(col_left->get_data(),
433
200
                                                       col_right->get_element(0), vec_res);
434
435
200
            block.replace_by_position(result, std::move(col_res));
436
200
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
220
        return Status::OK();
449
220
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
535
                            const ColumnPtr& col_right_ptr) const {
406
535
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
535
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
535
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
535
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
535
        DCHECK(!(left_is_const && right_is_const));
413
414
535
        if (!left_is_const && !right_is_const) {
415
27
            auto col_res = ColumnUInt8::create();
416
417
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
27
            vec_res.resize(col_left->get_data().size());
419
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
27
                              typename PrimitiveTypeTraits<PT>::CppType,
421
27
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
27
                                                     vec_res);
423
424
27
            block.replace_by_position(result, std::move(col_res));
425
508
        } else if (!left_is_const && right_is_const) {
426
508
            auto col_res = ColumnUInt8::create();
427
428
508
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
508
            vec_res.resize(col_left->size());
430
508
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
508
                              typename PrimitiveTypeTraits<PT>::CppType,
432
508
                              Op<PT>>::vector_constant(col_left->get_data(),
433
508
                                                       col_right->get_element(0), vec_res);
434
435
508
            block.replace_by_position(result, std::move(col_res));
436
508
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
535
        return Status::OK();
449
535
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
14
                            const ColumnPtr& col_right_ptr) const {
406
14
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
14
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
14
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
14
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
14
        DCHECK(!(left_is_const && right_is_const));
413
414
14
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
14
        } else if (!left_is_const && right_is_const) {
426
14
            auto col_res = ColumnUInt8::create();
427
428
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
14
            vec_res.resize(col_left->size());
430
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
14
                              typename PrimitiveTypeTraits<PT>::CppType,
432
14
                              Op<PT>>::vector_constant(col_left->get_data(),
433
14
                                                       col_right->get_element(0), vec_res);
434
435
14
            block.replace_by_position(result, std::move(col_res));
436
14
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
14
        return Status::OK();
449
14
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
497
                            const ColumnPtr& col_right_ptr) const {
406
497
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
497
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
497
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
497
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
497
        DCHECK(!(left_is_const && right_is_const));
413
414
497
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
496
        } else if (!left_is_const && right_is_const) {
426
490
            auto col_res = ColumnUInt8::create();
427
428
490
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
490
            vec_res.resize(col_left->size());
430
490
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
490
                              typename PrimitiveTypeTraits<PT>::CppType,
432
490
                              Op<PT>>::vector_constant(col_left->get_data(),
433
490
                                                       col_right->get_element(0), vec_res);
434
435
490
            block.replace_by_position(result, std::move(col_res));
436
490
        } else if (left_is_const && !right_is_const) {
437
6
            auto col_res = ColumnUInt8::create();
438
439
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
6
            vec_res.resize(col_right->size());
441
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
6
                              typename PrimitiveTypeTraits<PT>::CppType,
443
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
6
                                                       col_right->get_data(), vec_res);
445
446
6
            block.replace_by_position(result, std::move(col_res));
447
6
        }
448
497
        return Status::OK();
449
497
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
142
                            const ColumnPtr& col_right_ptr) const {
406
142
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
142
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
142
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
142
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
142
        DCHECK(!(left_is_const && right_is_const));
413
414
142
        if (!left_is_const && !right_is_const) {
415
6
            auto col_res = ColumnUInt8::create();
416
417
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
6
            vec_res.resize(col_left->get_data().size());
419
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
6
                              typename PrimitiveTypeTraits<PT>::CppType,
421
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
6
                                                     vec_res);
423
424
6
            block.replace_by_position(result, std::move(col_res));
425
136
        } else if (!left_is_const && right_is_const) {
426
136
            auto col_res = ColumnUInt8::create();
427
428
136
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
136
            vec_res.resize(col_left->size());
430
136
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
136
                              typename PrimitiveTypeTraits<PT>::CppType,
432
136
                              Op<PT>>::vector_constant(col_left->get_data(),
433
136
                                                       col_right->get_element(0), vec_res);
434
435
136
            block.replace_by_position(result, std::move(col_res));
436
136
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
142
        return Status::OK();
449
142
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
3
                            const ColumnPtr& col_right_ptr) const {
406
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
3
        DCHECK(!(left_is_const && right_is_const));
413
414
3
        if (!left_is_const && !right_is_const) {
415
3
            auto col_res = ColumnUInt8::create();
416
417
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
3
            vec_res.resize(col_left->get_data().size());
419
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
3
                              typename PrimitiveTypeTraits<PT>::CppType,
421
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
3
                                                     vec_res);
423
424
3
            block.replace_by_position(result, std::move(col_res));
425
3
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
3
        return Status::OK();
449
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
75
                            const ColumnPtr& col_right_ptr) const {
406
75
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
75
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
75
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
75
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
75
        DCHECK(!(left_is_const && right_is_const));
413
414
75
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
75
        } else if (!left_is_const && right_is_const) {
426
75
            auto col_res = ColumnUInt8::create();
427
428
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
75
            vec_res.resize(col_left->size());
430
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
75
                              typename PrimitiveTypeTraits<PT>::CppType,
432
75
                              Op<PT>>::vector_constant(col_left->get_data(),
433
75
                                                       col_right->get_element(0), vec_res);
434
435
75
            block.replace_by_position(result, std::move(col_res));
436
75
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
75
        return Status::OK();
449
75
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
71
                            const ColumnPtr& col_right_ptr) const {
406
71
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
71
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
71
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
71
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
71
        DCHECK(!(left_is_const && right_is_const));
413
414
71
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
71
        } else if (!left_is_const && right_is_const) {
426
71
            auto col_res = ColumnUInt8::create();
427
428
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
71
            vec_res.resize(col_left->size());
430
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
71
                              typename PrimitiveTypeTraits<PT>::CppType,
432
71
                              Op<PT>>::vector_constant(col_left->get_data(),
433
71
                                                       col_right->get_element(0), vec_res);
434
435
71
            block.replace_by_position(result, std::move(col_res));
436
71
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
71
        return Status::OK();
449
71
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
737
                            const ColumnPtr& col_right_ptr) const {
406
737
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
737
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
737
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
737
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
737
        DCHECK(!(left_is_const && right_is_const));
413
414
737
        if (!left_is_const && !right_is_const) {
415
5
            auto col_res = ColumnUInt8::create();
416
417
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
5
            vec_res.resize(col_left->get_data().size());
419
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
5
                              typename PrimitiveTypeTraits<PT>::CppType,
421
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
5
                                                     vec_res);
423
424
5
            block.replace_by_position(result, std::move(col_res));
425
732
        } else if (!left_is_const && right_is_const) {
426
732
            auto col_res = ColumnUInt8::create();
427
428
732
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
732
            vec_res.resize(col_left->size());
430
732
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
732
                              typename PrimitiveTypeTraits<PT>::CppType,
432
732
                              Op<PT>>::vector_constant(col_left->get_data(),
433
732
                                                       col_right->get_element(0), vec_res);
434
435
732
            block.replace_by_position(result, std::move(col_res));
436
732
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
737
        return Status::OK();
449
737
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
227
                            const ColumnPtr& col_right_ptr) const {
406
227
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
227
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
227
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
227
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
227
        DCHECK(!(left_is_const && right_is_const));
413
414
227
        if (!left_is_const && !right_is_const) {
415
9
            auto col_res = ColumnUInt8::create();
416
417
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
9
            vec_res.resize(col_left->get_data().size());
419
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
9
                              typename PrimitiveTypeTraits<PT>::CppType,
421
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
9
                                                     vec_res);
423
424
9
            block.replace_by_position(result, std::move(col_res));
425
218
        } else if (!left_is_const && right_is_const) {
426
218
            auto col_res = ColumnUInt8::create();
427
428
218
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
218
            vec_res.resize(col_left->size());
430
218
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
218
                              typename PrimitiveTypeTraits<PT>::CppType,
432
218
                              Op<PT>>::vector_constant(col_left->get_data(),
433
218
                                                       col_right->get_element(0), vec_res);
434
435
218
            block.replace_by_position(result, std::move(col_res));
436
218
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
227
        return Status::OK();
449
227
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
25
                            const ColumnPtr& col_right_ptr) const {
406
25
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
25
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
25
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
25
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
25
        DCHECK(!(left_is_const && right_is_const));
413
414
25
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
25
        } else if (!left_is_const && right_is_const) {
426
25
            auto col_res = ColumnUInt8::create();
427
428
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
25
            vec_res.resize(col_left->size());
430
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
25
                              typename PrimitiveTypeTraits<PT>::CppType,
432
25
                              Op<PT>>::vector_constant(col_left->get_data(),
433
25
                                                       col_right->get_element(0), vec_res);
434
435
25
            block.replace_by_position(result, std::move(col_res));
436
25
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
25
        return Status::OK();
449
25
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
11
                            const ColumnPtr& col_right_ptr) const {
406
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
11
        DCHECK(!(left_is_const && right_is_const));
413
414
11
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
10
        } else if (!left_is_const && right_is_const) {
426
10
            auto col_res = ColumnUInt8::create();
427
428
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
10
            vec_res.resize(col_left->size());
430
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
10
                              typename PrimitiveTypeTraits<PT>::CppType,
432
10
                              Op<PT>>::vector_constant(col_left->get_data(),
433
10
                                                       col_right->get_element(0), vec_res);
434
435
10
            block.replace_by_position(result, std::move(col_res));
436
10
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
11
        return Status::OK();
449
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1
                            const ColumnPtr& col_right_ptr) const {
406
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1
        DCHECK(!(left_is_const && right_is_const));
413
414
1
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
1
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
1
        return Status::OK();
449
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
24
                            const ColumnPtr& col_right_ptr) const {
406
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
24
        DCHECK(!(left_is_const && right_is_const));
413
414
24
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
20
        } else if (!left_is_const && right_is_const) {
426
4
            auto col_res = ColumnUInt8::create();
427
428
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
4
            vec_res.resize(col_left->size());
430
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
4
                              typename PrimitiveTypeTraits<PT>::CppType,
432
4
                              Op<PT>>::vector_constant(col_left->get_data(),
433
4
                                                       col_right->get_element(0), vec_res);
434
435
4
            block.replace_by_position(result, std::move(col_res));
436
4
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
24
        return Status::OK();
449
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
169
                            const ColumnPtr& col_right_ptr) const {
406
169
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
169
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
169
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
169
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
169
        DCHECK(!(left_is_const && right_is_const));
413
414
169
        if (!left_is_const && !right_is_const) {
415
21
            auto col_res = ColumnUInt8::create();
416
417
21
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
21
            vec_res.resize(col_left->get_data().size());
419
21
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
21
                              typename PrimitiveTypeTraits<PT>::CppType,
421
21
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
21
                                                     vec_res);
423
424
21
            block.replace_by_position(result, std::move(col_res));
425
148
        } else if (!left_is_const && right_is_const) {
426
148
            auto col_res = ColumnUInt8::create();
427
428
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
148
            vec_res.resize(col_left->size());
430
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
148
                              typename PrimitiveTypeTraits<PT>::CppType,
432
148
                              Op<PT>>::vector_constant(col_left->get_data(),
433
148
                                                       col_right->get_element(0), vec_res);
434
435
148
            block.replace_by_position(result, std::move(col_res));
436
148
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
169
        return Status::OK();
449
169
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
101
                            const ColumnPtr& col_right_ptr) const {
406
101
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
101
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
101
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
101
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
101
        DCHECK(!(left_is_const && right_is_const));
413
414
101
        if (!left_is_const && !right_is_const) {
415
101
            auto col_res = ColumnUInt8::create();
416
417
101
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
101
            vec_res.resize(col_left->get_data().size());
419
101
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
101
                              typename PrimitiveTypeTraits<PT>::CppType,
421
101
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
101
                                                     vec_res);
423
424
101
            block.replace_by_position(result, std::move(col_res));
425
101
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
101
        return Status::OK();
449
101
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2.22k
                            const ColumnPtr& col_right_ptr) const {
406
2.22k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2.22k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2.22k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2.22k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2.22k
        DCHECK(!(left_is_const && right_is_const));
413
414
2.22k
        if (!left_is_const && !right_is_const) {
415
1.83k
            auto col_res = ColumnUInt8::create();
416
417
1.83k
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1.83k
            vec_res.resize(col_left->get_data().size());
419
1.83k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1.83k
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1.83k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1.83k
                                                     vec_res);
423
424
1.83k
            block.replace_by_position(result, std::move(col_res));
425
1.83k
        } else if (!left_is_const && right_is_const) {
426
384
            auto col_res = ColumnUInt8::create();
427
428
384
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
384
            vec_res.resize(col_left->size());
430
384
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
384
                              typename PrimitiveTypeTraits<PT>::CppType,
432
384
                              Op<PT>>::vector_constant(col_left->get_data(),
433
384
                                                       col_right->get_element(0), vec_res);
434
435
384
            block.replace_by_position(result, std::move(col_res));
436
384
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
2.22k
        return Status::OK();
449
2.22k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
334
                            const ColumnPtr& col_right_ptr) const {
406
334
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
334
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
334
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
334
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
334
        DCHECK(!(left_is_const && right_is_const));
413
414
334
        if (!left_is_const && !right_is_const) {
415
275
            auto col_res = ColumnUInt8::create();
416
417
275
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
275
            vec_res.resize(col_left->get_data().size());
419
275
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
275
                              typename PrimitiveTypeTraits<PT>::CppType,
421
275
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
275
                                                     vec_res);
423
424
275
            block.replace_by_position(result, std::move(col_res));
425
275
        } else if (!left_is_const && right_is_const) {
426
59
            auto col_res = ColumnUInt8::create();
427
428
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
59
            vec_res.resize(col_left->size());
430
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
59
                              typename PrimitiveTypeTraits<PT>::CppType,
432
59
                              Op<PT>>::vector_constant(col_left->get_data(),
433
59
                                                       col_right->get_element(0), vec_res);
434
435
59
            block.replace_by_position(result, std::move(col_res));
436
59
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
334
        return Status::OK();
449
334
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
4
                            const ColumnPtr& col_right_ptr) const {
406
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
4
        DCHECK(!(left_is_const && right_is_const));
413
414
4
        if (!left_is_const && !right_is_const) {
415
3
            auto col_res = ColumnUInt8::create();
416
417
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
3
            vec_res.resize(col_left->get_data().size());
419
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
3
                              typename PrimitiveTypeTraits<PT>::CppType,
421
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
3
                                                     vec_res);
423
424
3
            block.replace_by_position(result, std::move(col_res));
425
3
        } else if (!left_is_const && right_is_const) {
426
1
            auto col_res = ColumnUInt8::create();
427
428
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1
            vec_res.resize(col_left->size());
430
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1
                                                       col_right->get_element(0), vec_res);
434
435
1
            block.replace_by_position(result, std::move(col_res));
436
1
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
4
        return Status::OK();
449
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
2.16k
                            const ColumnPtr& col_right_ptr) const {
406
2.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
2.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
2.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
2.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
2.16k
        DCHECK(!(left_is_const && right_is_const));
413
414
2.16k
        if (!left_is_const && !right_is_const) {
415
154
            auto col_res = ColumnUInt8::create();
416
417
154
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
154
            vec_res.resize(col_left->get_data().size());
419
154
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
154
                              typename PrimitiveTypeTraits<PT>::CppType,
421
154
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
154
                                                     vec_res);
423
424
154
            block.replace_by_position(result, std::move(col_res));
425
2.00k
        } else if (!left_is_const && right_is_const) {
426
1.76k
            auto col_res = ColumnUInt8::create();
427
428
1.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
1.76k
            vec_res.resize(col_left->size());
430
1.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
1.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
1.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
1.76k
                                                       col_right->get_element(0), vec_res);
434
435
1.76k
            block.replace_by_position(result, std::move(col_res));
436
1.76k
        } else if (left_is_const && !right_is_const) {
437
240
            auto col_res = ColumnUInt8::create();
438
439
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
240
            vec_res.resize(col_right->size());
441
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
240
                              typename PrimitiveTypeTraits<PT>::CppType,
443
240
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
240
                                                       col_right->get_data(), vec_res);
445
446
240
            block.replace_by_position(result, std::move(col_res));
447
240
        }
448
2.16k
        return Status::OK();
449
2.16k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
127
                            const ColumnPtr& col_right_ptr) const {
406
127
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
127
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
127
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
127
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
127
        DCHECK(!(left_is_const && right_is_const));
413
414
127
        if (!left_is_const && !right_is_const) {
415
113
            auto col_res = ColumnUInt8::create();
416
417
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
113
            vec_res.resize(col_left->get_data().size());
419
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
113
                              typename PrimitiveTypeTraits<PT>::CppType,
421
113
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
113
                                                     vec_res);
423
424
113
            block.replace_by_position(result, std::move(col_res));
425
113
        } else if (!left_is_const && right_is_const) {
426
14
            auto col_res = ColumnUInt8::create();
427
428
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
14
            vec_res.resize(col_left->size());
430
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
14
                              typename PrimitiveTypeTraits<PT>::CppType,
432
14
                              Op<PT>>::vector_constant(col_left->get_data(),
433
14
                                                       col_right->get_element(0), vec_res);
434
435
14
            block.replace_by_position(result, std::move(col_res));
436
14
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
127
        return Status::OK();
449
127
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
1.15k
                            const ColumnPtr& col_right_ptr) const {
406
1.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
1.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
1.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
1.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
1.15k
        DCHECK(!(left_is_const && right_is_const));
413
414
1.15k
        if (!left_is_const && !right_is_const) {
415
170
            auto col_res = ColumnUInt8::create();
416
417
170
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
170
            vec_res.resize(col_left->get_data().size());
419
170
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
170
                              typename PrimitiveTypeTraits<PT>::CppType,
421
170
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
170
                                                     vec_res);
423
424
170
            block.replace_by_position(result, std::move(col_res));
425
981
        } else if (!left_is_const && right_is_const) {
426
862
            auto col_res = ColumnUInt8::create();
427
428
862
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
862
            vec_res.resize(col_left->size());
430
862
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
862
                              typename PrimitiveTypeTraits<PT>::CppType,
432
862
                              Op<PT>>::vector_constant(col_left->get_data(),
433
862
                                                       col_right->get_element(0), vec_res);
434
435
862
            block.replace_by_position(result, std::move(col_res));
436
862
        } else if (left_is_const && !right_is_const) {
437
119
            auto col_res = ColumnUInt8::create();
438
439
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
119
            vec_res.resize(col_right->size());
441
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
119
                              typename PrimitiveTypeTraits<PT>::CppType,
443
119
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
119
                                                       col_right->get_data(), vec_res);
445
446
119
            block.replace_by_position(result, std::move(col_res));
447
119
        }
448
1.15k
        return Status::OK();
449
1.15k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
839
                            const ColumnPtr& col_right_ptr) const {
406
839
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
839
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
839
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
839
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
839
        DCHECK(!(left_is_const && right_is_const));
413
414
839
        if (!left_is_const && !right_is_const) {
415
234
            auto col_res = ColumnUInt8::create();
416
417
234
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
234
            vec_res.resize(col_left->get_data().size());
419
234
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
234
                              typename PrimitiveTypeTraits<PT>::CppType,
421
234
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
234
                                                     vec_res);
423
424
234
            block.replace_by_position(result, std::move(col_res));
425
605
        } else if (!left_is_const && right_is_const) {
426
521
            auto col_res = ColumnUInt8::create();
427
428
521
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
521
            vec_res.resize(col_left->size());
430
521
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
521
                              typename PrimitiveTypeTraits<PT>::CppType,
432
521
                              Op<PT>>::vector_constant(col_left->get_data(),
433
521
                                                       col_right->get_element(0), vec_res);
434
435
521
            block.replace_by_position(result, std::move(col_res));
436
521
        } else if (left_is_const && !right_is_const) {
437
84
            auto col_res = ColumnUInt8::create();
438
439
84
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
84
            vec_res.resize(col_right->size());
441
84
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
84
                              typename PrimitiveTypeTraits<PT>::CppType,
443
84
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
84
                                                       col_right->get_data(), vec_res);
445
446
84
            block.replace_by_position(result, std::move(col_res));
447
84
        }
448
839
        return Status::OK();
449
839
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
283
                            const ColumnPtr& col_right_ptr) const {
406
283
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
283
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
283
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
283
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
283
        DCHECK(!(left_is_const && right_is_const));
413
414
283
        if (!left_is_const && !right_is_const) {
415
145
            auto col_res = ColumnUInt8::create();
416
417
145
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
145
            vec_res.resize(col_left->get_data().size());
419
145
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
145
                              typename PrimitiveTypeTraits<PT>::CppType,
421
145
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
145
                                                     vec_res);
423
424
145
            block.replace_by_position(result, std::move(col_res));
425
145
        } else if (!left_is_const && right_is_const) {
426
46
            auto col_res = ColumnUInt8::create();
427
428
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
46
            vec_res.resize(col_left->size());
430
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
46
                              typename PrimitiveTypeTraits<PT>::CppType,
432
46
                              Op<PT>>::vector_constant(col_left->get_data(),
433
46
                                                       col_right->get_element(0), vec_res);
434
435
46
            block.replace_by_position(result, std::move(col_res));
436
92
        } else if (left_is_const && !right_is_const) {
437
92
            auto col_res = ColumnUInt8::create();
438
439
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
92
            vec_res.resize(col_right->size());
441
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
92
                              typename PrimitiveTypeTraits<PT>::CppType,
443
92
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
92
                                                       col_right->get_data(), vec_res);
445
446
92
            block.replace_by_position(result, std::move(col_res));
447
92
        }
448
283
        return Status::OK();
449
283
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
18
                            const ColumnPtr& col_right_ptr) const {
406
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
18
        DCHECK(!(left_is_const && right_is_const));
413
414
18
        if (!left_is_const && !right_is_const) {
415
16
            auto col_res = ColumnUInt8::create();
416
417
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
16
            vec_res.resize(col_left->get_data().size());
419
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
16
                              typename PrimitiveTypeTraits<PT>::CppType,
421
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
16
                                                     vec_res);
423
424
16
            block.replace_by_position(result, std::move(col_res));
425
16
        } else if (!left_is_const && right_is_const) {
426
2
            auto col_res = ColumnUInt8::create();
427
428
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
2
            vec_res.resize(col_left->size());
430
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
2
                              typename PrimitiveTypeTraits<PT>::CppType,
432
2
                              Op<PT>>::vector_constant(col_left->get_data(),
433
2
                                                       col_right->get_element(0), vec_res);
434
435
2
            block.replace_by_position(result, std::move(col_res));
436
2
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
18
        return Status::OK();
449
18
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
16
                            const ColumnPtr& col_right_ptr) const {
406
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
16
        DCHECK(!(left_is_const && right_is_const));
413
414
16
        if (!left_is_const && !right_is_const) {
415
16
            auto col_res = ColumnUInt8::create();
416
417
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
16
            vec_res.resize(col_left->get_data().size());
419
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
16
                              typename PrimitiveTypeTraits<PT>::CppType,
421
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
16
                                                     vec_res);
423
424
16
            block.replace_by_position(result, std::move(col_res));
425
16
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
16
        return Status::OK();
449
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
145
                            const ColumnPtr& col_right_ptr) const {
406
145
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
145
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
145
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
145
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
145
        DCHECK(!(left_is_const && right_is_const));
413
414
145
        if (!left_is_const && !right_is_const) {
415
145
            auto col_res = ColumnUInt8::create();
416
417
145
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
145
            vec_res.resize(col_left->get_data().size());
419
145
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
145
                              typename PrimitiveTypeTraits<PT>::CppType,
421
145
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
145
                                                     vec_res);
423
424
145
            block.replace_by_position(result, std::move(col_res));
425
145
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
145
        return Status::OK();
449
145
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
379
                            const ColumnPtr& col_right_ptr) const {
406
379
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
379
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
379
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
379
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
379
        DCHECK(!(left_is_const && right_is_const));
413
414
379
        if (!left_is_const && !right_is_const) {
415
153
            auto col_res = ColumnUInt8::create();
416
417
153
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
153
            vec_res.resize(col_left->get_data().size());
419
153
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
153
                              typename PrimitiveTypeTraits<PT>::CppType,
421
153
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
153
                                                     vec_res);
423
424
153
            block.replace_by_position(result, std::move(col_res));
425
226
        } else if (!left_is_const && right_is_const) {
426
226
            auto col_res = ColumnUInt8::create();
427
428
226
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
226
            vec_res.resize(col_left->size());
430
226
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
226
                              typename PrimitiveTypeTraits<PT>::CppType,
432
226
                              Op<PT>>::vector_constant(col_left->get_data(),
433
226
                                                       col_right->get_element(0), vec_res);
434
435
226
            block.replace_by_position(result, std::move(col_res));
436
226
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
379
        return Status::OK();
449
379
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
38
                            const ColumnPtr& col_right_ptr) const {
406
38
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
38
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
38
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
38
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
38
        DCHECK(!(left_is_const && right_is_const));
413
414
38
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
38
        } else if (!left_is_const && right_is_const) {
426
38
            auto col_res = ColumnUInt8::create();
427
428
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
38
            vec_res.resize(col_left->size());
430
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
38
                              typename PrimitiveTypeTraits<PT>::CppType,
432
38
                              Op<PT>>::vector_constant(col_left->get_data(),
433
38
                                                       col_right->get_element(0), vec_res);
434
435
38
            block.replace_by_position(result, std::move(col_res));
436
38
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
38
        return Status::OK();
449
38
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
622
                            const ColumnPtr& col_right_ptr) const {
406
622
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
622
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
622
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
622
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
622
        DCHECK(!(left_is_const && right_is_const));
413
414
622
        if (!left_is_const && !right_is_const) {
415
419
            auto col_res = ColumnUInt8::create();
416
417
419
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
419
            vec_res.resize(col_left->get_data().size());
419
419
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
419
                              typename PrimitiveTypeTraits<PT>::CppType,
421
419
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
419
                                                     vec_res);
423
424
419
            block.replace_by_position(result, std::move(col_res));
425
419
        } else if (!left_is_const && right_is_const) {
426
199
            auto col_res = ColumnUInt8::create();
427
428
199
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
199
            vec_res.resize(col_left->size());
430
199
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
199
                              typename PrimitiveTypeTraits<PT>::CppType,
432
199
                              Op<PT>>::vector_constant(col_left->get_data(),
433
199
                                                       col_right->get_element(0), vec_res);
434
435
199
            block.replace_by_position(result, std::move(col_res));
436
199
        } else if (left_is_const && !right_is_const) {
437
5
            auto col_res = ColumnUInt8::create();
438
439
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
5
            vec_res.resize(col_right->size());
441
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
5
                              typename PrimitiveTypeTraits<PT>::CppType,
443
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
5
                                                       col_right->get_data(), vec_res);
445
446
5
            block.replace_by_position(result, std::move(col_res));
447
5
        }
448
622
        return Status::OK();
449
622
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
88
                            const ColumnPtr& col_right_ptr) const {
406
88
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
88
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
88
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
88
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
88
        DCHECK(!(left_is_const && right_is_const));
413
414
88
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
88
        } else if (!left_is_const && right_is_const) {
426
88
            auto col_res = ColumnUInt8::create();
427
428
88
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
88
            vec_res.resize(col_left->size());
430
88
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
88
                              typename PrimitiveTypeTraits<PT>::CppType,
432
88
                              Op<PT>>::vector_constant(col_left->get_data(),
433
88
                                                       col_right->get_element(0), vec_res);
434
435
88
            block.replace_by_position(result, std::move(col_res));
436
88
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
88
        return Status::OK();
449
88
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
3
                            const ColumnPtr& col_right_ptr) const {
406
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
3
        DCHECK(!(left_is_const && right_is_const));
413
414
3
        if (!left_is_const && !right_is_const) {
415
3
            auto col_res = ColumnUInt8::create();
416
417
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
3
            vec_res.resize(col_left->get_data().size());
419
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
3
                              typename PrimitiveTypeTraits<PT>::CppType,
421
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
3
                                                     vec_res);
423
424
3
            block.replace_by_position(result, std::move(col_res));
425
3
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
3
        return Status::OK();
449
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
95
                            const ColumnPtr& col_right_ptr) const {
406
95
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
95
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
95
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
95
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
95
        DCHECK(!(left_is_const && right_is_const));
413
414
95
        if (!left_is_const && !right_is_const) {
415
1
            auto col_res = ColumnUInt8::create();
416
417
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
1
            vec_res.resize(col_left->get_data().size());
419
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
1
                              typename PrimitiveTypeTraits<PT>::CppType,
421
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
1
                                                     vec_res);
423
424
1
            block.replace_by_position(result, std::move(col_res));
425
94
        } else if (!left_is_const && right_is_const) {
426
94
            auto col_res = ColumnUInt8::create();
427
428
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
94
            vec_res.resize(col_left->size());
430
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
94
                              typename PrimitiveTypeTraits<PT>::CppType,
432
94
                              Op<PT>>::vector_constant(col_left->get_data(),
433
94
                                                       col_right->get_element(0), vec_res);
434
435
94
            block.replace_by_position(result, std::move(col_res));
436
94
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
95
        return Status::OK();
449
95
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
88
                            const ColumnPtr& col_right_ptr) const {
406
88
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
88
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
88
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
88
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
88
        DCHECK(!(left_is_const && right_is_const));
413
414
88
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
88
        } else if (!left_is_const && right_is_const) {
426
88
            auto col_res = ColumnUInt8::create();
427
428
88
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
88
            vec_res.resize(col_left->size());
430
88
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
88
                              typename PrimitiveTypeTraits<PT>::CppType,
432
88
                              Op<PT>>::vector_constant(col_left->get_data(),
433
88
                                                       col_right->get_element(0), vec_res);
434
435
88
            block.replace_by_position(result, std::move(col_res));
436
88
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
88
        return Status::OK();
449
88
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
6.24k
                            const ColumnPtr& col_right_ptr) const {
406
6.24k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
6.24k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
6.24k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
6.24k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
6.24k
        DCHECK(!(left_is_const && right_is_const));
413
414
6.24k
        if (!left_is_const && !right_is_const) {
415
10
            auto col_res = ColumnUInt8::create();
416
417
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
10
            vec_res.resize(col_left->get_data().size());
419
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
10
                              typename PrimitiveTypeTraits<PT>::CppType,
421
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
10
                                                     vec_res);
423
424
10
            block.replace_by_position(result, std::move(col_res));
425
6.23k
        } else if (!left_is_const && right_is_const) {
426
5.98k
            auto col_res = ColumnUInt8::create();
427
428
5.98k
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
5.98k
            vec_res.resize(col_left->size());
430
5.98k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
5.98k
                              typename PrimitiveTypeTraits<PT>::CppType,
432
5.98k
                              Op<PT>>::vector_constant(col_left->get_data(),
433
5.98k
                                                       col_right->get_element(0), vec_res);
434
435
5.98k
            block.replace_by_position(result, std::move(col_res));
436
5.98k
        } else if (left_is_const && !right_is_const) {
437
245
            auto col_res = ColumnUInt8::create();
438
439
245
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
245
            vec_res.resize(col_right->size());
441
245
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
245
                              typename PrimitiveTypeTraits<PT>::CppType,
443
245
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
245
                                                       col_right->get_data(), vec_res);
445
446
245
            block.replace_by_position(result, std::move(col_res));
447
245
        }
448
6.24k
        return Status::OK();
449
6.24k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
386
                            const ColumnPtr& col_right_ptr) const {
406
386
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
386
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
386
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
386
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
386
        DCHECK(!(left_is_const && right_is_const));
413
414
386
        if (!left_is_const && !right_is_const) {
415
31
            auto col_res = ColumnUInt8::create();
416
417
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
31
            vec_res.resize(col_left->get_data().size());
419
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
31
                              typename PrimitiveTypeTraits<PT>::CppType,
421
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
31
                                                     vec_res);
423
424
31
            block.replace_by_position(result, std::move(col_res));
425
355
        } else if (!left_is_const && right_is_const) {
426
331
            auto col_res = ColumnUInt8::create();
427
428
331
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
331
            vec_res.resize(col_left->size());
430
331
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
331
                              typename PrimitiveTypeTraits<PT>::CppType,
432
331
                              Op<PT>>::vector_constant(col_left->get_data(),
433
331
                                                       col_right->get_element(0), vec_res);
434
435
331
            block.replace_by_position(result, std::move(col_res));
436
331
        } else if (left_is_const && !right_is_const) {
437
24
            auto col_res = ColumnUInt8::create();
438
439
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
24
            vec_res.resize(col_right->size());
441
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
24
                              typename PrimitiveTypeTraits<PT>::CppType,
443
24
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
24
                                                       col_right->get_data(), vec_res);
445
446
24
            block.replace_by_position(result, std::move(col_res));
447
24
        }
448
386
        return Status::OK();
449
386
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
53
                            const ColumnPtr& col_right_ptr) const {
406
53
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
53
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
53
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
53
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
53
        DCHECK(!(left_is_const && right_is_const));
413
414
53
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
53
        } else if (!left_is_const && right_is_const) {
426
53
            auto col_res = ColumnUInt8::create();
427
428
53
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
53
            vec_res.resize(col_left->size());
430
53
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
53
                              typename PrimitiveTypeTraits<PT>::CppType,
432
53
                              Op<PT>>::vector_constant(col_left->get_data(),
433
53
                                                       col_right->get_element(0), vec_res);
434
435
53
            block.replace_by_position(result, std::move(col_res));
436
53
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
53
        return Status::OK();
449
53
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
10
                            const ColumnPtr& col_right_ptr) const {
406
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
10
        DCHECK(!(left_is_const && right_is_const));
413
414
10
        if (!left_is_const && !right_is_const) {
415
0
            auto col_res = ColumnUInt8::create();
416
417
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
0
            vec_res.resize(col_left->get_data().size());
419
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
0
                              typename PrimitiveTypeTraits<PT>::CppType,
421
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
0
                                                     vec_res);
423
424
0
            block.replace_by_position(result, std::move(col_res));
425
10
        } else if (!left_is_const && right_is_const) {
426
10
            auto col_res = ColumnUInt8::create();
427
428
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
10
            vec_res.resize(col_left->size());
430
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
10
                              typename PrimitiveTypeTraits<PT>::CppType,
432
10
                              Op<PT>>::vector_constant(col_left->get_data(),
433
10
                                                       col_right->get_element(0), vec_res);
434
435
10
            block.replace_by_position(result, std::move(col_res));
436
10
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
10
        return Status::OK();
449
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
20
                            const ColumnPtr& col_right_ptr) const {
406
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
20
        DCHECK(!(left_is_const && right_is_const));
413
414
20
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
20
        } else if (!left_is_const && right_is_const) {
426
0
            auto col_res = ColumnUInt8::create();
427
428
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
0
            vec_res.resize(col_left->size());
430
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
0
                              typename PrimitiveTypeTraits<PT>::CppType,
432
0
                              Op<PT>>::vector_constant(col_left->get_data(),
433
0
                                                       col_right->get_element(0), vec_res);
434
435
0
            block.replace_by_position(result, std::move(col_res));
436
0
        } else if (left_is_const && !right_is_const) {
437
0
            auto col_res = ColumnUInt8::create();
438
439
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
0
            vec_res.resize(col_right->size());
441
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
0
                              typename PrimitiveTypeTraits<PT>::CppType,
443
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
0
                                                       col_right->get_data(), vec_res);
445
446
0
            block.replace_by_position(result, std::move(col_res));
447
0
        }
448
20
        return Status::OK();
449
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
405
159
                            const ColumnPtr& col_right_ptr) const {
406
159
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
407
159
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
408
409
159
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
410
159
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
411
412
159
        DCHECK(!(left_is_const && right_is_const));
413
414
159
        if (!left_is_const && !right_is_const) {
415
20
            auto col_res = ColumnUInt8::create();
416
417
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
418
20
            vec_res.resize(col_left->get_data().size());
419
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
420
20
                              typename PrimitiveTypeTraits<PT>::CppType,
421
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
422
20
                                                     vec_res);
423
424
20
            block.replace_by_position(result, std::move(col_res));
425
139
        } else if (!left_is_const && right_is_const) {
426
138
            auto col_res = ColumnUInt8::create();
427
428
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
429
138
            vec_res.resize(col_left->size());
430
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
431
138
                              typename PrimitiveTypeTraits<PT>::CppType,
432
138
                              Op<PT>>::vector_constant(col_left->get_data(),
433
138
                                                       col_right->get_element(0), vec_res);
434
435
138
            block.replace_by_position(result, std::move(col_res));
436
138
        } else if (left_is_const && !right_is_const) {
437
1
            auto col_res = ColumnUInt8::create();
438
439
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
440
1
            vec_res.resize(col_right->size());
441
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
442
1
                              typename PrimitiveTypeTraits<PT>::CppType,
443
1
                              Op<PT>>::constant_vector(col_left->get_element(0),
444
1
                                                       col_right->get_data(), vec_res);
445
446
1
            block.replace_by_position(result, std::move(col_res));
447
1
        }
448
159
        return Status::OK();
449
159
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
450
451
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
452
3.20k
                           const ColumnWithTypeAndName& col_right) const {
453
3.20k
        auto call = [&](const auto& type) -> bool {
454
3.20k
            using DispatchType = std::decay_t<decltype(type)>;
455
3.20k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
3.20k
                    block, result, col_left, col_right);
457
3.20k
            return true;
458
3.20k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
168
        auto call = [&](const auto& type) -> bool {
454
168
            using DispatchType = std::decay_t<decltype(type)>;
455
168
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
168
                    block, result, col_left, col_right);
457
168
            return true;
458
168
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
176
        auto call = [&](const auto& type) -> bool {
454
176
            using DispatchType = std::decay_t<decltype(type)>;
455
176
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
176
                    block, result, col_left, col_right);
457
176
            return true;
458
176
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
453
893
        auto call = [&](const auto& type) -> bool {
454
893
            using DispatchType = std::decay_t<decltype(type)>;
455
893
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
893
                    block, result, col_left, col_right);
457
893
            return true;
458
893
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
30
        auto call = [&](const auto& type) -> bool {
454
30
            using DispatchType = std::decay_t<decltype(type)>;
455
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
30
                    block, result, col_left, col_right);
457
30
            return true;
458
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
70
        auto call = [&](const auto& type) -> bool {
454
70
            using DispatchType = std::decay_t<decltype(type)>;
455
70
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
70
                    block, result, col_left, col_right);
457
70
            return true;
458
70
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
453
28
        auto call = [&](const auto& type) -> bool {
454
28
            using DispatchType = std::decay_t<decltype(type)>;
455
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
28
                    block, result, col_left, col_right);
457
28
            return true;
458
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
30
        auto call = [&](const auto& type) -> bool {
454
30
            using DispatchType = std::decay_t<decltype(type)>;
455
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
30
                    block, result, col_left, col_right);
457
30
            return true;
458
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
8
        auto call = [&](const auto& type) -> bool {
454
8
            using DispatchType = std::decay_t<decltype(type)>;
455
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
8
                    block, result, col_left, col_right);
457
8
            return true;
458
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
66
        auto call = [&](const auto& type) -> bool {
454
66
            using DispatchType = std::decay_t<decltype(type)>;
455
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
66
                    block, result, col_left, col_right);
457
66
            return true;
458
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
453
648
        auto call = [&](const auto& type) -> bool {
454
648
            using DispatchType = std::decay_t<decltype(type)>;
455
648
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
648
                    block, result, col_left, col_right);
457
648
            return true;
458
648
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
2
        auto call = [&](const auto& type) -> bool {
454
2
            using DispatchType = std::decay_t<decltype(type)>;
455
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
2
                    block, result, col_left, col_right);
457
2
            return true;
458
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
4
        auto call = [&](const auto& type) -> bool {
454
4
            using DispatchType = std::decay_t<decltype(type)>;
455
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
4
                    block, result, col_left, col_right);
457
4
            return true;
458
4
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
57
        auto call = [&](const auto& type) -> bool {
454
57
            using DispatchType = std::decay_t<decltype(type)>;
455
57
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
57
                    block, result, col_left, col_right);
457
57
            return true;
458
57
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
453
59
        auto call = [&](const auto& type) -> bool {
454
59
            using DispatchType = std::decay_t<decltype(type)>;
455
59
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
59
                    block, result, col_left, col_right);
457
59
            return true;
458
59
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
21
        auto call = [&](const auto& type) -> bool {
454
21
            using DispatchType = std::decay_t<decltype(type)>;
455
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
21
                    block, result, col_left, col_right);
457
21
            return true;
458
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
201
        auto call = [&](const auto& type) -> bool {
454
201
            using DispatchType = std::decay_t<decltype(type)>;
455
201
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
201
                    block, result, col_left, col_right);
457
201
            return true;
458
201
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
223
        auto call = [&](const auto& type) -> bool {
454
223
            using DispatchType = std::decay_t<decltype(type)>;
455
223
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
223
                    block, result, col_left, col_right);
457
223
            return true;
458
223
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
453
316
        auto call = [&](const auto& type) -> bool {
454
316
            using DispatchType = std::decay_t<decltype(type)>;
455
316
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
316
                    block, result, col_left, col_right);
457
316
            return true;
458
316
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
1
        auto call = [&](const auto& type) -> bool {
454
1
            using DispatchType = std::decay_t<decltype(type)>;
455
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1
                    block, result, col_left, col_right);
457
1
            return true;
458
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
453
10
        auto call = [&](const auto& type) -> bool {
454
10
            using DispatchType = std::decay_t<decltype(type)>;
455
10
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
10
                    block, result, col_left, col_right);
457
10
            return true;
458
10
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
453
80
        auto call = [&](const auto& type) -> bool {
454
80
            using DispatchType = std::decay_t<decltype(type)>;
455
80
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
80
                    block, result, col_left, col_right);
457
80
            return true;
458
80
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
453
95
        auto call = [&](const auto& type) -> bool {
454
95
            using DispatchType = std::decay_t<decltype(type)>;
455
95
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
95
                    block, result, col_left, col_right);
457
95
            return true;
458
95
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
453
23
        auto call = [&](const auto& type) -> bool {
454
23
            using DispatchType = std::decay_t<decltype(type)>;
455
23
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
23
                    block, result, col_left, col_right);
457
23
            return true;
458
23
        };
459
460
3.20k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
3.20k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
3.20k
        return Status::OK();
471
3.20k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
1.26k
                           const ColumnWithTypeAndName& col_right) const {
453
1.26k
        auto call = [&](const auto& type) -> bool {
454
1.26k
            using DispatchType = std::decay_t<decltype(type)>;
455
1.26k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
1.26k
                    block, result, col_left, col_right);
457
1.26k
            return true;
458
1.26k
        };
459
460
1.26k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
1.26k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
1.26k
        return Status::OK();
471
1.26k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
128
                           const ColumnWithTypeAndName& col_right) const {
453
128
        auto call = [&](const auto& type) -> bool {
454
128
            using DispatchType = std::decay_t<decltype(type)>;
455
128
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
128
                    block, result, col_left, col_right);
457
128
            return true;
458
128
        };
459
460
128
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
128
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
128
        return Status::OK();
471
128
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
724
                           const ColumnWithTypeAndName& col_right) const {
453
724
        auto call = [&](const auto& type) -> bool {
454
724
            using DispatchType = std::decay_t<decltype(type)>;
455
724
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
724
                    block, result, col_left, col_right);
457
724
            return true;
458
724
        };
459
460
724
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
724
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
724
        return Status::OK();
471
724
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
141
                           const ColumnWithTypeAndName& col_right) const {
453
141
        auto call = [&](const auto& type) -> bool {
454
141
            using DispatchType = std::decay_t<decltype(type)>;
455
141
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
141
                    block, result, col_left, col_right);
457
141
            return true;
458
141
        };
459
460
141
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
141
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
141
        return Status::OK();
471
141
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
741
                           const ColumnWithTypeAndName& col_right) const {
453
741
        auto call = [&](const auto& type) -> bool {
454
741
            using DispatchType = std::decay_t<decltype(type)>;
455
741
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
741
                    block, result, col_left, col_right);
457
741
            return true;
458
741
        };
459
460
741
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
741
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
741
        return Status::OK();
471
741
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
452
208
                           const ColumnWithTypeAndName& col_right) const {
453
208
        auto call = [&](const auto& type) -> bool {
454
208
            using DispatchType = std::decay_t<decltype(type)>;
455
208
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
456
208
                    block, result, col_left, col_right);
457
208
            return true;
458
208
        };
459
460
208
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
461
0
            return Status::RuntimeError(
462
0
                    "type of left column {} is not equal to type of right column {}",
463
0
                    col_left.type->get_name(), col_right.type->get_name());
464
0
        }
465
466
208
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
467
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
468
0
                                        col_left.type->get_name(), col_right.type->get_name());
469
0
        }
470
208
        return Status::OK();
471
208
    }
472
473
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
474
12.5k
                          const IColumn* c1) const {
475
12.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
12.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
12.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
12.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
12.5k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
12.5k
        DCHECK(!(c0_const && c1_const));
484
12.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
485
12.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
486
12.5k
        ColumnString::Offset c0_const_size = 0;
487
12.5k
        ColumnString::Offset c1_const_size = 0;
488
489
12.5k
        if (c0_const) {
490
6
            const ColumnString* c0_const_string =
491
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
6
            if (c0_const_string) {
494
6
                c0_const_chars = &c0_const_string->get_chars();
495
6
                c0_const_size = c0_const_string->get_offsets()[0];
496
6
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
6
        }
501
502
12.5k
        if (c1_const) {
503
11.5k
            const ColumnString* c1_const_string =
504
11.5k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
11.5k
            if (c1_const_string) {
507
11.5k
                c1_const_chars = &c1_const_string->get_chars();
508
11.5k
                c1_const_size = c1_const_string->get_offsets()[0];
509
11.5k
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
11.5k
        }
514
515
12.5k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
12.5k
        auto c_res = ColumnUInt8::create();
518
12.5k
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
12.5k
        vec_res.resize(c0->size());
520
521
12.5k
        if (c0_string && c1_string) {
522
962
            StringImpl::string_vector_string_vector(
523
962
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
962
                    c1_string->get_offsets(), vec_res);
525
11.5k
        } else if (c0_string && c1_const) {
526
11.5k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
11.5k
                                               *c1_const_chars, c1_const_size, vec_res);
528
11.5k
        } else if (c0_const && c1_string) {
529
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
6
                                               vec_res);
532
6
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
12.5k
        block.replace_by_position(result, std::move(c_res));
537
12.5k
        return Status::OK();
538
12.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
11.1k
                          const IColumn* c1) const {
475
11.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
11.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
11.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
11.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
11.1k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
11.1k
        DCHECK(!(c0_const && c1_const));
484
11.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
485
11.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
486
11.1k
        ColumnString::Offset c0_const_size = 0;
487
11.1k
        ColumnString::Offset c1_const_size = 0;
488
489
11.1k
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
11.1k
        if (c1_const) {
503
10.6k
            const ColumnString* c1_const_string =
504
10.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
10.6k
            if (c1_const_string) {
507
10.6k
                c1_const_chars = &c1_const_string->get_chars();
508
10.6k
                c1_const_size = c1_const_string->get_offsets()[0];
509
10.6k
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
10.6k
        }
514
515
11.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
11.1k
        auto c_res = ColumnUInt8::create();
518
11.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
11.1k
        vec_res.resize(c0->size());
520
521
11.1k
        if (c0_string && c1_string) {
522
491
            StringImpl::string_vector_string_vector(
523
491
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
491
                    c1_string->get_offsets(), vec_res);
525
10.6k
        } else if (c0_string && c1_const) {
526
10.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
10.6k
                                               *c1_const_chars, c1_const_size, vec_res);
528
10.6k
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
11.1k
        block.replace_by_position(result, std::move(c_res));
537
11.1k
        return Status::OK();
538
11.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
86
                          const IColumn* c1) const {
475
86
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
86
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
86
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
86
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
86
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
86
        DCHECK(!(c0_const && c1_const));
484
86
        const ColumnString::Chars* c0_const_chars = nullptr;
485
86
        const ColumnString::Chars* c1_const_chars = nullptr;
486
86
        ColumnString::Offset c0_const_size = 0;
487
86
        ColumnString::Offset c1_const_size = 0;
488
489
86
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
86
        if (c1_const) {
503
85
            const ColumnString* c1_const_string =
504
85
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
85
            if (c1_const_string) {
507
85
                c1_const_chars = &c1_const_string->get_chars();
508
85
                c1_const_size = c1_const_string->get_offsets()[0];
509
85
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
85
        }
514
515
86
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
86
        auto c_res = ColumnUInt8::create();
518
86
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
86
        vec_res.resize(c0->size());
520
521
86
        if (c0_string && c1_string) {
522
1
            StringImpl::string_vector_string_vector(
523
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
1
                    c1_string->get_offsets(), vec_res);
525
85
        } else if (c0_string && c1_const) {
526
85
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
85
                                               *c1_const_chars, c1_const_size, vec_res);
528
85
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
86
        block.replace_by_position(result, std::move(c_res));
537
86
        return Status::OK();
538
86
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
184
                          const IColumn* c1) const {
475
184
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
184
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
184
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
184
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
184
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
184
        DCHECK(!(c0_const && c1_const));
484
184
        const ColumnString::Chars* c0_const_chars = nullptr;
485
184
        const ColumnString::Chars* c1_const_chars = nullptr;
486
184
        ColumnString::Offset c0_const_size = 0;
487
184
        ColumnString::Offset c1_const_size = 0;
488
489
184
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
184
        if (c1_const) {
503
182
            const ColumnString* c1_const_string =
504
182
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
182
            if (c1_const_string) {
507
182
                c1_const_chars = &c1_const_string->get_chars();
508
182
                c1_const_size = c1_const_string->get_offsets()[0];
509
182
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
182
        }
514
515
184
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
184
        auto c_res = ColumnUInt8::create();
518
184
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
184
        vec_res.resize(c0->size());
520
521
184
        if (c0_string && c1_string) {
522
2
            StringImpl::string_vector_string_vector(
523
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
2
                    c1_string->get_offsets(), vec_res);
525
182
        } else if (c0_string && c1_const) {
526
182
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
182
                                               *c1_const_chars, c1_const_size, vec_res);
528
182
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
184
        block.replace_by_position(result, std::move(c_res));
537
184
        return Status::OK();
538
184
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
293
                          const IColumn* c1) const {
475
293
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
293
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
293
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
293
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
293
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
293
        DCHECK(!(c0_const && c1_const));
484
293
        const ColumnString::Chars* c0_const_chars = nullptr;
485
293
        const ColumnString::Chars* c1_const_chars = nullptr;
486
293
        ColumnString::Offset c0_const_size = 0;
487
293
        ColumnString::Offset c1_const_size = 0;
488
489
293
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
293
        if (c1_const) {
503
257
            const ColumnString* c1_const_string =
504
257
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
257
            if (c1_const_string) {
507
257
                c1_const_chars = &c1_const_string->get_chars();
508
257
                c1_const_size = c1_const_string->get_offsets()[0];
509
257
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
257
        }
514
515
293
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
293
        auto c_res = ColumnUInt8::create();
518
293
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
293
        vec_res.resize(c0->size());
520
521
293
        if (c0_string && c1_string) {
522
36
            StringImpl::string_vector_string_vector(
523
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
36
                    c1_string->get_offsets(), vec_res);
525
257
        } else if (c0_string && c1_const) {
526
257
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
257
                                               *c1_const_chars, c1_const_size, vec_res);
528
257
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
293
        block.replace_by_position(result, std::move(c_res));
537
293
        return Status::OK();
538
293
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
534
                          const IColumn* c1) const {
475
534
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
534
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
534
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
534
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
534
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
534
        DCHECK(!(c0_const && c1_const));
484
534
        const ColumnString::Chars* c0_const_chars = nullptr;
485
534
        const ColumnString::Chars* c1_const_chars = nullptr;
486
534
        ColumnString::Offset c0_const_size = 0;
487
534
        ColumnString::Offset c1_const_size = 0;
488
489
534
        if (c0_const) {
490
6
            const ColumnString* c0_const_string =
491
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
6
            if (c0_const_string) {
494
6
                c0_const_chars = &c0_const_string->get_chars();
495
6
                c0_const_size = c0_const_string->get_offsets()[0];
496
6
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
6
        }
501
502
534
        if (c1_const) {
503
96
            const ColumnString* c1_const_string =
504
96
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
96
            if (c1_const_string) {
507
96
                c1_const_chars = &c1_const_string->get_chars();
508
96
                c1_const_size = c1_const_string->get_offsets()[0];
509
96
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
96
        }
514
515
534
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
534
        auto c_res = ColumnUInt8::create();
518
534
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
534
        vec_res.resize(c0->size());
520
521
534
        if (c0_string && c1_string) {
522
432
            StringImpl::string_vector_string_vector(
523
432
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
432
                    c1_string->get_offsets(), vec_res);
525
432
        } else if (c0_string && c1_const) {
526
96
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
96
                                               *c1_const_chars, c1_const_size, vec_res);
528
96
        } else if (c0_const && c1_string) {
529
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
6
                                               vec_res);
532
6
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
534
        block.replace_by_position(result, std::move(c_res));
537
534
        return Status::OK();
538
534
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
474
264
                          const IColumn* c1) const {
475
264
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
476
264
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
477
264
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
478
264
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
479
264
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
480
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
481
0
                                        c0->get_name(), c1->get_name(), name);
482
0
        }
483
264
        DCHECK(!(c0_const && c1_const));
484
264
        const ColumnString::Chars* c0_const_chars = nullptr;
485
264
        const ColumnString::Chars* c1_const_chars = nullptr;
486
264
        ColumnString::Offset c0_const_size = 0;
487
264
        ColumnString::Offset c1_const_size = 0;
488
489
264
        if (c0_const) {
490
0
            const ColumnString* c0_const_string =
491
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
492
493
0
            if (c0_const_string) {
494
0
                c0_const_chars = &c0_const_string->get_chars();
495
0
                c0_const_size = c0_const_string->get_offsets()[0];
496
0
            } else {
497
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
498
0
                                            c0->get_name(), name);
499
0
            }
500
0
        }
501
502
264
        if (c1_const) {
503
264
            const ColumnString* c1_const_string =
504
264
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
505
506
264
            if (c1_const_string) {
507
264
                c1_const_chars = &c1_const_string->get_chars();
508
264
                c1_const_size = c1_const_string->get_offsets()[0];
509
264
            } else {
510
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
511
0
                                            c1->get_name(), name);
512
0
            }
513
264
        }
514
515
264
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
516
517
264
        auto c_res = ColumnUInt8::create();
518
264
        ColumnUInt8::Container& vec_res = c_res->get_data();
519
264
        vec_res.resize(c0->size());
520
521
264
        if (c0_string && c1_string) {
522
0
            StringImpl::string_vector_string_vector(
523
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
524
0
                    c1_string->get_offsets(), vec_res);
525
264
        } else if (c0_string && c1_const) {
526
264
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
527
264
                                               *c1_const_chars, c1_const_size, vec_res);
528
264
        } else if (c0_const && c1_string) {
529
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
530
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
531
0
                                               vec_res);
532
0
        } else {
533
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
534
0
                                        c0->get_name(), c1->get_name(), name);
535
0
        }
536
264
        block.replace_by_position(result, std::move(c_res));
537
264
        return Status::OK();
538
264
    }
539
540
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
541
136
                                         const IColumn* c1) const {
542
136
        bool c0_const = is_column_const(*c0);
543
136
        bool c1_const = is_column_const(*c1);
544
545
136
        DCHECK(!(c0_const && c1_const));
546
547
136
        auto c_res = ColumnUInt8::create();
548
136
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
136
        vec_res.resize(c0->size());
550
551
136
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
136
        } else if (c1_const) {
554
127
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
127
        } else {
556
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
9
        }
558
559
136
        block.replace_by_position(result, std::move(c_res));
560
136
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
17
                                         const IColumn* c1) const {
542
17
        bool c0_const = is_column_const(*c0);
543
17
        bool c1_const = is_column_const(*c1);
544
545
17
        DCHECK(!(c0_const && c1_const));
546
547
17
        auto c_res = ColumnUInt8::create();
548
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
17
        vec_res.resize(c0->size());
550
551
17
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
17
        } else if (c1_const) {
554
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
13
        } else {
556
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
4
        }
558
559
17
        block.replace_by_position(result, std::move(c_res));
560
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
8
                                         const IColumn* c1) const {
542
8
        bool c0_const = is_column_const(*c0);
543
8
        bool c1_const = is_column_const(*c1);
544
545
8
        DCHECK(!(c0_const && c1_const));
546
547
8
        auto c_res = ColumnUInt8::create();
548
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
8
        vec_res.resize(c0->size());
550
551
8
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
8
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
0
        }
558
559
8
        block.replace_by_position(result, std::move(c_res));
560
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
9
                                         const IColumn* c1) const {
542
9
        bool c0_const = is_column_const(*c0);
543
9
        bool c1_const = is_column_const(*c1);
544
545
9
        DCHECK(!(c0_const && c1_const));
546
547
9
        auto c_res = ColumnUInt8::create();
548
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
9
        vec_res.resize(c0->size());
550
551
9
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
9
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
1
        }
558
559
9
        block.replace_by_position(result, std::move(c_res));
560
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
43
                                         const IColumn* c1) const {
542
43
        bool c0_const = is_column_const(*c0);
543
43
        bool c1_const = is_column_const(*c1);
544
545
43
        DCHECK(!(c0_const && c1_const));
546
547
43
        auto c_res = ColumnUInt8::create();
548
43
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
43
        vec_res.resize(c0->size());
550
551
43
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
43
        } else if (c1_const) {
554
42
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
42
        } else {
556
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
1
        }
558
559
43
        block.replace_by_position(result, std::move(c_res));
560
43
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
11
                                         const IColumn* c1) const {
542
11
        bool c0_const = is_column_const(*c0);
543
11
        bool c1_const = is_column_const(*c1);
544
545
11
        DCHECK(!(c0_const && c1_const));
546
547
11
        auto c_res = ColumnUInt8::create();
548
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
11
        vec_res.resize(c0->size());
550
551
11
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
11
        } else if (c1_const) {
554
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
8
        } else {
556
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
3
        }
558
559
11
        block.replace_by_position(result, std::move(c_res));
560
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
541
48
                                         const IColumn* c1) const {
542
48
        bool c0_const = is_column_const(*c0);
543
48
        bool c1_const = is_column_const(*c1);
544
545
48
        DCHECK(!(c0_const && c1_const));
546
547
48
        auto c_res = ColumnUInt8::create();
548
48
        ColumnUInt8::Container& vec_res = c_res->get_data();
549
48
        vec_res.resize(c0->size());
550
551
48
        if (c0_const) {
552
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
553
48
        } else if (c1_const) {
554
48
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
555
48
        } else {
556
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
557
0
        }
558
559
48
        block.replace_by_position(result, std::move(c_res));
560
48
    }
561
562
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
563
136
                           const ColumnWithTypeAndName& c1) const {
564
136
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
136
        return Status::OK();
566
136
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
17
                           const ColumnWithTypeAndName& c1) const {
564
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
17
        return Status::OK();
566
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
8
                           const ColumnWithTypeAndName& c1) const {
564
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
8
        return Status::OK();
566
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
9
                           const ColumnWithTypeAndName& c1) const {
564
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
9
        return Status::OK();
566
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
43
                           const ColumnWithTypeAndName& c1) const {
564
43
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
43
        return Status::OK();
566
43
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
11
                           const ColumnWithTypeAndName& c1) const {
564
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
11
        return Status::OK();
566
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
563
48
                           const ColumnWithTypeAndName& c1) const {
564
48
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
565
48
        return Status::OK();
566
48
    }
567
568
public:
569
221
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
569
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
80
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
569
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
569
1
    String get_name() const override { return name; }
570
571
264k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
241k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
1.18k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
571
4.92k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
6.54k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
571
3.01k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
571
8.24k
    size_t get_number_of_arguments() const override { return 2; }
572
573
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
574
2.51k
                                                const VExprSPtrs& arguments) const override {
575
2.51k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
2.51k
        DORIS_CHECK(op.has_value());
577
2.51k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
2.51k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
1.50k
                                                const VExprSPtrs& arguments) const override {
575
1.50k
        auto op = comparison_zonemap_detail::op_from_name(name);
576
1.50k
        DORIS_CHECK(op.has_value());
577
1.50k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
1.50k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
140
                                                const VExprSPtrs& arguments) const override {
575
140
        auto op = comparison_zonemap_detail::op_from_name(name);
576
140
        DORIS_CHECK(op.has_value());
577
140
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
140
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
197
                                                const VExprSPtrs& arguments) const override {
575
197
        auto op = comparison_zonemap_detail::op_from_name(name);
576
197
        DORIS_CHECK(op.has_value());
577
197
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
197
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
226
                                                const VExprSPtrs& arguments) const override {
575
226
        auto op = comparison_zonemap_detail::op_from_name(name);
576
226
        DORIS_CHECK(op.has_value());
577
226
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
226
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
266
                                                const VExprSPtrs& arguments) const override {
575
266
        auto op = comparison_zonemap_detail::op_from_name(name);
576
266
        DORIS_CHECK(op.has_value());
577
266
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
266
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
574
179
                                                const VExprSPtrs& arguments) const override {
575
179
        auto op = comparison_zonemap_detail::op_from_name(name);
576
179
        DORIS_CHECK(op.has_value());
577
179
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
578
179
    }
579
580
29.4k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
29.4k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
29.5k
               comparison_zonemap_detail::can_evaluate(arguments);
583
29.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
13.4k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
13.4k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
13.4k
               comparison_zonemap_detail::can_evaluate(arguments);
583
13.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
1.25k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
1.25k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
1.25k
               comparison_zonemap_detail::can_evaluate(arguments);
583
1.25k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
5.16k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
5.16k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
5.16k
               comparison_zonemap_detail::can_evaluate(arguments);
583
5.16k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
4.00k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
4.00k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
4.01k
               comparison_zonemap_detail::can_evaluate(arguments);
583
4.00k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
3.51k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
3.51k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
3.51k
               comparison_zonemap_detail::can_evaluate(arguments);
583
3.51k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
580
2.10k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
581
2.10k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
582
2.11k
               comparison_zonemap_detail::can_evaluate(arguments);
583
2.10k
    }
584
585
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
586
264k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
264k
        return std::make_shared<DataTypeUInt8>();
588
264k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
240k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
240k
        return std::make_shared<DataTypeUInt8>();
588
240k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
1.18k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
1.18k
        return std::make_shared<DataTypeUInt8>();
588
1.18k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
4.92k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
4.92k
        return std::make_shared<DataTypeUInt8>();
588
4.92k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
6.54k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
6.54k
        return std::make_shared<DataTypeUInt8>();
588
6.54k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
3.01k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
3.01k
        return std::make_shared<DataTypeUInt8>();
588
3.01k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
586
8.24k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
587
8.24k
        return std::make_shared<DataTypeUInt8>();
588
8.24k
    }
589
590
    Status evaluate_inverted_index(
591
            const ColumnsWithTypeAndName& arguments,
592
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
593
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
594
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
595
1.35k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
1.35k
        DCHECK(arguments.size() == 1);
597
1.35k
        DCHECK(data_type_with_names.size() == 1);
598
1.35k
        DCHECK(iterators.size() == 1);
599
1.35k
        auto* iter = iterators[0];
600
1.35k
        auto data_type_with_name = data_type_with_names[0];
601
1.35k
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
1.35k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
310
            return Status::OK();
606
310
        }
607
1.04k
        segment_v2::InvertedIndexQueryType query_type;
608
1.04k
        std::string_view name_view(name);
609
1.04k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
716
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
716
        } else if (name_view == NameLess::name) {
612
79
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
249
        } else if (name_view == NameLessOrEquals::name) {
614
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
168
        } else if (name_view == NameGreater::name) {
616
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
95
        } else if (name_view == NameGreaterOrEquals::name) {
618
95
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
95
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
1.04k
        if (segment_v2::is_range_query(query_type) &&
624
1.04k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
133
            return Status::OK();
627
133
        }
628
911
        Field param_value;
629
911
        arguments[0].column->get(0, param_value);
630
911
        if (param_value.is_null()) {
631
2
            return Status::OK();
632
2
        }
633
909
        segment_v2::InvertedIndexParam param;
634
909
        param.column_name = data_type_with_name.first;
635
909
        param.column_type = data_type_with_name.second;
636
909
        param.query_value = param_value;
637
909
        param.query_type = query_type;
638
909
        param.num_rows = num_rows;
639
909
        param.roaring = std::make_shared<roaring::Roaring>();
640
909
        param.analyzer_ctx = analyzer_ctx;
641
909
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
755
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
755
        if (iter->has_null()) {
644
754
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
754
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
754
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
754
        }
648
755
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
755
        bitmap_result = result;
650
755
        bitmap_result.mask_out_null();
651
652
755
        if (name_view == NameNotEquals::name) {
653
58
            roaring::Roaring full_result;
654
58
            full_result.addRange(0, num_rows);
655
58
            bitmap_result.op_not(&full_result);
656
58
        }
657
658
755
        return Status::OK();
659
755
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
692
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
692
        DCHECK(arguments.size() == 1);
597
692
        DCHECK(data_type_with_names.size() == 1);
598
692
        DCHECK(iterators.size() == 1);
599
692
        auto* iter = iterators[0];
600
692
        auto data_type_with_name = data_type_with_names[0];
601
692
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
692
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
42
            return Status::OK();
606
42
        }
607
650
        segment_v2::InvertedIndexQueryType query_type;
608
650
        std::string_view name_view(name);
609
650
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
650
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
650
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
0
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
650
        if (segment_v2::is_range_query(query_type) &&
624
650
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
0
            return Status::OK();
627
0
        }
628
650
        Field param_value;
629
650
        arguments[0].column->get(0, param_value);
630
650
        if (param_value.is_null()) {
631
2
            return Status::OK();
632
2
        }
633
648
        segment_v2::InvertedIndexParam param;
634
648
        param.column_name = data_type_with_name.first;
635
648
        param.column_type = data_type_with_name.second;
636
648
        param.query_value = param_value;
637
648
        param.query_type = query_type;
638
648
        param.num_rows = num_rows;
639
648
        param.roaring = std::make_shared<roaring::Roaring>();
640
648
        param.analyzer_ctx = analyzer_ctx;
641
648
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
601
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
602
        if (iter->has_null()) {
644
602
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
602
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
602
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
602
        }
648
601
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
601
        bitmap_result = result;
650
601
        bitmap_result.mask_out_null();
651
652
601
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
601
        return Status::OK();
659
601
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
72
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
72
        DCHECK(arguments.size() == 1);
597
72
        DCHECK(data_type_with_names.size() == 1);
598
72
        DCHECK(iterators.size() == 1);
599
72
        auto* iter = iterators[0];
600
72
        auto data_type_with_name = data_type_with_names[0];
601
72
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
72
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
6
            return Status::OK();
606
6
        }
607
66
        segment_v2::InvertedIndexQueryType query_type;
608
66
        std::string_view name_view(name);
609
66
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
66
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
66
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
0
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
66
        if (segment_v2::is_range_query(query_type) &&
624
66
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
0
            return Status::OK();
627
0
        }
628
66
        Field param_value;
629
66
        arguments[0].column->get(0, param_value);
630
66
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
66
        segment_v2::InvertedIndexParam param;
634
66
        param.column_name = data_type_with_name.first;
635
66
        param.column_type = data_type_with_name.second;
636
66
        param.query_value = param_value;
637
66
        param.query_type = query_type;
638
66
        param.num_rows = num_rows;
639
66
        param.roaring = std::make_shared<roaring::Roaring>();
640
66
        param.analyzer_ctx = analyzer_ctx;
641
66
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
59
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
59
        if (iter->has_null()) {
644
59
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
59
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
59
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
59
        }
648
59
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
59
        bitmap_result = result;
650
59
        bitmap_result.mask_out_null();
651
652
59
        if (name_view == NameNotEquals::name) {
653
58
            roaring::Roaring full_result;
654
58
            full_result.addRange(0, num_rows);
655
58
            bitmap_result.op_not(&full_result);
656
58
        }
657
658
59
        return Status::OK();
659
59
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
112
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
112
        DCHECK(arguments.size() == 1);
597
112
        DCHECK(data_type_with_names.size() == 1);
598
112
        DCHECK(iterators.size() == 1);
599
112
        auto* iter = iterators[0];
600
112
        auto data_type_with_name = data_type_with_names[0];
601
112
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
112
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
39
            return Status::OK();
606
39
        }
607
73
        segment_v2::InvertedIndexQueryType query_type;
608
73
        std::string_view name_view(name);
609
73
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
73
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
73
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
73
        } else if (name_view == NameGreater::name) {
616
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
73
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
73
        if (segment_v2::is_range_query(query_type) &&
624
73
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
17
            return Status::OK();
627
17
        }
628
56
        Field param_value;
629
56
        arguments[0].column->get(0, param_value);
630
56
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
56
        segment_v2::InvertedIndexParam param;
634
56
        param.column_name = data_type_with_name.first;
635
56
        param.column_type = data_type_with_name.second;
636
56
        param.query_value = param_value;
637
56
        param.query_type = query_type;
638
56
        param.num_rows = num_rows;
639
56
        param.roaring = std::make_shared<roaring::Roaring>();
640
56
        param.analyzer_ctx = analyzer_ctx;
641
56
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
37
        if (iter->has_null()) {
644
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
37
        }
648
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
37
        bitmap_result = result;
650
37
        bitmap_result.mask_out_null();
651
652
37
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
37
        return Status::OK();
659
37
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
181
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
181
        DCHECK(arguments.size() == 1);
597
181
        DCHECK(data_type_with_names.size() == 1);
598
181
        DCHECK(iterators.size() == 1);
599
181
        auto* iter = iterators[0];
600
181
        auto data_type_with_name = data_type_with_names[0];
601
181
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
181
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
86
            return Status::OK();
606
86
        }
607
95
        segment_v2::InvertedIndexQueryType query_type;
608
95
        std::string_view name_view(name);
609
95
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
95
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
95
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
95
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
95
        } else if (name_view == NameGreaterOrEquals::name) {
618
95
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
95
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
95
        if (segment_v2::is_range_query(query_type) &&
624
95
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
47
            return Status::OK();
627
47
        }
628
48
        Field param_value;
629
48
        arguments[0].column->get(0, param_value);
630
48
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
48
        segment_v2::InvertedIndexParam param;
634
48
        param.column_name = data_type_with_name.first;
635
48
        param.column_type = data_type_with_name.second;
636
48
        param.query_value = param_value;
637
48
        param.query_type = query_type;
638
48
        param.num_rows = num_rows;
639
48
        param.roaring = std::make_shared<roaring::Roaring>();
640
48
        param.analyzer_ctx = analyzer_ctx;
641
48
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
7
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
7
        if (iter->has_null()) {
644
7
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
7
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
7
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
7
        }
648
7
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
7
        bitmap_result = result;
650
7
        bitmap_result.mask_out_null();
651
652
7
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
7
        return Status::OK();
659
7
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
122
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
122
        DCHECK(arguments.size() == 1);
597
122
        DCHECK(data_type_with_names.size() == 1);
598
122
        DCHECK(iterators.size() == 1);
599
122
        auto* iter = iterators[0];
600
122
        auto data_type_with_name = data_type_with_names[0];
601
122
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
122
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
43
            return Status::OK();
606
43
        }
607
79
        segment_v2::InvertedIndexQueryType query_type;
608
79
        std::string_view name_view(name);
609
79
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
79
        } else if (name_view == NameLess::name) {
612
79
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
79
        } else if (name_view == NameLessOrEquals::name) {
614
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
0
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
79
        if (segment_v2::is_range_query(query_type) &&
624
79
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
18
            return Status::OK();
627
18
        }
628
61
        Field param_value;
629
61
        arguments[0].column->get(0, param_value);
630
61
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
61
        segment_v2::InvertedIndexParam param;
634
61
        param.column_name = data_type_with_name.first;
635
61
        param.column_type = data_type_with_name.second;
636
61
        param.query_value = param_value;
637
61
        param.query_type = query_type;
638
61
        param.num_rows = num_rows;
639
61
        param.roaring = std::make_shared<roaring::Roaring>();
640
61
        param.analyzer_ctx = analyzer_ctx;
641
61
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
40
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
40
        if (iter->has_null()) {
644
40
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
40
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
40
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
40
        }
648
40
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
40
        bitmap_result = result;
650
40
        bitmap_result.mask_out_null();
651
652
40
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
40
        return Status::OK();
659
40
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
595
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
596
175
        DCHECK(arguments.size() == 1);
597
175
        DCHECK(data_type_with_names.size() == 1);
598
175
        DCHECK(iterators.size() == 1);
599
175
        auto* iter = iterators[0];
600
175
        auto data_type_with_name = data_type_with_names[0];
601
175
        if (iter == nullptr) {
602
0
            return Status::OK();
603
0
        }
604
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
605
94
            return Status::OK();
606
94
        }
607
81
        segment_v2::InvertedIndexQueryType query_type;
608
81
        std::string_view name_view(name);
609
81
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
610
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
611
81
        } else if (name_view == NameLess::name) {
612
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
613
81
        } else if (name_view == NameLessOrEquals::name) {
614
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
615
81
        } else if (name_view == NameGreater::name) {
616
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
617
0
        } else if (name_view == NameGreaterOrEquals::name) {
618
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
619
0
        } else {
620
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
621
0
        }
622
623
81
        if (segment_v2::is_range_query(query_type) &&
624
81
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
625
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
626
51
            return Status::OK();
627
51
        }
628
30
        Field param_value;
629
30
        arguments[0].column->get(0, param_value);
630
30
        if (param_value.is_null()) {
631
0
            return Status::OK();
632
0
        }
633
30
        segment_v2::InvertedIndexParam param;
634
30
        param.column_name = data_type_with_name.first;
635
30
        param.column_type = data_type_with_name.second;
636
30
        param.query_value = param_value;
637
30
        param.query_type = query_type;
638
30
        param.num_rows = num_rows;
639
30
        param.roaring = std::make_shared<roaring::Roaring>();
640
30
        param.analyzer_ctx = analyzer_ctx;
641
30
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
642
11
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
643
11
        if (iter->has_null()) {
644
9
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
645
9
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
646
9
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
647
9
        }
648
11
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
649
11
        bitmap_result = result;
650
11
        bitmap_result.mask_out_null();
651
652
11
        if (name_view == NameNotEquals::name) {
653
0
            roaring::Roaring full_result;
654
0
            full_result.addRange(0, num_rows);
655
0
            bitmap_result.op_not(&full_result);
656
0
        }
657
658
11
        return Status::OK();
659
11
    }
660
661
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
662
66.8k
                        uint32_t result, size_t input_rows_count) const override {
663
66.8k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
66.8k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
66.8k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
66.8k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
66.8k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
66.8k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
66.8k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
66.8k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
66.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
66.8k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
117k
        auto can_compare = [](PrimitiveType t) -> bool {
701
117k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
117k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
33.4k
        auto can_compare = [](PrimitiveType t) -> bool {
701
33.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
33.4k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
6.01k
        auto can_compare = [](PrimitiveType t) -> bool {
701
6.01k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
6.01k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
41.0k
        auto can_compare = [](PrimitiveType t) -> bool {
701
41.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
41.0k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
4.50k
        auto can_compare = [](PrimitiveType t) -> bool {
701
4.50k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
4.50k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
16.8k
        auto can_compare = [](PrimitiveType t) -> bool {
701
16.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
16.8k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
700
16.1k
        auto can_compare = [](PrimitiveType t) -> bool {
701
16.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
16.1k
        };
703
704
66.8k
        if (can_compare(left_type->get_primitive_type()) &&
705
66.8k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
51.1k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
51.1k
        }
713
714
66.8k
        auto compare_type = left_type->get_primitive_type();
715
66.8k
        switch (compare_type) {
716
253
        case TYPE_BOOLEAN:
717
253
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
5.24k
        case TYPE_DATEV2:
719
5.24k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
1.02k
        case TYPE_DATETIMEV2:
721
1.02k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
17
        case TYPE_TIMESTAMPTZ:
723
17
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
8.71k
        case TYPE_TINYINT:
725
8.71k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
2.44k
        case TYPE_SMALLINT:
727
2.44k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
24.4k
        case TYPE_INT:
729
24.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
5.85k
        case TYPE_BIGINT:
731
5.85k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
714
        case TYPE_LARGEINT:
733
714
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
74
        case TYPE_IPV4:
735
74
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
48
        case TYPE_IPV6:
737
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
568
        case TYPE_FLOAT:
739
568
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
1.61k
        case TYPE_DOUBLE:
741
1.61k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
4
        case TYPE_TIMEV2:
743
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
391
        case TYPE_DECIMAL32:
746
1.06k
        case TYPE_DECIMAL64:
747
3.10k
        case TYPE_DECIMAL128I:
748
3.20k
        case TYPE_DECIMAL256:
749
3.20k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
3.20k
                                   col_with_type_and_name_right);
751
1.03k
        case TYPE_CHAR:
752
6.95k
        case TYPE_VARCHAR:
753
12.5k
        case TYPE_STRING:
754
12.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
136
        default:
756
136
            return execute_generic(block, result, col_with_type_and_name_left,
757
136
                                   col_with_type_and_name_right);
758
66.8k
        }
759
0
        return Status::OK();
760
66.8k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
22.9k
                        uint32_t result, size_t input_rows_count) const override {
663
22.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
22.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
22.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
22.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
22.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
22.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
22.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
22.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
22.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
22.9k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
22.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
22.9k
        };
703
704
22.9k
        if (can_compare(left_type->get_primitive_type()) &&
705
22.9k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
10.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
10.4k
        }
713
714
22.9k
        auto compare_type = left_type->get_primitive_type();
715
22.9k
        switch (compare_type) {
716
100
        case TYPE_BOOLEAN:
717
100
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
570
        case TYPE_DATEV2:
719
570
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
461
        case TYPE_DATETIMEV2:
721
461
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
4
        case TYPE_TIMESTAMPTZ:
723
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
4.99k
        case TYPE_TINYINT:
725
4.99k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
382
        case TYPE_SMALLINT:
727
382
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
1.94k
        case TYPE_INT:
729
1.94k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
1.43k
        case TYPE_BIGINT:
731
1.43k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
120
        case TYPE_LARGEINT:
733
120
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
31
        case TYPE_IPV4:
735
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
30
        case TYPE_IPV6:
737
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
111
        case TYPE_FLOAT:
739
111
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
314
        case TYPE_DOUBLE:
741
314
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
4
        case TYPE_TIMEV2:
743
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
168
        case TYPE_DECIMAL32:
746
344
        case TYPE_DECIMAL64:
747
1.23k
        case TYPE_DECIMAL128I:
748
1.26k
        case TYPE_DECIMAL256:
749
1.26k
            return execute_decimal(block, result, col_with_type_and_name_left,
750
1.26k
                                   col_with_type_and_name_right);
751
755
        case TYPE_CHAR:
752
6.08k
        case TYPE_VARCHAR:
753
11.1k
        case TYPE_STRING:
754
11.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
17
        default:
756
17
            return execute_generic(block, result, col_with_type_and_name_left,
757
17
                                   col_with_type_and_name_right);
758
22.9k
        }
759
0
        return Status::OK();
760
22.9k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
3.12k
                        uint32_t result, size_t input_rows_count) const override {
663
3.12k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
3.12k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
3.12k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
3.12k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
3.12k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
3.12k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
3.12k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
3.12k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
3.12k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
3.12k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
3.12k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
3.12k
        };
703
704
3.12k
        if (can_compare(left_type->get_primitive_type()) &&
705
3.12k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
2.89k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
2.89k
        }
713
714
3.12k
        auto compare_type = left_type->get_primitive_type();
715
3.12k
        switch (compare_type) {
716
0
        case TYPE_BOOLEAN:
717
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
70
        case TYPE_DATEV2:
719
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
0
        case TYPE_DATETIMEV2:
721
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
0
        case TYPE_TIMESTAMPTZ:
723
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
84
        case TYPE_TINYINT:
725
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
0
        case TYPE_SMALLINT:
727
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
1.43k
        case TYPE_INT:
729
1.43k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
1.20k
        case TYPE_BIGINT:
731
1.20k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
0
        case TYPE_LARGEINT:
733
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
0
        case TYPE_IPV4:
735
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
0
        case TYPE_IPV6:
737
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
48
        case TYPE_FLOAT:
739
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
60
        case TYPE_DOUBLE:
741
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
0
        case TYPE_DECIMAL32:
746
70
        case TYPE_DECIMAL64:
747
98
        case TYPE_DECIMAL128I:
748
128
        case TYPE_DECIMAL256:
749
128
            return execute_decimal(block, result, col_with_type_and_name_left,
750
128
                                   col_with_type_and_name_right);
751
1
        case TYPE_CHAR:
752
26
        case TYPE_VARCHAR:
753
86
        case TYPE_STRING:
754
86
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
8
        default:
756
8
            return execute_generic(block, result, col_with_type_and_name_left,
757
8
                                   col_with_type_and_name_right);
758
3.12k
        }
759
0
        return Status::OK();
760
3.12k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
20.9k
                        uint32_t result, size_t input_rows_count) const override {
663
20.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
20.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
20.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
20.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
20.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
20.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
20.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
20.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
20.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
20.9k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
20.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
20.9k
        };
703
704
20.9k
        if (can_compare(left_type->get_primitive_type()) &&
705
20.9k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
20.0k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
20.0k
        }
713
714
20.9k
        auto compare_type = left_type->get_primitive_type();
715
20.9k
        switch (compare_type) {
716
0
        case TYPE_BOOLEAN:
717
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
1.26k
        case TYPE_DATEV2:
719
1.26k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
2
        case TYPE_DATETIMEV2:
721
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
3
        case TYPE_TIMESTAMPTZ:
723
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
1.29k
        case TYPE_TINYINT:
725
1.29k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
1.77k
        case TYPE_SMALLINT:
727
1.77k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
12.9k
        case TYPE_INT:
729
12.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
1.76k
        case TYPE_BIGINT:
731
1.76k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
233
        case TYPE_LARGEINT:
733
233
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
4
        case TYPE_IPV4:
735
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
1
        case TYPE_IPV6:
737
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
220
        case TYPE_FLOAT:
739
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
535
        case TYPE_DOUBLE:
741
535
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
8
        case TYPE_DECIMAL32:
746
74
        case TYPE_DECIMAL64:
747
722
        case TYPE_DECIMAL128I:
748
724
        case TYPE_DECIMAL256:
749
724
            return execute_decimal(block, result, col_with_type_and_name_left,
750
724
                                   col_with_type_and_name_right);
751
14
        case TYPE_CHAR:
752
76
        case TYPE_VARCHAR:
753
184
        case TYPE_STRING:
754
184
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
9
        default:
756
9
            return execute_generic(block, result, col_with_type_and_name_left,
757
9
                                   col_with_type_and_name_right);
758
20.9k
        }
759
0
        return Status::OK();
760
20.9k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
2.47k
                        uint32_t result, size_t input_rows_count) const override {
663
2.47k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
2.47k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
2.47k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
2.47k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
2.47k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
2.47k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
2.47k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
2.47k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
2.47k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
2.47k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
2.47k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
2.47k
        };
703
704
2.47k
        if (can_compare(left_type->get_primitive_type()) &&
705
2.47k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
2.03k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
2.03k
        }
713
714
2.47k
        auto compare_type = left_type->get_primitive_type();
715
2.47k
        switch (compare_type) {
716
14
        case TYPE_BOOLEAN:
717
14
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
497
        case TYPE_DATEV2:
719
497
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
142
        case TYPE_DATETIMEV2:
721
142
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
3
        case TYPE_TIMESTAMPTZ:
723
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
75
        case TYPE_TINYINT:
725
75
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
71
        case TYPE_SMALLINT:
727
71
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
737
        case TYPE_INT:
729
737
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
227
        case TYPE_BIGINT:
731
227
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
25
        case TYPE_LARGEINT:
733
25
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
11
        case TYPE_IPV4:
735
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
1
        case TYPE_IPV6:
737
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
24
        case TYPE_FLOAT:
739
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
169
        case TYPE_DOUBLE:
741
169
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
4
        case TYPE_DECIMAL32:
746
61
        case TYPE_DECIMAL64:
747
120
        case TYPE_DECIMAL128I:
748
141
        case TYPE_DECIMAL256:
749
141
            return execute_decimal(block, result, col_with_type_and_name_left,
750
141
                                   col_with_type_and_name_right);
751
26
        case TYPE_CHAR:
752
219
        case TYPE_VARCHAR:
753
293
        case TYPE_STRING:
754
293
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
43
        default:
756
43
            return execute_generic(block, result, col_with_type_and_name_left,
757
43
                                   col_with_type_and_name_right);
758
2.47k
        }
759
0
        return Status::OK();
760
2.47k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
9.06k
                        uint32_t result, size_t input_rows_count) const override {
663
9.06k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
9.06k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
9.06k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
9.06k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
9.06k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
9.06k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
9.06k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
9.06k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
9.06k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
9.06k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
                block.get_by_position(result).column =
685
                        DataTypeUInt8()
686
                                .create_column_const(input_rows_count,
687
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
                                ->convert_to_full_column_if_const();
689
                return Status::OK();
690
0
            } else {
691
0
                block.get_by_position(result).column =
692
0
                        DataTypeUInt8()
693
0
                                .create_column_const(input_rows_count,
694
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
0
                                ->convert_to_full_column_if_const();
696
0
                return Status::OK();
697
0
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
9.06k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
9.06k
        };
703
704
9.06k
        if (can_compare(left_type->get_primitive_type()) &&
705
9.06k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
7.77k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
7.77k
        }
713
714
9.06k
        auto compare_type = left_type->get_primitive_type();
715
9.06k
        switch (compare_type) {
716
101
        case TYPE_BOOLEAN:
717
101
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
2.22k
        case TYPE_DATEV2:
719
2.22k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
334
        case TYPE_DATETIMEV2:
721
334
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
4
        case TYPE_TIMESTAMPTZ:
723
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
2.16k
        case TYPE_TINYINT:
725
2.16k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
127
        case TYPE_SMALLINT:
727
127
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
1.15k
        case TYPE_INT:
729
1.15k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
839
        case TYPE_BIGINT:
731
839
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
283
        case TYPE_LARGEINT:
733
283
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
18
        case TYPE_IPV4:
735
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
16
        case TYPE_IPV6:
737
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
145
        case TYPE_FLOAT:
739
145
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
379
        case TYPE_DOUBLE:
741
379
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
201
        case TYPE_DECIMAL32:
746
424
        case TYPE_DECIMAL64:
747
740
        case TYPE_DECIMAL128I:
748
741
        case TYPE_DECIMAL256:
749
741
            return execute_decimal(block, result, col_with_type_and_name_left,
750
741
                                   col_with_type_and_name_right);
751
196
        case TYPE_CHAR:
752
380
        case TYPE_VARCHAR:
753
534
        case TYPE_STRING:
754
534
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
11
        default:
756
11
            return execute_generic(block, result, col_with_type_and_name_left,
757
11
                                   col_with_type_and_name_right);
758
9.06k
        }
759
0
        return Status::OK();
760
9.06k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
662
8.32k
                        uint32_t result, size_t input_rows_count) const override {
663
8.32k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
664
8.32k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
665
666
8.32k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
667
8.32k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
668
8.32k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
669
8.32k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
670
671
8.32k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
672
8.32k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
673
674
        /// The case when arguments are the same (tautological comparison). Return constant.
675
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
676
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
677
8.32k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
678
8.32k
            col_left_untyped == col_right_untyped) {
679
            /// Always true: =, <=, >=
680
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
681
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
682
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
683
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
684
0
                block.get_by_position(result).column =
685
0
                        DataTypeUInt8()
686
0
                                .create_column_const(input_rows_count,
687
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
688
0
                                ->convert_to_full_column_if_const();
689
0
                return Status::OK();
690
            } else {
691
                block.get_by_position(result).column =
692
                        DataTypeUInt8()
693
                                .create_column_const(input_rows_count,
694
                                                     Field::create_field<TYPE_BOOLEAN>(0))
695
                                ->convert_to_full_column_if_const();
696
                return Status::OK();
697
            }
698
0
        }
699
700
0
        auto can_compare = [](PrimitiveType t) -> bool {
701
8.32k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
702
8.32k
        };
703
704
8.32k
        if (can_compare(left_type->get_primitive_type()) &&
705
8.32k
            can_compare(right_type->get_primitive_type())) {
706
            // check left type equals right type TODO: remove this after FE is aware of scales difference
707
7.85k
            if (!left_type->equals_ignore_precision(*right_type)) {
708
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
709
0
                                            get_name(), left_type->get_name(),
710
0
                                            right_type->get_name());
711
0
            }
712
7.85k
        }
713
714
8.32k
        auto compare_type = left_type->get_primitive_type();
715
8.32k
        switch (compare_type) {
716
38
        case TYPE_BOOLEAN:
717
38
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
718
622
        case TYPE_DATEV2:
719
622
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
720
88
        case TYPE_DATETIMEV2:
721
88
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
722
3
        case TYPE_TIMESTAMPTZ:
723
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
724
95
        case TYPE_TINYINT:
725
95
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
726
88
        case TYPE_SMALLINT:
727
88
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
728
6.24k
        case TYPE_INT:
729
6.24k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
730
386
        case TYPE_BIGINT:
731
386
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
732
53
        case TYPE_LARGEINT:
733
53
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
734
10
        case TYPE_IPV4:
735
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
736
0
        case TYPE_IPV6:
737
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
738
20
        case TYPE_FLOAT:
739
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
740
159
        case TYPE_DOUBLE:
741
159
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
742
0
        case TYPE_TIMEV2:
743
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
744
0
        case TYPE_DECIMALV2:
745
10
        case TYPE_DECIMAL32:
746
90
        case TYPE_DECIMAL64:
747
184
        case TYPE_DECIMAL128I:
748
207
        case TYPE_DECIMAL256:
749
207
            return execute_decimal(block, result, col_with_type_and_name_left,
750
207
                                   col_with_type_and_name_right);
751
41
        case TYPE_CHAR:
752
171
        case TYPE_VARCHAR:
753
264
        case TYPE_STRING:
754
264
            return execute_string(block, result, col_left_untyped, col_right_untyped);
755
48
        default:
756
48
            return execute_generic(block, result, col_with_type_and_name_left,
757
48
                                   col_with_type_and_name_right);
758
8.32k
        }
759
0
        return Status::OK();
760
8.32k
    }
761
};
762
763
} // namespace doris