Coverage Report

Created: 2026-10-14 19:55

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <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/timestamptz_value.h"
45
#include "core/value/vdatetime_value.h"
46
#include "exprs/expr_zonemap_filter.h"
47
#include "exprs/function/function.h"
48
#include "exprs/function/function_helpers.h"
49
#include "exprs/function/functions_logical.h"
50
#include "exprs/vexpr.h"
51
#include "storage/index/index_reader_helper.h"
52
#include "storage/index/inverted/inverted_index_iterator.h"
53
54
namespace doris {
55
/** Comparison functions: ==, !=, <, >, <=, >=.
56
  * The comparison functions always return 0 or 1 (UInt8).
57
  *
58
  * You can compare the following types:
59
  * - numbers and decimals;
60
  * - strings and fixed strings;
61
  * - dates;
62
  * - datetimes;
63
  *   within each group, but not from different groups;
64
  * - tuples (lexicographic comparison).
65
  *
66
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
67
  */
68
69
template <typename A, typename B, typename Op>
70
struct NumComparisonImpl {
71
    /// 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.
72
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
73
12.2k
                                        PaddedPODArray<UInt8>& c) {
74
12.2k
        size_t size = a.size();
75
12.2k
        const A* __restrict a_pos = a.data();
76
12.2k
        const B* __restrict b_pos = b.data();
77
12.2k
        UInt8* __restrict c_pos = c.data();
78
12.2k
        const A* __restrict a_end = a_pos + size;
79
80
8.41M
        while (a_pos < a_end) {
81
8.40M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
8.40M
            ++a_pos;
83
8.40M
            ++b_pos;
84
8.40M
            ++c_pos;
85
8.40M
        }
86
12.2k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
73
66
                                        PaddedPODArray<UInt8>& c) {
74
66
        size_t size = a.size();
75
66
        const A* __restrict a_pos = a.data();
76
66
        const B* __restrict b_pos = b.data();
77
66
        UInt8* __restrict c_pos = c.data();
78
66
        const A* __restrict a_end = a_pos + size;
79
80
136
        while (a_pos < a_end) {
81
70
            *c_pos = Op::apply(*a_pos, *b_pos);
82
70
            ++a_pos;
83
70
            ++b_pos;
84
70
            ++c_pos;
85
70
        }
86
66
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
168
                                        PaddedPODArray<UInt8>& c) {
74
168
        size_t size = a.size();
75
168
        const A* __restrict a_pos = a.data();
76
168
        const B* __restrict b_pos = b.data();
77
168
        UInt8* __restrict c_pos = c.data();
78
168
        const A* __restrict a_end = a_pos + size;
79
80
342
        while (a_pos < a_end) {
81
174
            *c_pos = Op::apply(*a_pos, *b_pos);
82
174
            ++a_pos;
83
174
            ++b_pos;
84
174
            ++c_pos;
85
174
        }
86
168
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
213
                                        PaddedPODArray<UInt8>& c) {
74
213
        size_t size = a.size();
75
213
        const A* __restrict a_pos = a.data();
76
213
        const B* __restrict b_pos = b.data();
77
213
        UInt8* __restrict c_pos = c.data();
78
213
        const A* __restrict a_end = a_pos + size;
79
80
448
        while (a_pos < a_end) {
81
235
            *c_pos = Op::apply(*a_pos, *b_pos);
82
235
            ++a_pos;
83
235
            ++b_pos;
84
235
            ++c_pos;
85
235
        }
86
213
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
116
                                        PaddedPODArray<UInt8>& c) {
74
116
        size_t size = a.size();
75
116
        const A* __restrict a_pos = a.data();
76
116
        const B* __restrict b_pos = b.data();
77
116
        UInt8* __restrict c_pos = c.data();
78
116
        const A* __restrict a_end = a_pos + size;
79
80
291
        while (a_pos < a_end) {
81
175
            *c_pos = Op::apply(*a_pos, *b_pos);
82
175
            ++a_pos;
83
175
            ++b_pos;
84
175
            ++c_pos;
85
175
        }
86
116
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
2
                                        PaddedPODArray<UInt8>& c) {
74
2
        size_t size = a.size();
75
2
        const A* __restrict a_pos = a.data();
76
2
        const B* __restrict b_pos = b.data();
77
2
        UInt8* __restrict c_pos = c.data();
78
2
        const A* __restrict a_end = a_pos + size;
79
80
12
        while (a_pos < a_end) {
81
10
            *c_pos = Op::apply(*a_pos, *b_pos);
82
10
            ++a_pos;
83
10
            ++b_pos;
84
10
            ++c_pos;
85
10
        }
86
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
129
                                        PaddedPODArray<UInt8>& c) {
74
129
        size_t size = a.size();
75
129
        const A* __restrict a_pos = a.data();
76
129
        const B* __restrict b_pos = b.data();
77
129
        UInt8* __restrict c_pos = c.data();
78
129
        const A* __restrict a_end = a_pos + size;
79
80
400
        while (a_pos < a_end) {
81
271
            *c_pos = Op::apply(*a_pos, *b_pos);
82
271
            ++a_pos;
83
271
            ++b_pos;
84
271
            ++c_pos;
85
271
        }
86
129
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
93
                                        PaddedPODArray<UInt8>& c) {
74
93
        size_t size = a.size();
75
93
        const A* __restrict a_pos = a.data();
76
93
        const B* __restrict b_pos = b.data();
77
93
        UInt8* __restrict c_pos = c.data();
78
93
        const A* __restrict a_end = a_pos + size;
79
80
186
        while (a_pos < a_end) {
81
93
            *c_pos = Op::apply(*a_pos, *b_pos);
82
93
            ++a_pos;
83
93
            ++b_pos;
84
93
            ++c_pos;
85
93
        }
86
93
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
979
                                        PaddedPODArray<UInt8>& c) {
74
979
        size_t size = a.size();
75
979
        const A* __restrict a_pos = a.data();
76
979
        const B* __restrict b_pos = b.data();
77
979
        UInt8* __restrict c_pos = c.data();
78
979
        const A* __restrict a_end = a_pos + size;
79
80
3.23k
        while (a_pos < a_end) {
81
2.25k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
2.25k
            ++a_pos;
83
2.25k
            ++b_pos;
84
2.25k
            ++c_pos;
85
2.25k
        }
86
979
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
162
                                        PaddedPODArray<UInt8>& c) {
74
162
        size_t size = a.size();
75
162
        const A* __restrict a_pos = a.data();
76
162
        const B* __restrict b_pos = b.data();
77
162
        UInt8* __restrict c_pos = c.data();
78
162
        const A* __restrict a_end = a_pos + size;
79
80
1.40k
        while (a_pos < a_end) {
81
1.24k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1.24k
            ++a_pos;
83
1.24k
            ++b_pos;
84
1.24k
            ++c_pos;
85
1.24k
        }
86
162
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
50
                                        PaddedPODArray<UInt8>& c) {
74
50
        size_t size = a.size();
75
50
        const A* __restrict a_pos = a.data();
76
50
        const B* __restrict b_pos = b.data();
77
50
        UInt8* __restrict c_pos = c.data();
78
50
        const A* __restrict a_end = a_pos + size;
79
80
100
        while (a_pos < a_end) {
81
50
            *c_pos = Op::apply(*a_pos, *b_pos);
82
50
            ++a_pos;
83
50
            ++b_pos;
84
50
            ++c_pos;
85
50
        }
86
50
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
5
                                        PaddedPODArray<UInt8>& c) {
74
5
        size_t size = a.size();
75
5
        const A* __restrict a_pos = a.data();
76
5
        const B* __restrict b_pos = b.data();
77
5
        UInt8* __restrict c_pos = c.data();
78
5
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
5
            *c_pos = Op::apply(*a_pos, *b_pos);
82
5
            ++a_pos;
83
5
            ++b_pos;
84
5
            ++c_pos;
85
5
        }
86
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
13
                                        PaddedPODArray<UInt8>& c) {
74
13
        size_t size = a.size();
75
13
        const A* __restrict a_pos = a.data();
76
13
        const B* __restrict b_pos = b.data();
77
13
        UInt8* __restrict c_pos = c.data();
78
13
        const A* __restrict a_end = a_pos + size;
79
80
26
        while (a_pos < a_end) {
81
13
            *c_pos = Op::apply(*a_pos, *b_pos);
82
13
            ++a_pos;
83
13
            ++b_pos;
84
13
            ++c_pos;
85
13
        }
86
13
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
785
                                        PaddedPODArray<UInt8>& c) {
74
785
        size_t size = a.size();
75
785
        const A* __restrict a_pos = a.data();
76
785
        const B* __restrict b_pos = b.data();
77
785
        UInt8* __restrict c_pos = c.data();
78
785
        const A* __restrict a_end = a_pos + size;
79
80
38.4k
        while (a_pos < a_end) {
81
37.6k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
37.6k
            ++a_pos;
83
37.6k
            ++b_pos;
84
37.6k
            ++c_pos;
85
37.6k
        }
86
785
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
74
                                        PaddedPODArray<UInt8>& c) {
74
74
        size_t size = a.size();
75
74
        const A* __restrict a_pos = a.data();
76
74
        const B* __restrict b_pos = b.data();
77
74
        UInt8* __restrict c_pos = c.data();
78
74
        const A* __restrict a_end = a_pos + size;
79
80
167
        while (a_pos < a_end) {
81
93
            *c_pos = Op::apply(*a_pos, *b_pos);
82
93
            ++a_pos;
83
93
            ++b_pos;
84
93
            ++c_pos;
85
93
        }
86
74
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
85
                                        PaddedPODArray<UInt8>& c) {
74
85
        size_t size = a.size();
75
85
        const A* __restrict a_pos = a.data();
76
85
        const B* __restrict b_pos = b.data();
77
85
        UInt8* __restrict c_pos = c.data();
78
85
        const A* __restrict a_end = a_pos + size;
79
80
236
        while (a_pos < a_end) {
81
151
            *c_pos = Op::apply(*a_pos, *b_pos);
82
151
            ++a_pos;
83
151
            ++b_pos;
84
151
            ++c_pos;
85
151
        }
86
85
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
4
                                        PaddedPODArray<UInt8>& c) {
74
4
        size_t size = a.size();
75
4
        const A* __restrict a_pos = a.data();
76
4
        const B* __restrict b_pos = b.data();
77
4
        UInt8* __restrict c_pos = c.data();
78
4
        const A* __restrict a_end = a_pos + size;
79
80
8
        while (a_pos < a_end) {
81
4
            *c_pos = Op::apply(*a_pos, *b_pos);
82
4
            ++a_pos;
83
4
            ++b_pos;
84
4
            ++c_pos;
85
4
        }
86
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
73
39
                                        PaddedPODArray<UInt8>& c) {
74
39
        size_t size = a.size();
75
39
        const A* __restrict a_pos = a.data();
76
39
        const B* __restrict b_pos = b.data();
77
39
        UInt8* __restrict c_pos = c.data();
78
39
        const A* __restrict a_end = a_pos + size;
79
80
108
        while (a_pos < a_end) {
81
69
            *c_pos = Op::apply(*a_pos, *b_pos);
82
69
            ++a_pos;
83
69
            ++b_pos;
84
69
            ++c_pos;
85
69
        }
86
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
8
                                        PaddedPODArray<UInt8>& c) {
74
8
        size_t size = a.size();
75
8
        const A* __restrict a_pos = a.data();
76
8
        const B* __restrict b_pos = b.data();
77
8
        UInt8* __restrict c_pos = c.data();
78
8
        const A* __restrict a_end = a_pos + size;
79
80
16
        while (a_pos < a_end) {
81
8
            *c_pos = Op::apply(*a_pos, *b_pos);
82
8
            ++a_pos;
83
8
            ++b_pos;
84
8
            ++c_pos;
85
8
        }
86
8
    }
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
73
56
                                        PaddedPODArray<UInt8>& c) {
74
56
        size_t size = a.size();
75
56
        const A* __restrict a_pos = a.data();
76
56
        const B* __restrict b_pos = b.data();
77
56
        UInt8* __restrict c_pos = c.data();
78
56
        const A* __restrict a_end = a_pos + size;
79
80
252
        while (a_pos < a_end) {
81
196
            *c_pos = Op::apply(*a_pos, *b_pos);
82
196
            ++a_pos;
83
196
            ++b_pos;
84
196
            ++c_pos;
85
196
        }
86
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
73
1.25k
                                        PaddedPODArray<UInt8>& c) {
74
1.25k
        size_t size = a.size();
75
1.25k
        const A* __restrict a_pos = a.data();
76
1.25k
        const B* __restrict b_pos = b.data();
77
1.25k
        UInt8* __restrict c_pos = c.data();
78
1.25k
        const A* __restrict a_end = a_pos + size;
79
80
397k
        while (a_pos < a_end) {
81
396k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
396k
            ++a_pos;
83
396k
            ++b_pos;
84
396k
            ++c_pos;
85
396k
        }
86
1.25k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
404
                                        PaddedPODArray<UInt8>& c) {
74
404
        size_t size = a.size();
75
404
        const A* __restrict a_pos = a.data();
76
404
        const B* __restrict b_pos = b.data();
77
404
        UInt8* __restrict c_pos = c.data();
78
404
        const A* __restrict a_end = a_pos + size;
79
80
7.71k
        while (a_pos < a_end) {
81
7.30k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
7.30k
            ++a_pos;
83
7.30k
            ++b_pos;
84
7.30k
            ++c_pos;
85
7.30k
        }
86
404
    }
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
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
73
1.12k
                                        PaddedPODArray<UInt8>& c) {
74
1.12k
        size_t size = a.size();
75
1.12k
        const A* __restrict a_pos = a.data();
76
1.12k
        const B* __restrict b_pos = b.data();
77
1.12k
        UInt8* __restrict c_pos = c.data();
78
1.12k
        const A* __restrict a_end = a_pos + size;
79
80
5.00M
        while (a_pos < a_end) {
81
5.00M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
5.00M
            ++a_pos;
83
5.00M
            ++b_pos;
84
5.00M
            ++c_pos;
85
5.00M
        }
86
1.12k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
33
                                        PaddedPODArray<UInt8>& c) {
74
33
        size_t size = a.size();
75
33
        const A* __restrict a_pos = a.data();
76
33
        const B* __restrict b_pos = b.data();
77
33
        UInt8* __restrict c_pos = c.data();
78
33
        const A* __restrict a_end = a_pos + size;
79
80
80
        while (a_pos < a_end) {
81
47
            *c_pos = Op::apply(*a_pos, *b_pos);
82
47
            ++a_pos;
83
47
            ++b_pos;
84
47
            ++c_pos;
85
47
        }
86
33
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
9
            *c_pos = Op::apply(*a_pos, *b_pos);
82
9
            ++a_pos;
83
9
            ++b_pos;
84
9
            ++c_pos;
85
9
        }
86
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
58
                                        PaddedPODArray<UInt8>& c) {
74
58
        size_t size = a.size();
75
58
        const A* __restrict a_pos = a.data();
76
58
        const B* __restrict b_pos = b.data();
77
58
        UInt8* __restrict c_pos = c.data();
78
58
        const A* __restrict a_end = a_pos + size;
79
80
360
        while (a_pos < a_end) {
81
302
            *c_pos = Op::apply(*a_pos, *b_pos);
82
302
            ++a_pos;
83
302
            ++b_pos;
84
302
            ++c_pos;
85
302
        }
86
58
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
112
                                        PaddedPODArray<UInt8>& c) {
74
112
        size_t size = a.size();
75
112
        const A* __restrict a_pos = a.data();
76
112
        const B* __restrict b_pos = b.data();
77
112
        UInt8* __restrict c_pos = c.data();
78
112
        const A* __restrict a_end = a_pos + size;
79
80
376
        while (a_pos < a_end) {
81
264
            *c_pos = Op::apply(*a_pos, *b_pos);
82
264
            ++a_pos;
83
264
            ++b_pos;
84
264
            ++c_pos;
85
264
        }
86
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
59
                                        PaddedPODArray<UInt8>& c) {
74
59
        size_t size = a.size();
75
59
        const A* __restrict a_pos = a.data();
76
59
        const B* __restrict b_pos = b.data();
77
59
        UInt8* __restrict c_pos = c.data();
78
59
        const A* __restrict a_end = a_pos + size;
79
80
358
        while (a_pos < a_end) {
81
299
            *c_pos = Op::apply(*a_pos, *b_pos);
82
299
            ++a_pos;
83
299
            ++b_pos;
84
299
            ++c_pos;
85
299
        }
86
59
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
332
                                        PaddedPODArray<UInt8>& c) {
74
332
        size_t size = a.size();
75
332
        const A* __restrict a_pos = a.data();
76
332
        const B* __restrict b_pos = b.data();
77
332
        UInt8* __restrict c_pos = c.data();
78
332
        const A* __restrict a_end = a_pos + size;
79
80
800k
        while (a_pos < a_end) {
81
800k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
800k
            ++a_pos;
83
800k
            ++b_pos;
84
800k
            ++c_pos;
85
800k
        }
86
332
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
2
                                        PaddedPODArray<UInt8>& c) {
74
2
        size_t size = a.size();
75
2
        const A* __restrict a_pos = a.data();
76
2
        const B* __restrict b_pos = b.data();
77
2
        UInt8* __restrict c_pos = c.data();
78
2
        const A* __restrict a_end = a_pos + size;
79
80
6
        while (a_pos < a_end) {
81
4
            *c_pos = Op::apply(*a_pos, *b_pos);
82
4
            ++a_pos;
83
4
            ++b_pos;
84
4
            ++c_pos;
85
4
        }
86
2
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
104
                                        PaddedPODArray<UInt8>& c) {
74
104
        size_t size = a.size();
75
104
        const A* __restrict a_pos = a.data();
76
104
        const B* __restrict b_pos = b.data();
77
104
        UInt8* __restrict c_pos = c.data();
78
104
        const A* __restrict a_end = a_pos + size;
79
80
856
        while (a_pos < a_end) {
81
752
            *c_pos = Op::apply(*a_pos, *b_pos);
82
752
            ++a_pos;
83
752
            ++b_pos;
84
752
            ++c_pos;
85
752
        }
86
104
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
21
                                        PaddedPODArray<UInt8>& c) {
74
21
        size_t size = a.size();
75
21
        const A* __restrict a_pos = a.data();
76
21
        const B* __restrict b_pos = b.data();
77
21
        UInt8* __restrict c_pos = c.data();
78
21
        const A* __restrict a_end = a_pos + size;
79
80
61
        while (a_pos < a_end) {
81
40
            *c_pos = Op::apply(*a_pos, *b_pos);
82
40
            ++a_pos;
83
40
            ++b_pos;
84
40
            ++c_pos;
85
40
        }
86
21
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
26
                                        PaddedPODArray<UInt8>& c) {
74
26
        size_t size = a.size();
75
26
        const A* __restrict a_pos = a.data();
76
26
        const B* __restrict b_pos = b.data();
77
26
        UInt8* __restrict c_pos = c.data();
78
26
        const A* __restrict a_end = a_pos + size;
79
80
97
        while (a_pos < a_end) {
81
71
            *c_pos = Op::apply(*a_pos, *b_pos);
82
71
            ++a_pos;
83
71
            ++b_pos;
84
71
            ++c_pos;
85
71
        }
86
26
    }
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
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
6
                                        PaddedPODArray<UInt8>& c) {
74
6
        size_t size = a.size();
75
6
        const A* __restrict a_pos = a.data();
76
6
        const B* __restrict b_pos = b.data();
77
6
        UInt8* __restrict c_pos = c.data();
78
6
        const A* __restrict a_end = a_pos + size;
79
80
70
        while (a_pos < a_end) {
81
64
            *c_pos = Op::apply(*a_pos, *b_pos);
82
64
            ++a_pos;
83
64
            ++b_pos;
84
64
            ++c_pos;
85
64
        }
86
6
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
359
                                        PaddedPODArray<UInt8>& c) {
74
359
        size_t size = a.size();
75
359
        const A* __restrict a_pos = a.data();
76
359
        const B* __restrict b_pos = b.data();
77
359
        UInt8* __restrict c_pos = c.data();
78
359
        const A* __restrict a_end = a_pos + size;
79
80
1.45k
        while (a_pos < a_end) {
81
1.09k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1.09k
            ++a_pos;
83
1.09k
            ++b_pos;
84
1.09k
            ++c_pos;
85
1.09k
        }
86
359
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
9
            *c_pos = Op::apply(*a_pos, *b_pos);
82
9
            ++a_pos;
83
9
            ++b_pos;
84
9
            ++c_pos;
85
9
        }
86
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
64
        while (a_pos < a_end) {
81
44
            *c_pos = Op::apply(*a_pos, *b_pos);
82
44
            ++a_pos;
83
44
            ++b_pos;
84
44
            ++c_pos;
85
44
        }
86
20
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
16
                                        PaddedPODArray<UInt8>& c) {
74
16
        size_t size = a.size();
75
16
        const A* __restrict a_pos = a.data();
76
16
        const B* __restrict b_pos = b.data();
77
16
        UInt8* __restrict c_pos = c.data();
78
16
        const A* __restrict a_end = a_pos + size;
79
80
85
        while (a_pos < a_end) {
81
69
            *c_pos = Op::apply(*a_pos, *b_pos);
82
69
            ++a_pos;
83
69
            ++b_pos;
84
69
            ++c_pos;
85
69
        }
86
16
    }
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
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
108
                                        PaddedPODArray<UInt8>& c) {
74
108
        size_t size = a.size();
75
108
        const A* __restrict a_pos = a.data();
76
108
        const B* __restrict b_pos = b.data();
77
108
        UInt8* __restrict c_pos = c.data();
78
108
        const A* __restrict a_end = a_pos + size;
79
80
864
        while (a_pos < a_end) {
81
756
            *c_pos = Op::apply(*a_pos, *b_pos);
82
756
            ++a_pos;
83
756
            ++b_pos;
84
756
            ++c_pos;
85
756
        }
86
108
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
25
                                        PaddedPODArray<UInt8>& c) {
74
25
        size_t size = a.size();
75
25
        const A* __restrict a_pos = a.data();
76
25
        const B* __restrict b_pos = b.data();
77
25
        UInt8* __restrict c_pos = c.data();
78
25
        const A* __restrict a_end = a_pos + size;
79
80
69
        while (a_pos < a_end) {
81
44
            *c_pos = Op::apply(*a_pos, *b_pos);
82
44
            ++a_pos;
83
44
            ++b_pos;
84
44
            ++c_pos;
85
44
        }
86
25
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
73
86
                                        PaddedPODArray<UInt8>& c) {
74
86
        size_t size = a.size();
75
86
        const A* __restrict a_pos = a.data();
76
86
        const B* __restrict b_pos = b.data();
77
86
        UInt8* __restrict c_pos = c.data();
78
86
        const A* __restrict a_end = a_pos + size;
79
80
346
        while (a_pos < a_end) {
81
260
            *c_pos = Op::apply(*a_pos, *b_pos);
82
260
            ++a_pos;
83
260
            ++b_pos;
84
260
            ++c_pos;
85
260
        }
86
86
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
1.82k
                                        PaddedPODArray<UInt8>& c) {
74
1.82k
        size_t size = a.size();
75
1.82k
        const A* __restrict a_pos = a.data();
76
1.82k
        const B* __restrict b_pos = b.data();
77
1.82k
        UInt8* __restrict c_pos = c.data();
78
1.82k
        const A* __restrict a_end = a_pos + size;
79
80
1.80M
        while (a_pos < a_end) {
81
1.80M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1.80M
            ++a_pos;
83
1.80M
            ++b_pos;
84
1.80M
            ++c_pos;
85
1.80M
        }
86
1.82k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
242
                                        PaddedPODArray<UInt8>& c) {
74
242
        size_t size = a.size();
75
242
        const A* __restrict a_pos = a.data();
76
242
        const B* __restrict b_pos = b.data();
77
242
        UInt8* __restrict c_pos = c.data();
78
242
        const A* __restrict a_end = a_pos + size;
79
80
832
        while (a_pos < a_end) {
81
590
            *c_pos = Op::apply(*a_pos, *b_pos);
82
590
            ++a_pos;
83
590
            ++b_pos;
84
590
            ++c_pos;
85
590
        }
86
242
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
109
                                        PaddedPODArray<UInt8>& c) {
74
109
        size_t size = a.size();
75
109
        const A* __restrict a_pos = a.data();
76
109
        const B* __restrict b_pos = b.data();
77
109
        UInt8* __restrict c_pos = c.data();
78
109
        const A* __restrict a_end = a_pos + size;
79
80
229
        while (a_pos < a_end) {
81
120
            *c_pos = Op::apply(*a_pos, *b_pos);
82
120
            ++a_pos;
83
120
            ++b_pos;
84
120
            ++c_pos;
85
120
        }
86
109
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
9
            *c_pos = Op::apply(*a_pos, *b_pos);
82
9
            ++a_pos;
83
9
            ++b_pos;
84
9
            ++c_pos;
85
9
        }
86
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
213
                                        PaddedPODArray<UInt8>& c) {
74
213
        size_t size = a.size();
75
213
        const A* __restrict a_pos = a.data();
76
213
        const B* __restrict b_pos = b.data();
77
213
        UInt8* __restrict c_pos = c.data();
78
213
        const A* __restrict a_end = a_pos + size;
79
80
600
        while (a_pos < a_end) {
81
387
            *c_pos = Op::apply(*a_pos, *b_pos);
82
387
            ++a_pos;
83
387
            ++b_pos;
84
387
            ++c_pos;
85
387
        }
86
213
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
160
                                        PaddedPODArray<UInt8>& c) {
74
160
        size_t size = a.size();
75
160
        const A* __restrict a_pos = a.data();
76
160
        const B* __restrict b_pos = b.data();
77
160
        UInt8* __restrict c_pos = c.data();
78
160
        const A* __restrict a_end = a_pos + size;
79
80
496
        while (a_pos < a_end) {
81
336
            *c_pos = Op::apply(*a_pos, *b_pos);
82
336
            ++a_pos;
83
336
            ++b_pos;
84
336
            ++c_pos;
85
336
        }
86
160
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
878
                                        PaddedPODArray<UInt8>& c) {
74
878
        size_t size = a.size();
75
878
        const A* __restrict a_pos = a.data();
76
878
        const B* __restrict b_pos = b.data();
77
878
        UInt8* __restrict c_pos = c.data();
78
878
        const A* __restrict a_end = a_pos + size;
79
80
2.48k
        while (a_pos < a_end) {
81
1.60k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1.60k
            ++a_pos;
83
1.60k
            ++b_pos;
84
1.60k
            ++c_pos;
85
1.60k
        }
86
878
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
329
                                        PaddedPODArray<UInt8>& c) {
74
329
        size_t size = a.size();
75
329
        const A* __restrict a_pos = a.data();
76
329
        const B* __restrict b_pos = b.data();
77
329
        UInt8* __restrict c_pos = c.data();
78
329
        const A* __restrict a_end = a_pos + size;
79
80
337k
        while (a_pos < a_end) {
81
337k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
337k
            ++a_pos;
83
337k
            ++b_pos;
84
337k
            ++c_pos;
85
337k
        }
86
329
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
135
                                        PaddedPODArray<UInt8>& c) {
74
135
        size_t size = a.size();
75
135
        const A* __restrict a_pos = a.data();
76
135
        const B* __restrict b_pos = b.data();
77
135
        UInt8* __restrict c_pos = c.data();
78
135
        const A* __restrict a_end = a_pos + size;
79
80
444
        while (a_pos < a_end) {
81
309
            *c_pos = Op::apply(*a_pos, *b_pos);
82
309
            ++a_pos;
83
309
            ++b_pos;
84
309
            ++c_pos;
85
309
        }
86
135
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
15
                                        PaddedPODArray<UInt8>& c) {
74
15
        size_t size = a.size();
75
15
        const A* __restrict a_pos = a.data();
76
15
        const B* __restrict b_pos = b.data();
77
15
        UInt8* __restrict c_pos = c.data();
78
15
        const A* __restrict a_end = a_pos + size;
79
80
30
        while (a_pos < a_end) {
81
15
            *c_pos = Op::apply(*a_pos, *b_pos);
82
15
            ++a_pos;
83
15
            ++b_pos;
84
15
            ++c_pos;
85
15
        }
86
15
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
15
                                        PaddedPODArray<UInt8>& c) {
74
15
        size_t size = a.size();
75
15
        const A* __restrict a_pos = a.data();
76
15
        const B* __restrict b_pos = b.data();
77
15
        UInt8* __restrict c_pos = c.data();
78
15
        const A* __restrict a_end = a_pos + size;
79
80
30
        while (a_pos < a_end) {
81
15
            *c_pos = Op::apply(*a_pos, *b_pos);
82
15
            ++a_pos;
83
15
            ++b_pos;
84
15
            ++c_pos;
85
15
        }
86
15
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
110
                                        PaddedPODArray<UInt8>& c) {
74
110
        size_t size = a.size();
75
110
        const A* __restrict a_pos = a.data();
76
110
        const B* __restrict b_pos = b.data();
77
110
        UInt8* __restrict c_pos = c.data();
78
110
        const A* __restrict a_end = a_pos + size;
79
80
868
        while (a_pos < a_end) {
81
758
            *c_pos = Op::apply(*a_pos, *b_pos);
82
758
            ++a_pos;
83
758
            ++b_pos;
84
758
            ++c_pos;
85
758
        }
86
110
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
134
                                        PaddedPODArray<UInt8>& c) {
74
134
        size_t size = a.size();
75
134
        const A* __restrict a_pos = a.data();
76
134
        const B* __restrict b_pos = b.data();
77
134
        UInt8* __restrict c_pos = c.data();
78
134
        const A* __restrict a_end = a_pos + size;
79
80
461
        while (a_pos < a_end) {
81
327
            *c_pos = Op::apply(*a_pos, *b_pos);
82
327
            ++a_pos;
83
327
            ++b_pos;
84
327
            ++c_pos;
85
327
        }
86
134
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
129
                                        PaddedPODArray<UInt8>& c) {
74
129
        size_t size = a.size();
75
129
        const A* __restrict a_pos = a.data();
76
129
        const B* __restrict b_pos = b.data();
77
129
        UInt8* __restrict c_pos = c.data();
78
129
        const A* __restrict a_end = a_pos + size;
79
80
459
        while (a_pos < a_end) {
81
330
            *c_pos = Op::apply(*a_pos, *b_pos);
82
330
            ++a_pos;
83
330
            ++b_pos;
84
330
            ++c_pos;
85
330
        }
86
129
    }
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
73
386
                                        PaddedPODArray<UInt8>& c) {
74
386
        size_t size = a.size();
75
386
        const A* __restrict a_pos = a.data();
76
386
        const B* __restrict b_pos = b.data();
77
386
        UInt8* __restrict c_pos = c.data();
78
386
        const A* __restrict a_end = a_pos + size;
79
80
6.02k
        while (a_pos < a_end) {
81
5.64k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
5.64k
            ++a_pos;
83
5.64k
            ++b_pos;
84
5.64k
            ++c_pos;
85
5.64k
        }
86
386
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
24
                                        PaddedPODArray<UInt8>& c) {
74
24
        size_t size = a.size();
75
24
        const A* __restrict a_pos = a.data();
76
24
        const B* __restrict b_pos = b.data();
77
24
        UInt8* __restrict c_pos = c.data();
78
24
        const A* __restrict a_end = a_pos + size;
79
80
62
        while (a_pos < a_end) {
81
38
            *c_pos = Op::apply(*a_pos, *b_pos);
82
38
            ++a_pos;
83
38
            ++b_pos;
84
38
            ++c_pos;
85
38
        }
86
24
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
9
            *c_pos = Op::apply(*a_pos, *b_pos);
82
9
            ++a_pos;
83
9
            ++b_pos;
84
9
            ++c_pos;
85
9
        }
86
1
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
2
                                        PaddedPODArray<UInt8>& c) {
74
2
        size_t size = a.size();
75
2
        const A* __restrict a_pos = a.data();
76
2
        const B* __restrict b_pos = b.data();
77
2
        UInt8* __restrict c_pos = c.data();
78
2
        const A* __restrict a_end = a_pos + size;
79
80
7
        while (a_pos < a_end) {
81
5
            *c_pos = Op::apply(*a_pos, *b_pos);
82
5
            ++a_pos;
83
5
            ++b_pos;
84
5
            ++c_pos;
85
5
        }
86
2
    }
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
73
39
                                        PaddedPODArray<UInt8>& c) {
74
39
        size_t size = a.size();
75
39
        const A* __restrict a_pos = a.data();
76
39
        const B* __restrict b_pos = b.data();
77
39
        UInt8* __restrict c_pos = c.data();
78
39
        const A* __restrict a_end = a_pos + size;
79
80
145
        while (a_pos < a_end) {
81
106
            *c_pos = Op::apply(*a_pos, *b_pos);
82
106
            ++a_pos;
83
106
            ++b_pos;
84
106
            ++c_pos;
85
106
        }
86
39
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
71
                                        PaddedPODArray<UInt8>& c) {
74
71
        size_t size = a.size();
75
71
        const A* __restrict a_pos = a.data();
76
71
        const B* __restrict b_pos = b.data();
77
71
        UInt8* __restrict c_pos = c.data();
78
71
        const A* __restrict a_end = a_pos + size;
79
80
194
        while (a_pos < a_end) {
81
123
            *c_pos = Op::apply(*a_pos, *b_pos);
82
123
            ++a_pos;
83
123
            ++b_pos;
84
123
            ++c_pos;
85
123
        }
86
71
    }
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
_ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
104
                                        PaddedPODArray<UInt8>& c) {
74
104
        size_t size = a.size();
75
104
        const A* __restrict a_pos = a.data();
76
104
        const B* __restrict b_pos = b.data();
77
104
        UInt8* __restrict c_pos = c.data();
78
104
        const A* __restrict a_end = a_pos + size;
79
80
856
        while (a_pos < a_end) {
81
752
            *c_pos = Op::apply(*a_pos, *b_pos);
82
752
            ++a_pos;
83
752
            ++b_pos;
84
752
            ++c_pos;
85
752
        }
86
104
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
87
88
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
89
52.9k
                                          PaddedPODArray<UInt8>& c) {
90
52.9k
        size_t size = a.size();
91
52.9k
        const A* __restrict a_pos = a.data();
92
52.9k
        UInt8* __restrict c_pos = c.data();
93
52.9k
        const A* __restrict a_end = a_pos + size;
94
95
32.2M
        while (a_pos < a_end) {
96
32.2M
            *c_pos = Op::apply(*a_pos, b);
97
32.2M
            ++a_pos;
98
32.2M
            ++c_pos;
99
32.2M
        }
100
52.9k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
89
32
                                          PaddedPODArray<UInt8>& c) {
90
32
        size_t size = a.size();
91
32
        const A* __restrict a_pos = a.data();
92
32
        UInt8* __restrict c_pos = c.data();
93
32
        const A* __restrict a_end = a_pos + size;
94
95
180
        while (a_pos < a_end) {
96
148
            *c_pos = Op::apply(*a_pos, b);
97
148
            ++a_pos;
98
148
            ++c_pos;
99
148
        }
100
32
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
454
                                          PaddedPODArray<UInt8>& c) {
90
454
        size_t size = a.size();
91
454
        const A* __restrict a_pos = a.data();
92
454
        UInt8* __restrict c_pos = c.data();
93
454
        const A* __restrict a_end = a_pos + size;
94
95
202k
        while (a_pos < a_end) {
96
202k
            *c_pos = Op::apply(*a_pos, b);
97
202k
            ++a_pos;
98
202k
            ++c_pos;
99
202k
        }
100
454
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
176
                                          PaddedPODArray<UInt8>& c) {
90
176
        size_t size = a.size();
91
176
        const A* __restrict a_pos = a.data();
92
176
        UInt8* __restrict c_pos = c.data();
93
176
        const A* __restrict a_end = a_pos + size;
94
95
117k
        while (a_pos < a_end) {
96
117k
            *c_pos = Op::apply(*a_pos, b);
97
117k
            ++a_pos;
98
117k
            ++c_pos;
99
117k
        }
100
176
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
86
                                          PaddedPODArray<UInt8>& c) {
90
86
        size_t size = a.size();
91
86
        const A* __restrict a_pos = a.data();
92
86
        UInt8* __restrict c_pos = c.data();
93
86
        const A* __restrict a_end = a_pos + size;
94
95
178
        while (a_pos < a_end) {
96
92
            *c_pos = Op::apply(*a_pos, b);
97
92
            ++a_pos;
98
92
            ++c_pos;
99
92
        }
100
86
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
10
                                          PaddedPODArray<UInt8>& c) {
90
10
        size_t size = a.size();
91
10
        const A* __restrict a_pos = a.data();
92
10
        UInt8* __restrict c_pos = c.data();
93
10
        const A* __restrict a_end = a_pos + size;
94
95
20
        while (a_pos < a_end) {
96
10
            *c_pos = Op::apply(*a_pos, b);
97
10
            ++a_pos;
98
10
            ++c_pos;
99
10
        }
100
10
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
5.82k
                                          PaddedPODArray<UInt8>& c) {
90
5.82k
        size_t size = a.size();
91
5.82k
        const A* __restrict a_pos = a.data();
92
5.82k
        UInt8* __restrict c_pos = c.data();
93
5.82k
        const A* __restrict a_end = a_pos + size;
94
95
8.92M
        while (a_pos < a_end) {
96
8.91M
            *c_pos = Op::apply(*a_pos, b);
97
8.91M
            ++a_pos;
98
8.91M
            ++c_pos;
99
8.91M
        }
100
5.82k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
305
                                          PaddedPODArray<UInt8>& c) {
90
305
        size_t size = a.size();
91
305
        const A* __restrict a_pos = a.data();
92
305
        UInt8* __restrict c_pos = c.data();
93
305
        const A* __restrict a_end = a_pos + size;
94
95
101k
        while (a_pos < a_end) {
96
100k
            *c_pos = Op::apply(*a_pos, b);
97
100k
            ++a_pos;
98
100k
            ++c_pos;
99
100k
        }
100
305
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.13k
                                          PaddedPODArray<UInt8>& c) {
90
2.13k
        size_t size = a.size();
91
2.13k
        const A* __restrict a_pos = a.data();
92
2.13k
        UInt8* __restrict c_pos = c.data();
93
2.13k
        const A* __restrict a_end = a_pos + size;
94
95
180k
        while (a_pos < a_end) {
96
178k
            *c_pos = Op::apply(*a_pos, b);
97
178k
            ++a_pos;
98
178k
            ++c_pos;
99
178k
        }
100
2.13k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.92k
                                          PaddedPODArray<UInt8>& c) {
90
2.92k
        size_t size = a.size();
91
2.92k
        const A* __restrict a_pos = a.data();
92
2.92k
        UInt8* __restrict c_pos = c.data();
93
2.92k
        const A* __restrict a_end = a_pos + size;
94
95
1.68M
        while (a_pos < a_end) {
96
1.67M
            *c_pos = Op::apply(*a_pos, b);
97
1.67M
            ++a_pos;
98
1.67M
            ++c_pos;
99
1.67M
        }
100
2.92k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
37
                                          PaddedPODArray<UInt8>& c) {
90
37
        size_t size = a.size();
91
37
        const A* __restrict a_pos = a.data();
92
37
        UInt8* __restrict c_pos = c.data();
93
37
        const A* __restrict a_end = a_pos + size;
94
95
100k
        while (a_pos < a_end) {
96
100k
            *c_pos = Op::apply(*a_pos, b);
97
100k
            ++a_pos;
98
100k
            ++c_pos;
99
100k
        }
100
37
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
7
                                          PaddedPODArray<UInt8>& c) {
90
7
        size_t size = a.size();
91
7
        const A* __restrict a_pos = a.data();
92
7
        UInt8* __restrict c_pos = c.data();
93
7
        const A* __restrict a_end = a_pos + size;
94
95
21
        while (a_pos < a_end) {
96
14
            *c_pos = Op::apply(*a_pos, b);
97
14
            ++a_pos;
98
14
            ++c_pos;
99
14
        }
100
7
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
4
                                          PaddedPODArray<UInt8>& c) {
90
4
        size_t size = a.size();
91
4
        const A* __restrict a_pos = a.data();
92
4
        UInt8* __restrict c_pos = c.data();
93
4
        const A* __restrict a_end = a_pos + size;
94
95
8
        while (a_pos < a_end) {
96
4
            *c_pos = Op::apply(*a_pos, b);
97
4
            ++a_pos;
98
4
            ++c_pos;
99
4
        }
100
4
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.02k
                                          PaddedPODArray<UInt8>& c) {
90
2.02k
        size_t size = a.size();
91
2.02k
        const A* __restrict a_pos = a.data();
92
2.02k
        UInt8* __restrict c_pos = c.data();
93
2.02k
        const A* __restrict a_end = a_pos + size;
94
95
68.5k
        while (a_pos < a_end) {
96
66.5k
            *c_pos = Op::apply(*a_pos, b);
97
66.5k
            ++a_pos;
98
66.5k
            ++c_pos;
99
66.5k
        }
100
2.02k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
845
                                          PaddedPODArray<UInt8>& c) {
90
845
        size_t size = a.size();
91
845
        const A* __restrict a_pos = a.data();
92
845
        UInt8* __restrict c_pos = c.data();
93
845
        const A* __restrict a_end = a_pos + size;
94
95
719k
        while (a_pos < a_end) {
96
718k
            *c_pos = Op::apply(*a_pos, b);
97
718k
            ++a_pos;
98
718k
            ++c_pos;
99
718k
        }
100
845
    }
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
89
31
                                          PaddedPODArray<UInt8>& c) {
90
31
        size_t size = a.size();
91
31
        const A* __restrict a_pos = a.data();
92
31
        UInt8* __restrict c_pos = c.data();
93
31
        const A* __restrict a_end = a_pos + size;
94
95
82
        while (a_pos < a_end) {
96
51
            *c_pos = Op::apply(*a_pos, b);
97
51
            ++a_pos;
98
51
            ++c_pos;
99
51
        }
100
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_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
89
28
                                          PaddedPODArray<UInt8>& c) {
90
28
        size_t size = a.size();
91
28
        const A* __restrict a_pos = a.data();
92
28
        UInt8* __restrict c_pos = c.data();
93
28
        const A* __restrict a_end = a_pos + size;
94
95
78
        while (a_pos < a_end) {
96
50
            *c_pos = Op::apply(*a_pos, b);
97
50
            ++a_pos;
98
50
            ++c_pos;
99
50
        }
100
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
272
                                          PaddedPODArray<UInt8>& c) {
90
272
        size_t size = a.size();
91
272
        const A* __restrict a_pos = a.data();
92
272
        UInt8* __restrict c_pos = c.data();
93
272
        const A* __restrict a_end = a_pos + size;
94
95
1.98k
        while (a_pos < a_end) {
96
1.70k
            *c_pos = Op::apply(*a_pos, b);
97
1.70k
            ++a_pos;
98
1.70k
            ++c_pos;
99
1.70k
        }
100
272
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
458
                                          PaddedPODArray<UInt8>& c) {
90
458
        size_t size = a.size();
91
458
        const A* __restrict a_pos = a.data();
92
458
        UInt8* __restrict c_pos = c.data();
93
458
        const A* __restrict a_end = a_pos + size;
94
95
5.64k
        while (a_pos < a_end) {
96
5.18k
            *c_pos = Op::apply(*a_pos, b);
97
5.18k
            ++a_pos;
98
5.18k
            ++c_pos;
99
5.18k
        }
100
458
    }
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
28
                                          PaddedPODArray<UInt8>& c) {
90
28
        size_t size = a.size();
91
28
        const A* __restrict a_pos = a.data();
92
28
        UInt8* __restrict c_pos = c.data();
93
28
        const A* __restrict a_end = a_pos + size;
94
95
70
        while (a_pos < a_end) {
96
42
            *c_pos = Op::apply(*a_pos, b);
97
42
            ++a_pos;
98
42
            ++c_pos;
99
42
        }
100
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
40
                                          PaddedPODArray<UInt8>& c) {
90
40
        size_t size = a.size();
91
40
        const A* __restrict a_pos = a.data();
92
40
        UInt8* __restrict c_pos = c.data();
93
40
        const A* __restrict a_end = a_pos + size;
94
95
282
        while (a_pos < a_end) {
96
242
            *c_pos = Op::apply(*a_pos, b);
97
242
            ++a_pos;
98
242
            ++c_pos;
99
242
        }
100
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
89
41
                                          PaddedPODArray<UInt8>& c) {
90
41
        size_t size = a.size();
91
41
        const A* __restrict a_pos = a.data();
92
41
        UInt8* __restrict c_pos = c.data();
93
41
        const A* __restrict a_end = a_pos + size;
94
95
149
        while (a_pos < a_end) {
96
108
            *c_pos = Op::apply(*a_pos, b);
97
108
            ++a_pos;
98
108
            ++c_pos;
99
108
        }
100
41
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
372
                                          PaddedPODArray<UInt8>& c) {
90
372
        size_t size = a.size();
91
372
        const A* __restrict a_pos = a.data();
92
372
        UInt8* __restrict c_pos = c.data();
93
372
        const A* __restrict a_end = a_pos + size;
94
95
1.34M
        while (a_pos < a_end) {
96
1.34M
            *c_pos = Op::apply(*a_pos, b);
97
1.34M
            ++a_pos;
98
1.34M
            ++c_pos;
99
1.34M
        }
100
372
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
2
                                          PaddedPODArray<UInt8>& c) {
90
2
        size_t size = a.size();
91
2
        const A* __restrict a_pos = a.data();
92
2
        UInt8* __restrict c_pos = c.data();
93
2
        const A* __restrict a_end = a_pos + size;
94
95
5
        while (a_pos < a_end) {
96
3
            *c_pos = Op::apply(*a_pos, b);
97
3
            ++a_pos;
98
3
            ++c_pos;
99
3
        }
100
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
59
                                          PaddedPODArray<UInt8>& c) {
90
59
        size_t size = a.size();
91
59
        const A* __restrict a_pos = a.data();
92
59
        UInt8* __restrict c_pos = c.data();
93
59
        const A* __restrict a_end = a_pos + size;
94
95
263
        while (a_pos < a_end) {
96
204
            *c_pos = Op::apply(*a_pos, b);
97
204
            ++a_pos;
98
204
            ++c_pos;
99
204
        }
100
59
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
34
                                          PaddedPODArray<UInt8>& c) {
90
34
        size_t size = a.size();
91
34
        const A* __restrict a_pos = a.data();
92
34
        UInt8* __restrict c_pos = c.data();
93
34
        const A* __restrict a_end = a_pos + size;
94
95
74
        while (a_pos < a_end) {
96
40
            *c_pos = Op::apply(*a_pos, b);
97
40
            ++a_pos;
98
40
            ++c_pos;
99
40
        }
100
34
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
39
                                          PaddedPODArray<UInt8>& c) {
90
39
        size_t size = a.size();
91
39
        const A* __restrict a_pos = a.data();
92
39
        UInt8* __restrict c_pos = c.data();
93
39
        const A* __restrict a_end = a_pos + size;
94
95
84
        while (a_pos < a_end) {
96
45
            *c_pos = Op::apply(*a_pos, b);
97
45
            ++a_pos;
98
45
            ++c_pos;
99
45
        }
100
39
    }
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
89
1
                                          PaddedPODArray<UInt8>& c) {
90
1
        size_t size = a.size();
91
1
        const A* __restrict a_pos = a.data();
92
1
        UInt8* __restrict c_pos = c.data();
93
1
        const A* __restrict a_end = a_pos + size;
94
95
8
        while (a_pos < a_end) {
96
7
            *c_pos = Op::apply(*a_pos, b);
97
7
            ++a_pos;
98
7
            ++c_pos;
99
7
        }
100
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.58k
                                          PaddedPODArray<UInt8>& c) {
90
1.58k
        size_t size = a.size();
91
1.58k
        const A* __restrict a_pos = a.data();
92
1.58k
        UInt8* __restrict c_pos = c.data();
93
1.58k
        const A* __restrict a_end = a_pos + size;
94
95
13.9k
        while (a_pos < a_end) {
96
12.3k
            *c_pos = Op::apply(*a_pos, b);
97
12.3k
            ++a_pos;
98
12.3k
            ++c_pos;
99
12.3k
        }
100
1.58k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.13k
                                          PaddedPODArray<UInt8>& c) {
90
2.13k
        size_t size = a.size();
91
2.13k
        const A* __restrict a_pos = a.data();
92
2.13k
        UInt8* __restrict c_pos = c.data();
93
2.13k
        const A* __restrict a_end = a_pos + size;
94
95
5.86k
        while (a_pos < a_end) {
96
3.73k
            *c_pos = Op::apply(*a_pos, b);
97
3.73k
            ++a_pos;
98
3.73k
            ++c_pos;
99
3.73k
        }
100
2.13k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.96k
                                          PaddedPODArray<UInt8>& c) {
90
1.96k
        size_t size = a.size();
91
1.96k
        const A* __restrict a_pos = a.data();
92
1.96k
        UInt8* __restrict c_pos = c.data();
93
1.96k
        const A* __restrict a_end = a_pos + size;
94
95
7.26k
        while (a_pos < a_end) {
96
5.30k
            *c_pos = Op::apply(*a_pos, b);
97
5.30k
            ++a_pos;
98
5.30k
            ++c_pos;
99
5.30k
        }
100
1.96k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
242
                                          PaddedPODArray<UInt8>& c) {
90
242
        size_t size = a.size();
91
242
        const A* __restrict a_pos = a.data();
92
242
        UInt8* __restrict c_pos = c.data();
93
242
        const A* __restrict a_end = a_pos + size;
94
95
1.20k
        while (a_pos < a_end) {
96
959
            *c_pos = Op::apply(*a_pos, b);
97
959
            ++a_pos;
98
959
            ++c_pos;
99
959
        }
100
242
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
10.4k
                                          PaddedPODArray<UInt8>& c) {
90
10.4k
        size_t size = a.size();
91
10.4k
        const A* __restrict a_pos = a.data();
92
10.4k
        UInt8* __restrict c_pos = c.data();
93
10.4k
        const A* __restrict a_end = a_pos + size;
94
95
5.27M
        while (a_pos < a_end) {
96
5.26M
            *c_pos = Op::apply(*a_pos, b);
97
5.26M
            ++a_pos;
98
5.26M
            ++c_pos;
99
5.26M
        }
100
10.4k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
4.23k
                                          PaddedPODArray<UInt8>& c) {
90
4.23k
        size_t size = a.size();
91
4.23k
        const A* __restrict a_pos = a.data();
92
4.23k
        UInt8* __restrict c_pos = c.data();
93
4.23k
        const A* __restrict a_end = a_pos + size;
94
95
976k
        while (a_pos < a_end) {
96
972k
            *c_pos = Op::apply(*a_pos, b);
97
972k
            ++a_pos;
98
972k
            ++c_pos;
99
972k
        }
100
4.23k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.68k
                                          PaddedPODArray<UInt8>& c) {
90
1.68k
        size_t size = a.size();
91
1.68k
        const A* __restrict a_pos = a.data();
92
1.68k
        UInt8* __restrict c_pos = c.data();
93
1.68k
        const A* __restrict a_end = a_pos + size;
94
95
98.8k
        while (a_pos < a_end) {
96
97.1k
            *c_pos = Op::apply(*a_pos, b);
97
97.1k
            ++a_pos;
98
97.1k
            ++c_pos;
99
97.1k
        }
100
1.68k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.07k
                                          PaddedPODArray<UInt8>& c) {
90
1.07k
        size_t size = a.size();
91
1.07k
        const A* __restrict a_pos = a.data();
92
1.07k
        UInt8* __restrict c_pos = c.data();
93
1.07k
        const A* __restrict a_end = a_pos + size;
94
95
32.8k
        while (a_pos < a_end) {
96
31.7k
            *c_pos = Op::apply(*a_pos, b);
97
31.7k
            ++a_pos;
98
31.7k
            ++c_pos;
99
31.7k
        }
100
1.07k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
293
                                          PaddedPODArray<UInt8>& c) {
90
293
        size_t size = a.size();
91
293
        const A* __restrict a_pos = a.data();
92
293
        UInt8* __restrict c_pos = c.data();
93
293
        const A* __restrict a_end = a_pos + size;
94
95
1.93k
        while (a_pos < a_end) {
96
1.63k
            *c_pos = Op::apply(*a_pos, b);
97
1.63k
            ++a_pos;
98
1.63k
            ++c_pos;
99
1.63k
        }
100
293
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
89
                                          PaddedPODArray<UInt8>& c) {
90
89
        size_t size = a.size();
91
89
        const A* __restrict a_pos = a.data();
92
89
        UInt8* __restrict c_pos = c.data();
93
89
        const A* __restrict a_end = a_pos + size;
94
95
86.2k
        while (a_pos < a_end) {
96
86.1k
            *c_pos = Op::apply(*a_pos, b);
97
86.1k
            ++a_pos;
98
86.1k
            ++c_pos;
99
86.1k
        }
100
89
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
3
                                          PaddedPODArray<UInt8>& c) {
90
3
        size_t size = a.size();
91
3
        const A* __restrict a_pos = a.data();
92
3
        UInt8* __restrict c_pos = c.data();
93
3
        const A* __restrict a_end = a_pos + size;
94
95
31
        while (a_pos < a_end) {
96
28
            *c_pos = Op::apply(*a_pos, b);
97
28
            ++a_pos;
98
28
            ++c_pos;
99
28
        }
100
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2
                                          PaddedPODArray<UInt8>& c) {
90
2
        size_t size = a.size();
91
2
        const A* __restrict a_pos = a.data();
92
2
        UInt8* __restrict c_pos = c.data();
93
2
        const A* __restrict a_end = a_pos + size;
94
95
22
        while (a_pos < a_end) {
96
20
            *c_pos = Op::apply(*a_pos, b);
97
20
            ++a_pos;
98
20
            ++c_pos;
99
20
        }
100
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
507
                                          PaddedPODArray<UInt8>& c) {
90
507
        size_t size = a.size();
91
507
        const A* __restrict a_pos = a.data();
92
507
        UInt8* __restrict c_pos = c.data();
93
507
        const A* __restrict a_end = a_pos + size;
94
95
4.12k
        while (a_pos < a_end) {
96
3.61k
            *c_pos = Op::apply(*a_pos, b);
97
3.61k
            ++a_pos;
98
3.61k
            ++c_pos;
99
3.61k
        }
100
507
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
347
                                          PaddedPODArray<UInt8>& c) {
90
347
        size_t size = a.size();
91
347
        const A* __restrict a_pos = a.data();
92
347
        UInt8* __restrict c_pos = c.data();
93
347
        const A* __restrict a_end = a_pos + size;
94
95
7.02k
        while (a_pos < a_end) {
96
6.67k
            *c_pos = Op::apply(*a_pos, b);
97
6.67k
            ++a_pos;
98
6.67k
            ++c_pos;
99
6.67k
        }
100
347
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
200
                                          PaddedPODArray<UInt8>& c) {
90
200
        size_t size = a.size();
91
200
        const A* __restrict a_pos = a.data();
92
200
        UInt8* __restrict c_pos = c.data();
93
200
        const A* __restrict a_end = a_pos + size;
94
95
2.61k
        while (a_pos < a_end) {
96
2.41k
            *c_pos = Op::apply(*a_pos, b);
97
2.41k
            ++a_pos;
98
2.41k
            ++c_pos;
99
2.41k
        }
100
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
506
                                          PaddedPODArray<UInt8>& c) {
90
506
        size_t size = a.size();
91
506
        const A* __restrict a_pos = a.data();
92
506
        UInt8* __restrict c_pos = c.data();
93
506
        const A* __restrict a_end = a_pos + size;
94
95
7.45k
        while (a_pos < a_end) {
96
6.95k
            *c_pos = Op::apply(*a_pos, b);
97
6.95k
            ++a_pos;
98
6.95k
            ++c_pos;
99
6.95k
        }
100
506
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
961
                                          PaddedPODArray<UInt8>& c) {
90
961
        size_t size = a.size();
91
961
        const A* __restrict a_pos = a.data();
92
961
        UInt8* __restrict c_pos = c.data();
93
961
        const A* __restrict a_end = a_pos + size;
94
95
284k
        while (a_pos < a_end) {
96
283k
            *c_pos = Op::apply(*a_pos, b);
97
283k
            ++a_pos;
98
283k
            ++c_pos;
99
283k
        }
100
961
    }
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
89
27
                                          PaddedPODArray<UInt8>& c) {
90
27
        size_t size = a.size();
91
27
        const A* __restrict a_pos = a.data();
92
27
        UInt8* __restrict c_pos = c.data();
93
27
        const A* __restrict a_end = a_pos + size;
94
95
119k
        while (a_pos < a_end) {
96
119k
            *c_pos = Op::apply(*a_pos, b);
97
119k
            ++a_pos;
98
119k
            ++c_pos;
99
119k
        }
100
27
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
89
27
                                          PaddedPODArray<UInt8>& c) {
90
27
        size_t size = a.size();
91
27
        const A* __restrict a_pos = a.data();
92
27
        UInt8* __restrict c_pos = c.data();
93
27
        const A* __restrict a_end = a_pos + size;
94
95
112k
        while (a_pos < a_end) {
96
112k
            *c_pos = Op::apply(*a_pos, b);
97
112k
            ++a_pos;
98
112k
            ++c_pos;
99
112k
        }
100
27
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
467
                                          PaddedPODArray<UInt8>& c) {
90
467
        size_t size = a.size();
91
467
        const A* __restrict a_pos = a.data();
92
467
        UInt8* __restrict c_pos = c.data();
93
467
        const A* __restrict a_end = a_pos + size;
94
95
1.46M
        while (a_pos < a_end) {
96
1.46M
            *c_pos = Op::apply(*a_pos, b);
97
1.46M
            ++a_pos;
98
1.46M
            ++c_pos;
99
1.46M
        }
100
467
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
154
                                          PaddedPODArray<UInt8>& c) {
90
154
        size_t size = a.size();
91
154
        const A* __restrict a_pos = a.data();
92
154
        UInt8* __restrict c_pos = c.data();
93
154
        const A* __restrict a_end = a_pos + size;
94
95
715k
        while (a_pos < a_end) {
96
715k
            *c_pos = Op::apply(*a_pos, b);
97
715k
            ++a_pos;
98
715k
            ++c_pos;
99
715k
        }
100
154
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
113
                                          PaddedPODArray<UInt8>& c) {
90
113
        size_t size = a.size();
91
113
        const A* __restrict a_pos = a.data();
92
113
        UInt8* __restrict c_pos = c.data();
93
113
        const A* __restrict a_end = a_pos + size;
94
95
417
        while (a_pos < a_end) {
96
304
            *c_pos = Op::apply(*a_pos, b);
97
304
            ++a_pos;
98
304
            ++c_pos;
99
304
        }
100
113
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
58
                                          PaddedPODArray<UInt8>& c) {
90
58
        size_t size = a.size();
91
58
        const A* __restrict a_pos = a.data();
92
58
        UInt8* __restrict c_pos = c.data();
93
58
        const A* __restrict a_end = a_pos + size;
94
95
211
        while (a_pos < a_end) {
96
153
            *c_pos = Op::apply(*a_pos, b);
97
153
            ++a_pos;
98
153
            ++c_pos;
99
153
        }
100
58
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
43
                                          PaddedPODArray<UInt8>& c) {
90
43
        size_t size = a.size();
91
43
        const A* __restrict a_pos = a.data();
92
43
        UInt8* __restrict c_pos = c.data();
93
43
        const A* __restrict a_end = a_pos + size;
94
95
101
        while (a_pos < a_end) {
96
58
            *c_pos = Op::apply(*a_pos, b);
97
58
            ++a_pos;
98
58
            ++c_pos;
99
58
        }
100
43
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
35
                                          PaddedPODArray<UInt8>& c) {
90
35
        size_t size = a.size();
91
35
        const A* __restrict a_pos = a.data();
92
35
        UInt8* __restrict c_pos = c.data();
93
35
        const A* __restrict a_end = a_pos + size;
94
95
79
        while (a_pos < a_end) {
96
44
            *c_pos = Op::apply(*a_pos, b);
97
44
            ++a_pos;
98
44
            ++c_pos;
99
44
        }
100
35
    }
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
89
53
                                          PaddedPODArray<UInt8>& c) {
90
53
        size_t size = a.size();
91
53
        const A* __restrict a_pos = a.data();
92
53
        UInt8* __restrict c_pos = c.data();
93
53
        const A* __restrict a_end = a_pos + size;
94
95
180k
        while (a_pos < a_end) {
96
180k
            *c_pos = Op::apply(*a_pos, b);
97
180k
            ++a_pos;
98
180k
            ++c_pos;
99
180k
        }
100
53
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
57
                                          PaddedPODArray<UInt8>& c) {
90
57
        size_t size = a.size();
91
57
        const A* __restrict a_pos = a.data();
92
57
        UInt8* __restrict c_pos = c.data();
93
57
        const A* __restrict a_end = a_pos + size;
94
95
155k
        while (a_pos < a_end) {
96
155k
            *c_pos = Op::apply(*a_pos, b);
97
155k
            ++a_pos;
98
155k
            ++c_pos;
99
155k
        }
100
57
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
66
                                          PaddedPODArray<UInt8>& c) {
90
66
        size_t size = a.size();
91
66
        const A* __restrict a_pos = a.data();
92
66
        UInt8* __restrict c_pos = c.data();
93
66
        const A* __restrict a_end = a_pos + size;
94
95
171k
        while (a_pos < a_end) {
96
171k
            *c_pos = Op::apply(*a_pos, b);
97
171k
            ++a_pos;
98
171k
            ++c_pos;
99
171k
        }
100
66
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
69
                                          PaddedPODArray<UInt8>& c) {
90
69
        size_t size = a.size();
91
69
        const A* __restrict a_pos = a.data();
92
69
        UInt8* __restrict c_pos = c.data();
93
69
        const A* __restrict a_end = a_pos + size;
94
95
123k
        while (a_pos < a_end) {
96
122k
            *c_pos = Op::apply(*a_pos, b);
97
122k
            ++a_pos;
98
122k
            ++c_pos;
99
122k
        }
100
69
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
587
                                          PaddedPODArray<UInt8>& c) {
90
587
        size_t size = a.size();
91
587
        const A* __restrict a_pos = a.data();
92
587
        UInt8* __restrict c_pos = c.data();
93
587
        const A* __restrict a_end = a_pos + size;
94
95
2.06M
        while (a_pos < a_end) {
96
2.06M
            *c_pos = Op::apply(*a_pos, b);
97
2.06M
            ++a_pos;
98
2.06M
            ++c_pos;
99
2.06M
        }
100
587
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
6.26k
                                          PaddedPODArray<UInt8>& c) {
90
6.26k
        size_t size = a.size();
91
6.26k
        const A* __restrict a_pos = a.data();
92
6.26k
        UInt8* __restrict c_pos = c.data();
93
6.26k
        const A* __restrict a_end = a_pos + size;
94
95
5.96M
        while (a_pos < a_end) {
96
5.96M
            *c_pos = Op::apply(*a_pos, b);
97
5.96M
            ++a_pos;
98
5.96M
            ++c_pos;
99
5.96M
        }
100
6.26k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
802
                                          PaddedPODArray<UInt8>& c) {
90
802
        size_t size = a.size();
91
802
        const A* __restrict a_pos = a.data();
92
802
        UInt8* __restrict c_pos = c.data();
93
802
        const A* __restrict a_end = a_pos + size;
94
95
4.05k
        while (a_pos < a_end) {
96
3.24k
            *c_pos = Op::apply(*a_pos, b);
97
3.24k
            ++a_pos;
98
3.24k
            ++c_pos;
99
3.24k
        }
100
802
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
559
                                          PaddedPODArray<UInt8>& c) {
90
559
        size_t size = a.size();
91
559
        const A* __restrict a_pos = a.data();
92
559
        UInt8* __restrict c_pos = c.data();
93
559
        const A* __restrict a_end = a_pos + size;
94
95
45.5k
        while (a_pos < a_end) {
96
45.0k
            *c_pos = Op::apply(*a_pos, b);
97
45.0k
            ++a_pos;
98
45.0k
            ++c_pos;
99
45.0k
        }
100
559
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
23
                                          PaddedPODArray<UInt8>& c) {
90
23
        size_t size = a.size();
91
23
        const A* __restrict a_pos = a.data();
92
23
        UInt8* __restrict c_pos = c.data();
93
23
        const A* __restrict a_end = a_pos + size;
94
95
93.2k
        while (a_pos < a_end) {
96
93.2k
            *c_pos = Op::apply(*a_pos, b);
97
93.2k
            ++a_pos;
98
93.2k
            ++c_pos;
99
93.2k
        }
100
23
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
41
                                          PaddedPODArray<UInt8>& c) {
90
41
        size_t size = a.size();
91
41
        const A* __restrict a_pos = a.data();
92
41
        UInt8* __restrict c_pos = c.data();
93
41
        const A* __restrict a_end = a_pos + size;
94
95
180k
        while (a_pos < a_end) {
96
180k
            *c_pos = Op::apply(*a_pos, b);
97
180k
            ++a_pos;
98
180k
            ++c_pos;
99
180k
        }
100
41
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
470
                                          PaddedPODArray<UInt8>& c) {
90
470
        size_t size = a.size();
91
470
        const A* __restrict a_pos = a.data();
92
470
        UInt8* __restrict c_pos = c.data();
93
470
        const A* __restrict a_end = a_pos + size;
94
95
49.6k
        while (a_pos < a_end) {
96
49.1k
            *c_pos = Op::apply(*a_pos, b);
97
49.1k
            ++a_pos;
98
49.1k
            ++c_pos;
99
49.1k
        }
100
470
    }
_ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
314
                                          PaddedPODArray<UInt8>& c) {
90
314
        size_t size = a.size();
91
314
        const A* __restrict a_pos = a.data();
92
314
        UInt8* __restrict c_pos = c.data();
93
314
        const A* __restrict a_end = a_pos + size;
94
95
3.40k
        while (a_pos < a_end) {
96
3.09k
            *c_pos = Op::apply(*a_pos, b);
97
3.09k
            ++a_pos;
98
3.09k
            ++c_pos;
99
3.09k
        }
100
314
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
4
                                          PaddedPODArray<UInt8>& c) {
90
4
        size_t size = a.size();
91
4
        const A* __restrict a_pos = a.data();
92
4
        UInt8* __restrict c_pos = c.data();
93
4
        const A* __restrict a_end = a_pos + size;
94
95
10
        while (a_pos < a_end) {
96
6
            *c_pos = Op::apply(*a_pos, b);
97
6
            ++a_pos;
98
6
            ++c_pos;
99
6
        }
100
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
89
                                          PaddedPODArray<UInt8>& c) {
90
89
        size_t size = a.size();
91
89
        const A* __restrict a_pos = a.data();
92
89
        UInt8* __restrict c_pos = c.data();
93
89
        const A* __restrict a_end = a_pos + size;
94
95
275k
        while (a_pos < a_end) {
96
275k
            *c_pos = Op::apply(*a_pos, b);
97
275k
            ++a_pos;
98
275k
            ++c_pos;
99
275k
        }
100
89
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
92
                                          PaddedPODArray<UInt8>& c) {
90
92
        size_t size = a.size();
91
92
        const A* __restrict a_pos = a.data();
92
92
        UInt8* __restrict c_pos = c.data();
93
92
        const A* __restrict a_end = a_pos + size;
94
95
275k
        while (a_pos < a_end) {
96
275k
            *c_pos = Op::apply(*a_pos, b);
97
275k
            ++a_pos;
98
275k
            ++c_pos;
99
275k
        }
100
92
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
101
102
6.33k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
6.33k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
6.33k
    }
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
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
102
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
12
    }
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
102
276
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
276
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
276
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
36
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
36
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
36
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
79
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
79
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
79
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
479
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
479
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
479
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE44EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
54
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
54
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
54
    }
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_16TimeStampNsValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_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
102
436
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
436
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
436
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE44EEEE15constant_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_16TimeStampNsValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_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
102
234
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
234
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
234
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
228
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
3.33k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
3.33k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
3.33k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
543
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
543
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
543
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
28
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
28
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE44EEEE15constant_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
102
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_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: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE44EEEE15constant_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_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_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
102
240
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
240
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
240
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
121
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
121
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
121
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
75
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
75
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
75
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
92
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
92
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
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: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE44EEEE15constant_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
102
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
48
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE44EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
105
};
106
107
/// Generic version, implemented for columns of same type.
108
template <typename Op>
109
struct GenericComparisonImpl {
110
16
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
59
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
43
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
43
        }
114
16
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
35
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
26
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
26
        }
114
9
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
7
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
6
        }
114
1
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
1
        }
114
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
1
        }
114
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
13
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
9
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
9
        }
114
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
115
116
190
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
190
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
718k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
717k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
717k
        }
121
190
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
19
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
19
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
60
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
41
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
41
        }
121
19
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
8
        }
121
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
8
        }
121
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
8
        }
121
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
72
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
72
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
359k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
359k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
359k
        }
121
72
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
75
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
75
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
358k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
358k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
358k
        }
121
75
    }
122
123
1
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
124
1
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
125
1
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
123
1
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
124
1
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
125
1
    }
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
126
};
127
128
template <typename Op>
129
struct StringComparisonImpl {
130
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
131
                                                      const ColumnString::Offsets& a_offsets,
132
                                                      const ColumnString::Chars& b_data,
133
                                                      const ColumnString::Offsets& b_offsets,
134
424
                                                      PaddedPODArray<UInt8>& c) {
135
424
        size_t size = a_offsets.size();
136
424
        ColumnString::Offset prev_a_offset = 0;
137
424
        ColumnString::Offset prev_b_offset = 0;
138
424
        const auto* a_pos = a_data.data();
139
424
        const auto* b_pos = b_data.data();
140
141
1.58k
        for (size_t i = 0; i < size; ++i) {
142
1.15k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
1.15k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
1.15k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
1.15k
                             0);
146
147
1.15k
            prev_a_offset = a_offsets[i];
148
1.15k
            prev_b_offset = b_offsets[i];
149
1.15k
        }
150
424
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
134
2
                                                      PaddedPODArray<UInt8>& c) {
135
2
        size_t size = a_offsets.size();
136
2
        ColumnString::Offset prev_a_offset = 0;
137
2
        ColumnString::Offset prev_b_offset = 0;
138
2
        const auto* a_pos = a_data.data();
139
2
        const auto* b_pos = b_data.data();
140
141
49
        for (size_t i = 0; i < size; ++i) {
142
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
47
                             0);
146
147
47
            prev_a_offset = a_offsets[i];
148
47
            prev_b_offset = b_offsets[i];
149
47
        }
150
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
134
36
                                                      PaddedPODArray<UInt8>& c) {
135
36
        size_t size = a_offsets.size();
136
36
        ColumnString::Offset prev_a_offset = 0;
137
36
        ColumnString::Offset prev_b_offset = 0;
138
36
        const auto* a_pos = a_data.data();
139
36
        const auto* b_pos = b_data.data();
140
141
230
        for (size_t i = 0; i < size; ++i) {
142
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
194
                             0);
146
147
194
            prev_a_offset = a_offsets[i];
148
194
            prev_b_offset = b_offsets[i];
149
194
        }
150
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
134
386
                                                      PaddedPODArray<UInt8>& c) {
135
386
        size_t size = a_offsets.size();
136
386
        ColumnString::Offset prev_a_offset = 0;
137
386
        ColumnString::Offset prev_b_offset = 0;
138
386
        const auto* a_pos = a_data.data();
139
386
        const auto* b_pos = b_data.data();
140
141
1.30k
        for (size_t i = 0; i < size; ++i) {
142
918
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
918
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
918
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
918
                             0);
146
147
918
            prev_a_offset = a_offsets[i];
148
918
            prev_b_offset = b_offsets[i];
149
918
        }
150
386
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
151
152
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
153
                                                 const ColumnString::Offsets& a_offsets,
154
                                                 const ColumnString::Chars& b_data,
155
                                                 ColumnString::Offset b_size,
156
989
                                                 PaddedPODArray<UInt8>& c) {
157
989
        size_t size = a_offsets.size();
158
989
        ColumnString::Offset prev_a_offset = 0;
159
989
        const auto* a_pos = a_data.data();
160
989
        const auto* b_pos = b_data.data();
161
162
1.67M
        for (size_t i = 0; i < size; ++i) {
163
1.67M
            c[i] = Op::apply(
164
1.67M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
1.67M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
1.67M
                    0);
167
168
1.67M
            prev_a_offset = a_offsets[i];
169
1.67M
        }
170
989
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
203
                                                 PaddedPODArray<UInt8>& c) {
157
203
        size_t size = a_offsets.size();
158
203
        ColumnString::Offset prev_a_offset = 0;
159
203
        const auto* a_pos = a_data.data();
160
203
        const auto* b_pos = b_data.data();
161
162
358k
        for (size_t i = 0; i < size; ++i) {
163
358k
            c[i] = Op::apply(
164
358k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
358k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
358k
                    0);
167
168
358k
            prev_a_offset = a_offsets[i];
169
358k
        }
170
203
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
108
                                                 PaddedPODArray<UInt8>& c) {
157
108
        size_t size = a_offsets.size();
158
108
        ColumnString::Offset prev_a_offset = 0;
159
108
        const auto* a_pos = a_data.data();
160
108
        const auto* b_pos = b_data.data();
161
162
105k
        for (size_t i = 0; i < size; ++i) {
163
105k
            c[i] = Op::apply(
164
105k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
105k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
105k
                    0);
167
168
105k
            prev_a_offset = a_offsets[i];
169
105k
        }
170
108
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
304
                                                 PaddedPODArray<UInt8>& c) {
157
304
        size_t size = a_offsets.size();
158
304
        ColumnString::Offset prev_a_offset = 0;
159
304
        const auto* a_pos = a_data.data();
160
304
        const auto* b_pos = b_data.data();
161
162
674k
        for (size_t i = 0; i < size; ++i) {
163
673k
            c[i] = Op::apply(
164
673k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
673k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
673k
                    0);
167
168
673k
            prev_a_offset = a_offsets[i];
169
673k
        }
170
304
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
374
                                                 PaddedPODArray<UInt8>& c) {
157
374
        size_t size = a_offsets.size();
158
374
        ColumnString::Offset prev_a_offset = 0;
159
374
        const auto* a_pos = a_data.data();
160
374
        const auto* b_pos = b_data.data();
161
162
536k
        for (size_t i = 0; i < size; ++i) {
163
536k
            c[i] = Op::apply(
164
536k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
536k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
536k
                    0);
167
168
536k
            prev_a_offset = a_offsets[i];
169
536k
        }
170
374
    }
171
172
    static void constant_string_vector(const ColumnString::Chars& a_data,
173
                                       ColumnString::Offset a_size,
174
                                       const ColumnString::Chars& b_data,
175
                                       const ColumnString::Offsets& b_offsets,
176
54
                                       PaddedPODArray<UInt8>& c) {
177
54
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
178
54
                                                                               a_data, a_size, c);
179
54
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
176
48
                                       PaddedPODArray<UInt8>& c) {
177
48
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
178
48
                                                                               a_data, a_size, c);
179
48
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
176
6
                                       PaddedPODArray<UInt8>& c) {
177
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
178
6
                                                                               a_data, a_size, c);
179
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
180
};
181
182
template <bool positive>
183
struct StringEqualsImpl {
184
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
185
                                                      const ColumnString::Offsets& a_offsets,
186
                                                      const ColumnString::Chars& b_data,
187
                                                      const ColumnString::Offsets& b_offsets,
188
426
                                                      PaddedPODArray<UInt8>& c) {
189
426
        size_t size = a_offsets.size();
190
426
        ColumnString::Offset prev_a_offset = 0;
191
426
        ColumnString::Offset prev_b_offset = 0;
192
426
        const auto* a_pos = a_data.data();
193
426
        const auto* b_pos = b_data.data();
194
195
1.35k
        for (size_t i = 0; i < size; ++i) {
196
926
            auto a_size = a_offsets[i] - prev_a_offset;
197
926
            auto b_size = b_offsets[i] - prev_b_offset;
198
199
926
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
200
926
                                                               b_pos + prev_b_offset, b_size);
201
202
926
            prev_a_offset = a_offsets[i];
203
926
            prev_b_offset = b_offsets[i];
204
926
        }
205
426
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
188
416
                                                      PaddedPODArray<UInt8>& c) {
189
416
        size_t size = a_offsets.size();
190
416
        ColumnString::Offset prev_a_offset = 0;
191
416
        ColumnString::Offset prev_b_offset = 0;
192
416
        const auto* a_pos = a_data.data();
193
416
        const auto* b_pos = b_data.data();
194
195
1.32k
        for (size_t i = 0; i < size; ++i) {
196
905
            auto a_size = a_offsets[i] - prev_a_offset;
197
905
            auto b_size = b_offsets[i] - prev_b_offset;
198
199
905
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
200
905
                                                               b_pos + prev_b_offset, b_size);
201
202
905
            prev_a_offset = a_offsets[i];
203
905
            prev_b_offset = b_offsets[i];
204
905
        }
205
416
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
188
10
                                                      PaddedPODArray<UInt8>& c) {
189
10
        size_t size = a_offsets.size();
190
10
        ColumnString::Offset prev_a_offset = 0;
191
10
        ColumnString::Offset prev_b_offset = 0;
192
10
        const auto* a_pos = a_data.data();
193
10
        const auto* b_pos = b_data.data();
194
195
31
        for (size_t i = 0; i < size; ++i) {
196
21
            auto a_size = a_offsets[i] - prev_a_offset;
197
21
            auto b_size = b_offsets[i] - prev_b_offset;
198
199
21
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
200
21
                                                               b_pos + prev_b_offset, b_size);
201
202
21
            prev_a_offset = a_offsets[i];
203
21
            prev_b_offset = b_offsets[i];
204
21
        }
205
10
    }
206
207
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
208
                                                 const ColumnString::Offsets& a_offsets,
209
                                                 const ColumnString::Chars& b_data,
210
                                                 ColumnString::Offset b_size,
211
21.2k
                                                 PaddedPODArray<UInt8>& c) {
212
21.2k
        size_t size = a_offsets.size();
213
21.2k
        if (b_size == 0) {
214
1
            auto* __restrict data = c.data();
215
1
            auto* __restrict offsets = a_offsets.data();
216
217
1
            ColumnString::Offset prev_a_offset = 0;
218
4
            for (size_t i = 0; i < size; ++i) {
219
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
220
3
                prev_a_offset = offsets[i];
221
3
            }
222
21.2k
        } else {
223
21.2k
            ColumnString::Offset prev_a_offset = 0;
224
21.2k
            const auto* a_pos = a_data.data();
225
21.2k
            const auto* b_pos = b_data.data();
226
8.96M
            for (size_t i = 0; i < size; ++i) {
227
8.94M
                auto a_size = a_offsets[i] - prev_a_offset;
228
8.94M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
8.94M
                                                                   b_pos, b_size);
230
8.94M
                prev_a_offset = a_offsets[i];
231
8.94M
            }
232
21.2k
        }
233
21.2k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
211
21.1k
                                                 PaddedPODArray<UInt8>& c) {
212
21.1k
        size_t size = a_offsets.size();
213
21.1k
        if (b_size == 0) {
214
0
            auto* __restrict data = c.data();
215
0
            auto* __restrict offsets = a_offsets.data();
216
217
0
            ColumnString::Offset prev_a_offset = 0;
218
0
            for (size_t i = 0; i < size; ++i) {
219
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
220
0
                prev_a_offset = offsets[i];
221
0
            }
222
21.1k
        } else {
223
21.1k
            ColumnString::Offset prev_a_offset = 0;
224
21.1k
            const auto* a_pos = a_data.data();
225
21.1k
            const auto* b_pos = b_data.data();
226
8.90M
            for (size_t i = 0; i < size; ++i) {
227
8.88M
                auto a_size = a_offsets[i] - prev_a_offset;
228
8.88M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
8.88M
                                                                   b_pos, b_size);
230
8.88M
                prev_a_offset = a_offsets[i];
231
8.88M
            }
232
21.1k
        }
233
21.1k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
211
115
                                                 PaddedPODArray<UInt8>& c) {
212
115
        size_t size = a_offsets.size();
213
115
        if (b_size == 0) {
214
1
            auto* __restrict data = c.data();
215
1
            auto* __restrict offsets = a_offsets.data();
216
217
1
            ColumnString::Offset prev_a_offset = 0;
218
4
            for (size_t i = 0; i < size; ++i) {
219
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
220
3
                prev_a_offset = offsets[i];
221
3
            }
222
114
        } else {
223
114
            ColumnString::Offset prev_a_offset = 0;
224
114
            const auto* a_pos = a_data.data();
225
114
            const auto* b_pos = b_data.data();
226
58.9k
            for (size_t i = 0; i < size; ++i) {
227
58.8k
                auto a_size = a_offsets[i] - prev_a_offset;
228
58.8k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
58.8k
                                                                   b_pos, b_size);
230
58.8k
                prev_a_offset = a_offsets[i];
231
58.8k
            }
232
114
        }
233
115
    }
234
235
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
236
                                                 ColumnString::Offset a_size,
237
                                                 const ColumnString::Chars& b_data,
238
                                                 const ColumnString::Offsets& b_offsets,
239
16
                                                 PaddedPODArray<UInt8>& c) {
240
16
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
241
16
    }
_ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Line
Count
Source
239
16
                                                 PaddedPODArray<UInt8>& c) {
240
16
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
241
16
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
242
};
243
244
template <PrimitiveType PT>
245
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
246
247
template <PrimitiveType PT>
248
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
249
250
struct NameEquals {
251
    static constexpr auto name = "eq";
252
};
253
struct NameNotEquals {
254
    static constexpr auto name = "ne";
255
};
256
struct NameLess {
257
    static constexpr auto name = "lt";
258
};
259
struct NameGreater {
260
    static constexpr auto name = "gt";
261
};
262
struct NameLessOrEquals {
263
    static constexpr auto name = "le";
264
};
265
struct NameGreaterOrEquals {
266
    static constexpr auto name = "ge";
267
};
268
269
namespace comparison_zonemap_detail {
270
enum class Op {
271
    EQ,
272
    NE,
273
    LT,
274
    LE,
275
    GT,
276
    GE,
277
};
278
279
19
inline Op symmetric_op(Op op) {
280
19
    switch (op) {
281
0
    case Op::EQ:
282
0
    case Op::NE:
283
0
        return op;
284
11
    case Op::LT:
285
11
        return Op::GT;
286
6
    case Op::LE:
287
6
        return Op::GE;
288
0
    case Op::GT:
289
0
        return Op::LT;
290
2
    case Op::GE:
291
2
        return Op::LE;
292
19
    }
293
0
    __builtin_unreachable();
294
19
}
295
296
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
297
3.34k
                                    Op op) {
298
3.34k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
299
300
3.34k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal->slot_index,
301
3.34k
                                                              slot_literal->slot_type);
302
3.34k
    if (slot_type == nullptr) {
303
293
        return unsupported_zonemap_filter(ctx);
304
293
    }
305
3.05k
    auto zone_map_ptr = ctx.zone_map(slot_literal->slot_index);
306
3.05k
    if (zone_map_ptr == nullptr) {
307
46
        return unsupported_zonemap_filter(ctx);
308
46
    }
309
3.00k
    const auto& zone_map = *zone_map_ptr;
310
3.00k
    if (!zone_map.has_not_null) {
311
61
        return ZoneMapFilterResult::kNoMatch;
312
61
    }
313
2.94k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
314
109
        return unsupported_zonemap_filter(ctx);
315
109
    }
316
317
2.83k
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
318
2.83k
    const auto& literal = slot_literal->literal;
319
2.83k
    const bool literal_is_nan = literal.is_nan();
320
2.83k
    const bool hidden_nan_can_match = (effective_op == Op::EQ && literal_is_nan) ||
321
2.83k
                                      (effective_op == Op::NE && !literal_is_nan) ||
322
2.83k
                                      (effective_op == Op::GT && !literal_is_nan) ||
323
2.83k
                                      effective_op == Op::GE;
324
2.83k
    if (ctx.floating_nan_count_unknown(slot_literal->slot_index) && hidden_nan_can_match) {
325
        // Parquet bounds omit NaNs, so only operators that cannot match a hidden NaN may prune.
326
52
        return unsupported_zonemap_filter(ctx);
327
52
    }
328
2.78k
    switch (effective_op) {
329
1.50k
    case Op::EQ:
330
1.50k
        return literal < zone_map.min_value || zone_map.max_value < literal
331
1.50k
                       ? ZoneMapFilterResult::kNoMatch
332
1.50k
                       : ZoneMapFilterResult::kMayMatch;
333
108
    case Op::NE:
334
108
        return zone_map.min_value == literal && zone_map.max_value == literal
335
108
                       ? ZoneMapFilterResult::kNoMatch
336
108
                       : ZoneMapFilterResult::kMayMatch;
337
390
    case Op::LT:
338
390
        return zone_map.min_value >= literal ? ZoneMapFilterResult::kNoMatch
339
390
                                             : ZoneMapFilterResult::kMayMatch;
340
277
    case Op::LE:
341
277
        return zone_map.min_value > literal ? ZoneMapFilterResult::kNoMatch
342
277
                                            : ZoneMapFilterResult::kMayMatch;
343
253
    case Op::GT:
344
253
        return zone_map.max_value <= literal ? ZoneMapFilterResult::kNoMatch
345
253
                                             : ZoneMapFilterResult::kMayMatch;
346
269
    case Op::GE:
347
269
        return zone_map.max_value < literal ? ZoneMapFilterResult::kNoMatch
348
269
                                            : ZoneMapFilterResult::kMayMatch;
349
2.78k
    }
350
351
    // keep this to avoid compile failure with g++.
352
0
    __builtin_unreachable();
353
2.78k
}
354
355
33.4k
inline bool can_evaluate(const VExprSPtrs& arguments) {
356
33.4k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
357
33.4k
    if (!slot_literal.has_value()) {
358
18.7k
        return false;
359
18.7k
    }
360
361
    // A NULL literal makes the comparison evaluate to NULL instead of a byte range predicate on
362
    // the slot. This zonemap evaluator only derives bounds from non-NULL literals, so reject this
363
    // shape here before evaluate_zonemap_filter is called.
364
14.7k
    if (slot_literal->literal.is_null()) {
365
4
        return false;
366
4
    }
367
368
14.7k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
369
14.7k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
370
14.7k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
371
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
372
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
373
        // values without running expression casts, so conservatively skip this optimization.
374
1
        return false;
375
1
    }
376
377
14.7k
    return true;
378
14.7k
}
379
380
0
inline bool can_evaluate_equality(const VExprSPtrs& arguments, Op op) {
381
0
    if (op != Op::EQ || !can_evaluate(arguments)) {
382
0
        return false;
383
0
    }
384
0
    const auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
385
0
    DORIS_CHECK(slot_literal.has_value());
386
0
    // Bloom membership cannot disprove Doris NaN equality across different physical encodings.
387
0
    return !slot_literal->literal.is_nan();
388
0
}
389
390
27
inline bool dictionary_value_matches(const Field& value, const Field& literal, Op op) {
391
27
    switch (op) {
392
8
    case Op::EQ:
393
8
        return value == literal;
394
0
    case Op::NE:
395
0
        return value != literal;
396
5
    case Op::LT:
397
5
        return value < literal;
398
0
    case Op::LE:
399
0
        return value <= literal;
400
14
    case Op::GT:
401
14
        return value > literal;
402
0
    case Op::GE:
403
0
        return value >= literal;
404
27
    }
405
0
    __builtin_unreachable();
406
27
}
407
408
inline ZoneMapFilterResult evaluate_dictionary(const DictionaryEvalContext& ctx,
409
14
                                               const VExprSPtrs& arguments, Op op) {
410
14
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
411
14
    DORIS_CHECK(slot_literal.has_value());
412
14
    const auto* dictionary = ctx.slot(slot_literal->slot_index);
413
14
    if (dictionary == nullptr || dictionary->data_type == nullptr) {
414
0
        return ZoneMapFilterResult::kUnsupported;
415
0
    }
416
14
    DORIS_CHECK(
417
14
            expr_zonemap::data_types_compatible(dictionary->data_type, slot_literal->slot_type));
418
14
    if (slot_literal->literal.is_null()) {
419
0
        return ZoneMapFilterResult::kUnsupported;
420
0
    }
421
14
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
422
    // Compare typed Fields so dictionary filtering preserves the regular expression semantics for
423
    // strings, dates, decimals, floating-point edge cases, and every other supported logical type.
424
14
    return std::ranges::any_of(dictionary->values,
425
27
                               [&](const Field& value) {
426
27
                                   return dictionary_value_matches(value, slot_literal->literal,
427
27
                                                                   effective_op);
428
27
                               })
429
14
                   ? ZoneMapFilterResult::kMayMatch
430
14
                   : ZoneMapFilterResult::kNoMatch;
431
14
}
432
433
inline ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
434
19
                                                 const VExprSPtrs& arguments, Op op) {
435
19
    DORIS_CHECK(op == Op::EQ);
436
19
    auto slot_literal = expr_zonemap::extract_bloom_filter_slot_and_literal(arguments);
437
19
    DORIS_CHECK(slot_literal.has_value());
438
19
    return expr_zonemap::eval_eq_bloom_filter(ctx, *slot_literal);
439
19
}
440
441
37.2k
inline std::optional<Op> op_from_name(std::string_view name) {
442
37.2k
    if (name == NameEquals::name) {
443
18.2k
        return Op::EQ;
444
18.2k
    }
445
18.9k
    if (name == NameNotEquals::name) {
446
1.46k
        return Op::NE;
447
1.46k
    }
448
17.5k
    if (name == NameLess::name) {
449
5.17k
        return Op::LT;
450
5.17k
    }
451
12.3k
    if (name == NameLessOrEquals::name) {
452
2.00k
        return Op::LE;
453
2.00k
    }
454
10.3k
    if (name == NameGreater::name) {
455
5.63k
        return Op::GT;
456
5.63k
    }
457
4.91k
    if (name == NameGreaterOrEquals::name) {
458
4.91k
        return Op::GE;
459
4.91k
    }
460
18.4E
    return std::nullopt;
461
4.70k
}
462
} // namespace comparison_zonemap_detail
463
464
template <template <PrimitiveType> class Op, typename Name>
465
class FunctionComparison : public IFunction {
466
public:
467
    static constexpr auto name = Name::name;
468
299k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
468
269k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
468
1.24k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
468
6.78k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
468
8.28k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
468
3.87k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
468
9.54k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
469
470
299k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
470
269k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
470
1.25k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
470
6.78k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
470
8.25k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
470
3.88k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
470
9.51k
    FunctionComparison() = default;
471
472
683k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
472
675k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
472
604
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
472
2.23k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
472
2.23k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
472
1.26k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
472
1.12k
    double execute_cost() const override { return 0.5; }
473
474
private:
475
    template <PrimitiveType PT>
476
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
477
65.1k
                            const ColumnPtr& col_right_ptr) const {
478
65.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
65.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
65.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
65.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
65.1k
        DCHECK(!(left_is_const && right_is_const));
485
486
65.1k
        if (!left_is_const && !right_is_const) {
487
12.2k
            auto col_res = ColumnUInt8::create();
488
489
12.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
12.2k
            vec_res.resize(col_left->get_data().size());
491
12.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
12.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
12.2k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
12.2k
                                                     vec_res);
495
496
12.2k
            block.replace_by_position(result, std::move(col_res));
497
52.9k
        } else if (!left_is_const && right_is_const) {
498
46.5k
            auto col_res = ColumnUInt8::create();
499
500
46.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
46.5k
            vec_res.resize(col_left->size());
502
46.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
46.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
46.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
46.5k
                                                       col_right->get_element(0), vec_res);
506
507
46.5k
            block.replace_by_position(result, std::move(col_res));
508
46.5k
        } else if (left_is_const && !right_is_const) {
509
6.33k
            auto col_res = ColumnUInt8::create();
510
511
6.33k
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
6.33k
            vec_res.resize(col_right->size());
513
6.33k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
6.33k
                              typename PrimitiveTypeTraits<PT>::CppType,
515
6.33k
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
6.33k
                                                       col_right->get_data(), vec_res);
517
518
6.33k
            block.replace_by_position(result, std::move(col_res));
519
6.33k
        }
520
65.1k
        return Status::OK();
521
65.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
98
                            const ColumnPtr& col_right_ptr) const {
478
98
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
98
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
98
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
98
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
98
        DCHECK(!(left_is_const && right_is_const));
485
486
98
        if (!left_is_const && !right_is_const) {
487
66
            auto col_res = ColumnUInt8::create();
488
489
66
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
66
            vec_res.resize(col_left->get_data().size());
491
66
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
66
                              typename PrimitiveTypeTraits<PT>::CppType,
493
66
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
66
                                                     vec_res);
495
496
66
            block.replace_by_position(result, std::move(col_res));
497
66
        } else if (!left_is_const && right_is_const) {
498
32
            auto col_res = ColumnUInt8::create();
499
500
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
32
            vec_res.resize(col_left->size());
502
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
32
                              typename PrimitiveTypeTraits<PT>::CppType,
504
32
                              Op<PT>>::vector_constant(col_left->get_data(),
505
32
                                                       col_right->get_element(0), vec_res);
506
507
32
            block.replace_by_position(result, std::move(col_res));
508
32
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
98
        return Status::OK();
521
98
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
621
                            const ColumnPtr& col_right_ptr) const {
478
621
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
621
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
621
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
621
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
621
        DCHECK(!(left_is_const && right_is_const));
485
486
622
        if (!left_is_const && !right_is_const) {
487
168
            auto col_res = ColumnUInt8::create();
488
489
168
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
168
            vec_res.resize(col_left->get_data().size());
491
168
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
168
                              typename PrimitiveTypeTraits<PT>::CppType,
493
168
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
168
                                                     vec_res);
495
496
168
            block.replace_by_position(result, std::move(col_res));
497
454
        } else if (!left_is_const && right_is_const) {
498
454
            auto col_res = ColumnUInt8::create();
499
500
454
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
454
            vec_res.resize(col_left->size());
502
454
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
454
                              typename PrimitiveTypeTraits<PT>::CppType,
504
454
                              Op<PT>>::vector_constant(col_left->get_data(),
505
454
                                                       col_right->get_element(0), vec_res);
506
507
454
            block.replace_by_position(result, std::move(col_res));
508
18.4E
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
621
        return Status::OK();
521
621
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
389
                            const ColumnPtr& col_right_ptr) const {
478
389
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
389
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
389
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
389
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
389
        DCHECK(!(left_is_const && right_is_const));
485
486
389
        if (!left_is_const && !right_is_const) {
487
213
            auto col_res = ColumnUInt8::create();
488
489
213
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
213
            vec_res.resize(col_left->get_data().size());
491
213
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
213
                              typename PrimitiveTypeTraits<PT>::CppType,
493
213
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
213
                                                     vec_res);
495
496
213
            block.replace_by_position(result, std::move(col_res));
497
213
        } else if (!left_is_const && right_is_const) {
498
176
            auto col_res = ColumnUInt8::create();
499
500
176
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
176
            vec_res.resize(col_left->size());
502
176
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
176
                              typename PrimitiveTypeTraits<PT>::CppType,
504
176
                              Op<PT>>::vector_constant(col_left->get_data(),
505
176
                                                       col_right->get_element(0), vec_res);
506
507
176
            block.replace_by_position(result, std::move(col_res));
508
176
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
389
        return Status::OK();
521
389
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
202
                            const ColumnPtr& col_right_ptr) const {
478
202
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
202
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
202
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
202
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
202
        DCHECK(!(left_is_const && right_is_const));
485
486
202
        if (!left_is_const && !right_is_const) {
487
116
            auto col_res = ColumnUInt8::create();
488
489
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
116
            vec_res.resize(col_left->get_data().size());
491
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
116
                              typename PrimitiveTypeTraits<PT>::CppType,
493
116
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
116
                                                     vec_res);
495
496
116
            block.replace_by_position(result, std::move(col_res));
497
116
        } else if (!left_is_const && right_is_const) {
498
74
            auto col_res = ColumnUInt8::create();
499
500
74
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
74
            vec_res.resize(col_left->size());
502
74
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
74
                              typename PrimitiveTypeTraits<PT>::CppType,
504
74
                              Op<PT>>::vector_constant(col_left->get_data(),
505
74
                                                       col_right->get_element(0), vec_res);
506
507
74
            block.replace_by_position(result, std::move(col_res));
508
74
        } else if (left_is_const && !right_is_const) {
509
12
            auto col_res = ColumnUInt8::create();
510
511
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
12
            vec_res.resize(col_right->size());
513
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
12
                              typename PrimitiveTypeTraits<PT>::CppType,
515
12
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
12
                                                       col_right->get_data(), vec_res);
517
518
12
            block.replace_by_position(result, std::move(col_res));
519
12
        }
520
202
        return Status::OK();
521
202
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
12
                            const ColumnPtr& col_right_ptr) const {
478
12
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
12
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
12
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
12
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
12
        DCHECK(!(left_is_const && right_is_const));
485
486
12
        if (!left_is_const && !right_is_const) {
487
2
            auto col_res = ColumnUInt8::create();
488
489
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
2
            vec_res.resize(col_left->get_data().size());
491
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
2
                              typename PrimitiveTypeTraits<PT>::CppType,
493
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
2
                                                     vec_res);
495
496
2
            block.replace_by_position(result, std::move(col_res));
497
10
        } else if (!left_is_const && right_is_const) {
498
10
            auto col_res = ColumnUInt8::create();
499
500
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
10
            vec_res.resize(col_left->size());
502
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
10
                              typename PrimitiveTypeTraits<PT>::CppType,
504
10
                              Op<PT>>::vector_constant(col_left->get_data(),
505
10
                                                       col_right->get_element(0), vec_res);
506
507
10
            block.replace_by_position(result, std::move(col_res));
508
10
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
12
        return Status::OK();
521
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
5.95k
                            const ColumnPtr& col_right_ptr) const {
478
5.95k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
5.95k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
5.95k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
5.95k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
5.95k
        DCHECK(!(left_is_const && right_is_const));
485
486
5.95k
        if (!left_is_const && !right_is_const) {
487
129
            auto col_res = ColumnUInt8::create();
488
489
129
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
129
            vec_res.resize(col_left->get_data().size());
491
129
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
129
                              typename PrimitiveTypeTraits<PT>::CppType,
493
129
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
129
                                                     vec_res);
495
496
129
            block.replace_by_position(result, std::move(col_res));
497
5.82k
        } else if (!left_is_const && right_is_const) {
498
5.54k
            auto col_res = ColumnUInt8::create();
499
500
5.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
5.54k
            vec_res.resize(col_left->size());
502
5.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
5.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
5.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
5.54k
                                                       col_right->get_element(0), vec_res);
506
507
5.54k
            block.replace_by_position(result, std::move(col_res));
508
5.54k
        } else if (left_is_const && !right_is_const) {
509
276
            auto col_res = ColumnUInt8::create();
510
511
276
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
276
            vec_res.resize(col_right->size());
513
276
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
276
                              typename PrimitiveTypeTraits<PT>::CppType,
515
276
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
276
                                                       col_right->get_data(), vec_res);
517
518
276
            block.replace_by_position(result, std::move(col_res));
519
276
        }
520
5.95k
        return Status::OK();
521
5.95k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
398
                            const ColumnPtr& col_right_ptr) const {
478
398
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
398
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
398
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
398
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
398
        DCHECK(!(left_is_const && right_is_const));
485
486
398
        if (!left_is_const && !right_is_const) {
487
93
            auto col_res = ColumnUInt8::create();
488
489
93
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
93
            vec_res.resize(col_left->get_data().size());
491
93
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
93
                              typename PrimitiveTypeTraits<PT>::CppType,
493
93
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
93
                                                     vec_res);
495
496
93
            block.replace_by_position(result, std::move(col_res));
497
305
        } else if (!left_is_const && right_is_const) {
498
269
            auto col_res = ColumnUInt8::create();
499
500
269
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
269
            vec_res.resize(col_left->size());
502
269
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
269
                              typename PrimitiveTypeTraits<PT>::CppType,
504
269
                              Op<PT>>::vector_constant(col_left->get_data(),
505
269
                                                       col_right->get_element(0), vec_res);
506
507
269
            block.replace_by_position(result, std::move(col_res));
508
269
        } else if (left_is_const && !right_is_const) {
509
36
            auto col_res = ColumnUInt8::create();
510
511
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
36
            vec_res.resize(col_right->size());
513
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
36
                              typename PrimitiveTypeTraits<PT>::CppType,
515
36
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
36
                                                       col_right->get_data(), vec_res);
517
518
36
            block.replace_by_position(result, std::move(col_res));
519
36
        }
520
398
        return Status::OK();
521
398
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
3.11k
                            const ColumnPtr& col_right_ptr) const {
478
3.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
3.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
3.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
3.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
3.11k
        DCHECK(!(left_is_const && right_is_const));
485
486
3.11k
        if (!left_is_const && !right_is_const) {
487
979
            auto col_res = ColumnUInt8::create();
488
489
979
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
979
            vec_res.resize(col_left->get_data().size());
491
979
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
979
                              typename PrimitiveTypeTraits<PT>::CppType,
493
979
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
979
                                                     vec_res);
495
496
979
            block.replace_by_position(result, std::move(col_res));
497
2.13k
        } else if (!left_is_const && right_is_const) {
498
2.05k
            auto col_res = ColumnUInt8::create();
499
500
2.05k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
2.05k
            vec_res.resize(col_left->size());
502
2.05k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
2.05k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
2.05k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
2.05k
                                                       col_right->get_element(0), vec_res);
506
507
2.05k
            block.replace_by_position(result, std::move(col_res));
508
2.05k
        } else if (left_is_const && !right_is_const) {
509
79
            auto col_res = ColumnUInt8::create();
510
511
79
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
79
            vec_res.resize(col_right->size());
513
79
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
79
                              typename PrimitiveTypeTraits<PT>::CppType,
515
79
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
79
                                                       col_right->get_data(), vec_res);
517
518
79
            block.replace_by_position(result, std::move(col_res));
519
79
        }
520
3.11k
        return Status::OK();
521
3.11k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
3.08k
                            const ColumnPtr& col_right_ptr) const {
478
3.08k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
3.08k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
3.08k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
3.08k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
3.08k
        DCHECK(!(left_is_const && right_is_const));
485
486
3.08k
        if (!left_is_const && !right_is_const) {
487
162
            auto col_res = ColumnUInt8::create();
488
489
162
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
162
            vec_res.resize(col_left->get_data().size());
491
162
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
162
                              typename PrimitiveTypeTraits<PT>::CppType,
493
162
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
162
                                                     vec_res);
495
496
162
            block.replace_by_position(result, std::move(col_res));
497
2.92k
        } else if (!left_is_const && right_is_const) {
498
2.44k
            auto col_res = ColumnUInt8::create();
499
500
2.44k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
2.44k
            vec_res.resize(col_left->size());
502
2.44k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
2.44k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
2.44k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
2.44k
                                                       col_right->get_element(0), vec_res);
506
507
2.44k
            block.replace_by_position(result, std::move(col_res));
508
2.44k
        } else if (left_is_const && !right_is_const) {
509
479
            auto col_res = ColumnUInt8::create();
510
511
479
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
479
            vec_res.resize(col_right->size());
513
479
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
479
                              typename PrimitiveTypeTraits<PT>::CppType,
515
479
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
479
                                                       col_right->get_data(), vec_res);
517
518
479
            block.replace_by_position(result, std::move(col_res));
519
479
        }
520
3.08k
        return Status::OK();
521
3.08k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
87
                            const ColumnPtr& col_right_ptr) const {
478
87
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
87
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
87
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
87
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
87
        DCHECK(!(left_is_const && right_is_const));
485
486
87
        if (!left_is_const && !right_is_const) {
487
50
            auto col_res = ColumnUInt8::create();
488
489
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
50
            vec_res.resize(col_left->get_data().size());
491
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
50
                              typename PrimitiveTypeTraits<PT>::CppType,
493
50
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
50
                                                     vec_res);
495
496
50
            block.replace_by_position(result, std::move(col_res));
497
50
        } else if (!left_is_const && right_is_const) {
498
29
            auto col_res = ColumnUInt8::create();
499
500
29
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
29
            vec_res.resize(col_left->size());
502
29
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
29
                              typename PrimitiveTypeTraits<PT>::CppType,
504
29
                              Op<PT>>::vector_constant(col_left->get_data(),
505
29
                                                       col_right->get_element(0), vec_res);
506
507
29
            block.replace_by_position(result, std::move(col_res));
508
29
        } else if (left_is_const && !right_is_const) {
509
8
            auto col_res = ColumnUInt8::create();
510
511
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
8
            vec_res.resize(col_right->size());
513
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
8
                              typename PrimitiveTypeTraits<PT>::CppType,
515
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
8
                                                       col_right->get_data(), vec_res);
517
518
8
            block.replace_by_position(result, std::move(col_res));
519
8
        }
520
87
        return Status::OK();
521
87
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
12
                            const ColumnPtr& col_right_ptr) const {
478
12
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
12
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
12
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
12
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
12
        DCHECK(!(left_is_const && right_is_const));
485
486
12
        if (!left_is_const && !right_is_const) {
487
5
            auto col_res = ColumnUInt8::create();
488
489
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
5
            vec_res.resize(col_left->get_data().size());
491
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
5
                              typename PrimitiveTypeTraits<PT>::CppType,
493
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
5
                                                     vec_res);
495
496
5
            block.replace_by_position(result, std::move(col_res));
497
7
        } else if (!left_is_const && right_is_const) {
498
7
            auto col_res = ColumnUInt8::create();
499
500
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
7
            vec_res.resize(col_left->size());
502
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
7
                              typename PrimitiveTypeTraits<PT>::CppType,
504
7
                              Op<PT>>::vector_constant(col_left->get_data(),
505
7
                                                       col_right->get_element(0), vec_res);
506
507
7
            block.replace_by_position(result, std::move(col_res));
508
7
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
12
        return Status::OK();
521
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
17
                            const ColumnPtr& col_right_ptr) const {
478
17
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
17
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
17
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
17
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
17
        DCHECK(!(left_is_const && right_is_const));
485
486
17
        if (!left_is_const && !right_is_const) {
487
13
            auto col_res = ColumnUInt8::create();
488
489
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
13
            vec_res.resize(col_left->get_data().size());
491
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
13
                              typename PrimitiveTypeTraits<PT>::CppType,
493
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
13
                                                     vec_res);
495
496
13
            block.replace_by_position(result, std::move(col_res));
497
13
        } else if (!left_is_const && right_is_const) {
498
4
            auto col_res = ColumnUInt8::create();
499
500
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
4
            vec_res.resize(col_left->size());
502
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
4
                              typename PrimitiveTypeTraits<PT>::CppType,
504
4
                              Op<PT>>::vector_constant(col_left->get_data(),
505
4
                                                       col_right->get_element(0), vec_res);
506
507
4
            block.replace_by_position(result, std::move(col_res));
508
4
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
17
        return Status::OK();
521
17
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2.80k
                            const ColumnPtr& col_right_ptr) const {
478
2.80k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.80k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.80k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.80k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.80k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.80k
        if (!left_is_const && !right_is_const) {
487
785
            auto col_res = ColumnUInt8::create();
488
489
785
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
785
            vec_res.resize(col_left->get_data().size());
491
785
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
785
                              typename PrimitiveTypeTraits<PT>::CppType,
493
785
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
785
                                                     vec_res);
495
496
785
            block.replace_by_position(result, std::move(col_res));
497
2.02k
        } else if (!left_is_const && right_is_const) {
498
1.96k
            auto col_res = ColumnUInt8::create();
499
500
1.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1.96k
            vec_res.resize(col_left->size());
502
1.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1.96k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1.96k
                                                       col_right->get_element(0), vec_res);
506
507
1.96k
            block.replace_by_position(result, std::move(col_res));
508
1.96k
        } else if (left_is_const && !right_is_const) {
509
54
            auto col_res = ColumnUInt8::create();
510
511
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
54
            vec_res.resize(col_right->size());
513
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
54
                              typename PrimitiveTypeTraits<PT>::CppType,
515
54
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
54
                                                       col_right->get_data(), vec_res);
517
518
54
            block.replace_by_position(result, std::move(col_res));
519
54
        }
520
2.80k
        return Status::OK();
521
2.80k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
74
                            const ColumnPtr& col_right_ptr) const {
478
74
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
74
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
74
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
74
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
74
        DCHECK(!(left_is_const && right_is_const));
485
486
74
        if (!left_is_const && !right_is_const) {
487
74
            auto col_res = ColumnUInt8::create();
488
489
74
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
74
            vec_res.resize(col_left->get_data().size());
491
74
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
74
                              typename PrimitiveTypeTraits<PT>::CppType,
493
74
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
74
                                                     vec_res);
495
496
74
            block.replace_by_position(result, std::move(col_res));
497
74
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
74
        return Status::OK();
521
74
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
930
                            const ColumnPtr& col_right_ptr) const {
478
930
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
930
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
930
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
930
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
930
        DCHECK(!(left_is_const && right_is_const));
485
486
930
        if (!left_is_const && !right_is_const) {
487
85
            auto col_res = ColumnUInt8::create();
488
489
85
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
85
            vec_res.resize(col_left->get_data().size());
491
85
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
85
                              typename PrimitiveTypeTraits<PT>::CppType,
493
85
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
85
                                                     vec_res);
495
496
85
            block.replace_by_position(result, std::move(col_res));
497
845
        } else if (!left_is_const && right_is_const) {
498
845
            auto col_res = ColumnUInt8::create();
499
500
845
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
845
            vec_res.resize(col_left->size());
502
845
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
845
                              typename PrimitiveTypeTraits<PT>::CppType,
504
845
                              Op<PT>>::vector_constant(col_left->get_data(),
505
845
                                                       col_right->get_element(0), vec_res);
506
507
845
            block.replace_by_position(result, std::move(col_res));
508
845
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
930
        return Status::OK();
521
930
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
4
                            const ColumnPtr& col_right_ptr) const {
478
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
4
        DCHECK(!(left_is_const && right_is_const));
485
486
4
        if (!left_is_const && !right_is_const) {
487
4
            auto col_res = ColumnUInt8::create();
488
489
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
4
            vec_res.resize(col_left->get_data().size());
491
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
4
                              typename PrimitiveTypeTraits<PT>::CppType,
493
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
4
                                                     vec_res);
495
496
4
            block.replace_by_position(result, std::move(col_res));
497
4
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
4
        return Status::OK();
521
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
477
70
                            const ColumnPtr& col_right_ptr) const {
478
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
70
        DCHECK(!(left_is_const && right_is_const));
485
486
70
        if (!left_is_const && !right_is_const) {
487
39
            auto col_res = ColumnUInt8::create();
488
489
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
39
            vec_res.resize(col_left->get_data().size());
491
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
39
                              typename PrimitiveTypeTraits<PT>::CppType,
493
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
39
                                                     vec_res);
495
496
39
            block.replace_by_position(result, std::move(col_res));
497
39
        } else if (!left_is_const && right_is_const) {
498
31
            auto col_res = ColumnUInt8::create();
499
500
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
31
            vec_res.resize(col_left->size());
502
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
31
                              typename PrimitiveTypeTraits<PT>::CppType,
504
31
                              Op<PT>>::vector_constant(col_left->get_data(),
505
31
                                                       col_right->get_element(0), vec_res);
506
507
31
            block.replace_by_position(result, std::move(col_res));
508
31
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
70
        return Status::OK();
521
70
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
8
                            const ColumnPtr& col_right_ptr) const {
478
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
8
        DCHECK(!(left_is_const && right_is_const));
485
486
8
        if (!left_is_const && !right_is_const) {
487
8
            auto col_res = ColumnUInt8::create();
488
489
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
8
            vec_res.resize(col_left->get_data().size());
491
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
8
                              typename PrimitiveTypeTraits<PT>::CppType,
493
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
8
                                                     vec_res);
495
496
8
            block.replace_by_position(result, std::move(col_res));
497
8
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
8
        return Status::OK();
521
8
    }
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
477
84
                            const ColumnPtr& col_right_ptr) const {
478
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
84
        DCHECK(!(left_is_const && right_is_const));
485
486
84
        if (!left_is_const && !right_is_const) {
487
56
            auto col_res = ColumnUInt8::create();
488
489
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
56
            vec_res.resize(col_left->get_data().size());
491
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
56
                              typename PrimitiveTypeTraits<PT>::CppType,
493
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
56
                                                     vec_res);
495
496
56
            block.replace_by_position(result, std::move(col_res));
497
56
        } else if (!left_is_const && right_is_const) {
498
28
            auto col_res = ColumnUInt8::create();
499
500
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
28
            vec_res.resize(col_left->size());
502
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
28
                              typename PrimitiveTypeTraits<PT>::CppType,
504
28
                              Op<PT>>::vector_constant(col_left->get_data(),
505
28
                                                       col_right->get_element(0), vec_res);
506
507
28
            block.replace_by_position(result, std::move(col_res));
508
28
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
84
        return Status::OK();
521
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
477
1.52k
                            const ColumnPtr& col_right_ptr) const {
478
1.52k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.52k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.52k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.52k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.52k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.52k
        if (!left_is_const && !right_is_const) {
487
1.25k
            auto col_res = ColumnUInt8::create();
488
489
1.25k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1.25k
            vec_res.resize(col_left->get_data().size());
491
1.25k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1.25k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1.25k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1.25k
                                                     vec_res);
495
496
1.25k
            block.replace_by_position(result, std::move(col_res));
497
1.25k
        } else if (!left_is_const && right_is_const) {
498
272
            auto col_res = ColumnUInt8::create();
499
500
272
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
272
            vec_res.resize(col_left->size());
502
272
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
272
                              typename PrimitiveTypeTraits<PT>::CppType,
504
272
                              Op<PT>>::vector_constant(col_left->get_data(),
505
272
                                                       col_right->get_element(0), vec_res);
506
507
272
            block.replace_by_position(result, std::move(col_res));
508
272
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1.52k
        return Status::OK();
521
1.52k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
860
                            const ColumnPtr& col_right_ptr) const {
478
860
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
860
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
860
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
860
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
860
        DCHECK(!(left_is_const && right_is_const));
485
486
860
        if (!left_is_const && !right_is_const) {
487
400
            auto col_res = ColumnUInt8::create();
488
489
400
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
400
            vec_res.resize(col_left->get_data().size());
491
400
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
400
                              typename PrimitiveTypeTraits<PT>::CppType,
493
400
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
400
                                                     vec_res);
495
496
400
            block.replace_by_position(result, std::move(col_res));
497
460
        } else if (!left_is_const && right_is_const) {
498
22
            auto col_res = ColumnUInt8::create();
499
500
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
22
            vec_res.resize(col_left->size());
502
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
22
                              typename PrimitiveTypeTraits<PT>::CppType,
504
22
                              Op<PT>>::vector_constant(col_left->get_data(),
505
22
                                                       col_right->get_element(0), vec_res);
506
507
22
            block.replace_by_position(result, std::move(col_res));
508
438
        } else if (left_is_const && !right_is_const) {
509
436
            auto col_res = ColumnUInt8::create();
510
511
436
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
436
            vec_res.resize(col_right->size());
513
436
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
436
                              typename PrimitiveTypeTraits<PT>::CppType,
515
436
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
436
                                                       col_right->get_data(), vec_res);
517
518
436
            block.replace_by_position(result, std::move(col_res));
519
436
        }
520
860
        return Status::OK();
521
860
    }
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_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
48
                            const ColumnPtr& col_right_ptr) const {
478
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
48
        DCHECK(!(left_is_const && right_is_const));
485
486
48
        if (!left_is_const && !right_is_const) {
487
20
            auto col_res = ColumnUInt8::create();
488
489
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
20
            vec_res.resize(col_left->get_data().size());
491
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              typename PrimitiveTypeTraits<PT>::CppType,
493
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
20
                                                     vec_res);
495
496
20
            block.replace_by_position(result, std::move(col_res));
497
28
        } else if (!left_is_const && right_is_const) {
498
28
            auto col_res = ColumnUInt8::create();
499
500
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
28
            vec_res.resize(col_left->size());
502
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
28
                              typename PrimitiveTypeTraits<PT>::CppType,
504
28
                              Op<PT>>::vector_constant(col_left->get_data(),
505
28
                                                       col_right->get_element(0), vec_res);
506
507
28
            block.replace_by_position(result, std::move(col_res));
508
28
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
48
        return Status::OK();
521
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
60
                            const ColumnPtr& col_right_ptr) const {
478
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
60
        DCHECK(!(left_is_const && right_is_const));
485
486
60
        if (!left_is_const && !right_is_const) {
487
20
            auto col_res = ColumnUInt8::create();
488
489
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
20
            vec_res.resize(col_left->get_data().size());
491
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              typename PrimitiveTypeTraits<PT>::CppType,
493
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
20
                                                     vec_res);
495
496
20
            block.replace_by_position(result, std::move(col_res));
497
40
        } else if (!left_is_const && right_is_const) {
498
40
            auto col_res = ColumnUInt8::create();
499
500
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
40
            vec_res.resize(col_left->size());
502
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
40
                              typename PrimitiveTypeTraits<PT>::CppType,
504
40
                              Op<PT>>::vector_constant(col_left->get_data(),
505
40
                                                       col_right->get_element(0), vec_res);
506
507
40
            block.replace_by_position(result, std::move(col_res));
508
40
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
60
        return Status::OK();
521
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
477
1.16k
                            const ColumnPtr& col_right_ptr) const {
478
1.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.16k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.16k
        if (!left_is_const && !right_is_const) {
487
1.12k
            auto col_res = ColumnUInt8::create();
488
489
1.12k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1.12k
            vec_res.resize(col_left->get_data().size());
491
1.12k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1.12k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1.12k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1.12k
                                                     vec_res);
495
496
1.12k
            block.replace_by_position(result, std::move(col_res));
497
1.12k
        } else if (!left_is_const && right_is_const) {
498
41
            auto col_res = ColumnUInt8::create();
499
500
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
41
            vec_res.resize(col_left->size());
502
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
41
                              typename PrimitiveTypeTraits<PT>::CppType,
504
41
                              Op<PT>>::vector_constant(col_left->get_data(),
505
41
                                                       col_right->get_element(0), vec_res);
506
507
41
            block.replace_by_position(result, std::move(col_res));
508
41
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1.16k
        return Status::OK();
521
1.16k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2
                            const ColumnPtr& col_right_ptr) const {
478
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2
        DCHECK(!(left_is_const && right_is_const));
485
486
2
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
2
        } else if (!left_is_const && right_is_const) {
498
2
            auto col_res = ColumnUInt8::create();
499
500
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
2
            vec_res.resize(col_left->size());
502
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
2
                              typename PrimitiveTypeTraits<PT>::CppType,
504
2
                              Op<PT>>::vector_constant(col_left->get_data(),
505
2
                                                       col_right->get_element(0), vec_res);
506
507
2
            block.replace_by_position(result, std::move(col_res));
508
2
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
2
        return Status::OK();
521
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
67
                            const ColumnPtr& col_right_ptr) const {
478
67
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
67
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
67
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
67
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
67
        DCHECK(!(left_is_const && right_is_const));
485
486
67
        if (!left_is_const && !right_is_const) {
487
33
            auto col_res = ColumnUInt8::create();
488
489
33
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
33
            vec_res.resize(col_left->get_data().size());
491
33
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
33
                              typename PrimitiveTypeTraits<PT>::CppType,
493
33
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
33
                                                     vec_res);
495
496
33
            block.replace_by_position(result, std::move(col_res));
497
34
        } else if (!left_is_const && right_is_const) {
498
34
            auto col_res = ColumnUInt8::create();
499
500
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
34
            vec_res.resize(col_left->size());
502
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
34
                              typename PrimitiveTypeTraits<PT>::CppType,
504
34
                              Op<PT>>::vector_constant(col_left->get_data(),
505
34
                                                       col_right->get_element(0), vec_res);
506
507
34
            block.replace_by_position(result, std::move(col_res));
508
34
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
67
        return Status::OK();
521
67
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1
                            const ColumnPtr& col_right_ptr) const {
478
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1
        DCHECK(!(left_is_const && right_is_const));
485
486
1
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
1
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1
        return Status::OK();
521
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1.63k
                            const ColumnPtr& col_right_ptr) const {
478
1.63k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.63k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.63k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.63k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.63k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.63k
        if (!left_is_const && !right_is_const) {
487
58
            auto col_res = ColumnUInt8::create();
488
489
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
58
            vec_res.resize(col_left->get_data().size());
491
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
58
                              typename PrimitiveTypeTraits<PT>::CppType,
493
58
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
58
                                                     vec_res);
495
496
58
            block.replace_by_position(result, std::move(col_res));
497
1.57k
        } else if (!left_is_const && right_is_const) {
498
1.34k
            auto col_res = ColumnUInt8::create();
499
500
1.34k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1.34k
            vec_res.resize(col_left->size());
502
1.34k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1.34k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1.34k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1.34k
                                                       col_right->get_element(0), vec_res);
506
507
1.34k
            block.replace_by_position(result, std::move(col_res));
508
1.34k
        } else if (left_is_const && !right_is_const) {
509
234
            auto col_res = ColumnUInt8::create();
510
511
234
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
234
            vec_res.resize(col_right->size());
513
234
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
234
                              typename PrimitiveTypeTraits<PT>::CppType,
515
234
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
234
                                                       col_right->get_data(), vec_res);
517
518
234
            block.replace_by_position(result, std::move(col_res));
519
234
        }
520
1.63k
        return Status::OK();
521
1.63k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2.30k
                            const ColumnPtr& col_right_ptr) const {
478
2.30k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.30k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.30k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.30k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.30k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.30k
        if (!left_is_const && !right_is_const) {
487
112
            auto col_res = ColumnUInt8::create();
488
489
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
112
            vec_res.resize(col_left->get_data().size());
491
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
112
                              typename PrimitiveTypeTraits<PT>::CppType,
493
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
112
                                                     vec_res);
495
496
112
            block.replace_by_position(result, std::move(col_res));
497
2.19k
        } else if (!left_is_const && right_is_const) {
498
1.96k
            auto col_res = ColumnUInt8::create();
499
500
1.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1.96k
            vec_res.resize(col_left->size());
502
1.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1.96k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1.96k
                                                       col_right->get_element(0), vec_res);
506
507
1.96k
            block.replace_by_position(result, std::move(col_res));
508
1.96k
        } else if (left_is_const && !right_is_const) {
509
228
            auto col_res = ColumnUInt8::create();
510
511
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
228
            vec_res.resize(col_right->size());
513
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
228
                              typename PrimitiveTypeTraits<PT>::CppType,
515
228
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
228
                                                       col_right->get_data(), vec_res);
517
518
228
            block.replace_by_position(result, std::move(col_res));
519
228
        }
520
2.30k
        return Status::OK();
521
2.30k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
13.7k
                            const ColumnPtr& col_right_ptr) const {
478
13.7k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
13.7k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
13.7k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
13.7k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
13.7k
        DCHECK(!(left_is_const && right_is_const));
485
486
13.7k
        if (!left_is_const && !right_is_const) {
487
59
            auto col_res = ColumnUInt8::create();
488
489
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
59
            vec_res.resize(col_left->get_data().size());
491
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
59
                              typename PrimitiveTypeTraits<PT>::CppType,
493
59
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
59
                                                     vec_res);
495
496
59
            block.replace_by_position(result, std::move(col_res));
497
13.6k
        } else if (!left_is_const && right_is_const) {
498
10.3k
            auto col_res = ColumnUInt8::create();
499
500
10.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
10.3k
            vec_res.resize(col_left->size());
502
10.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
10.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
10.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
10.3k
                                                       col_right->get_element(0), vec_res);
506
507
10.3k
            block.replace_by_position(result, std::move(col_res));
508
10.3k
        } else if (left_is_const && !right_is_const) {
509
3.33k
            auto col_res = ColumnUInt8::create();
510
511
3.33k
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
3.33k
            vec_res.resize(col_right->size());
513
3.33k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
3.33k
                              typename PrimitiveTypeTraits<PT>::CppType,
515
3.33k
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
3.33k
                                                       col_right->get_data(), vec_res);
517
518
3.33k
            block.replace_by_position(result, std::move(col_res));
519
3.33k
        }
520
13.7k
        return Status::OK();
521
13.7k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2.48k
                            const ColumnPtr& col_right_ptr) const {
478
2.48k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.48k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.48k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.48k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.48k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.48k
        if (!left_is_const && !right_is_const) {
487
329
            auto col_res = ColumnUInt8::create();
488
489
329
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
329
            vec_res.resize(col_left->get_data().size());
491
329
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
329
                              typename PrimitiveTypeTraits<PT>::CppType,
493
329
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
329
                                                     vec_res);
495
496
329
            block.replace_by_position(result, std::move(col_res));
497
2.15k
        } else if (!left_is_const && right_is_const) {
498
1.60k
            auto col_res = ColumnUInt8::create();
499
500
1.60k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1.60k
            vec_res.resize(col_left->size());
502
1.60k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1.60k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1.60k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1.60k
                                                       col_right->get_element(0), vec_res);
506
507
1.60k
            block.replace_by_position(result, std::move(col_res));
508
1.60k
        } else if (left_is_const && !right_is_const) {
509
543
            auto col_res = ColumnUInt8::create();
510
511
543
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
543
            vec_res.resize(col_right->size());
513
543
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
543
                              typename PrimitiveTypeTraits<PT>::CppType,
515
543
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
543
                                                       col_right->get_data(), vec_res);
517
518
543
            block.replace_by_position(result, std::move(col_res));
519
543
        }
520
2.48k
        return Status::OK();
521
2.48k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
228
                            const ColumnPtr& col_right_ptr) const {
478
228
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
228
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
228
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
228
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
228
        DCHECK(!(left_is_const && right_is_const));
485
486
228
        if (!left_is_const && !right_is_const) {
487
2
            auto col_res = ColumnUInt8::create();
488
489
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
2
            vec_res.resize(col_left->get_data().size());
491
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
2
                              typename PrimitiveTypeTraits<PT>::CppType,
493
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
2
                                                     vec_res);
495
496
2
            block.replace_by_position(result, std::move(col_res));
497
226
        } else if (!left_is_const && right_is_const) {
498
199
            auto col_res = ColumnUInt8::create();
499
500
199
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
199
            vec_res.resize(col_left->size());
502
199
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
199
                              typename PrimitiveTypeTraits<PT>::CppType,
504
199
                              Op<PT>>::vector_constant(col_left->get_data(),
505
199
                                                       col_right->get_element(0), vec_res);
506
507
199
            block.replace_by_position(result, std::move(col_res));
508
199
        } else if (left_is_const && !right_is_const) {
509
28
            auto col_res = ColumnUInt8::create();
510
511
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
28
            vec_res.resize(col_right->size());
513
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
28
                              typename PrimitiveTypeTraits<PT>::CppType,
515
28
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
28
                                                       col_right->get_data(), vec_res);
517
518
28
            block.replace_by_position(result, std::move(col_res));
519
28
        }
520
228
        return Status::OK();
521
228
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
4
                            const ColumnPtr& col_right_ptr) const {
478
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
4
        DCHECK(!(left_is_const && right_is_const));
485
486
4
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
3
        } else if (!left_is_const && right_is_const) {
498
3
            auto col_res = ColumnUInt8::create();
499
500
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
3
            vec_res.resize(col_left->size());
502
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
3
                              typename PrimitiveTypeTraits<PT>::CppType,
504
3
                              Op<PT>>::vector_constant(col_left->get_data(),
505
3
                                                       col_right->get_element(0), vec_res);
506
507
3
            block.replace_by_position(result, std::move(col_res));
508
3
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
4
        return Status::OK();
521
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1
                            const ColumnPtr& col_right_ptr) const {
478
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1
        DCHECK(!(left_is_const && right_is_const));
485
486
1
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
1
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1
        return Status::OK();
521
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
611
                            const ColumnPtr& col_right_ptr) const {
478
611
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
611
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
611
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
611
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
611
        DCHECK(!(left_is_const && right_is_const));
485
486
611
        if (!left_is_const && !right_is_const) {
487
104
            auto col_res = ColumnUInt8::create();
488
489
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
104
            vec_res.resize(col_left->get_data().size());
491
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
104
                              typename PrimitiveTypeTraits<PT>::CppType,
493
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
104
                                                     vec_res);
495
496
104
            block.replace_by_position(result, std::move(col_res));
497
507
        } else if (!left_is_const && right_is_const) {
498
507
            auto col_res = ColumnUInt8::create();
499
500
507
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
507
            vec_res.resize(col_left->size());
502
507
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
507
                              typename PrimitiveTypeTraits<PT>::CppType,
504
507
                              Op<PT>>::vector_constant(col_left->get_data(),
505
507
                                                       col_right->get_element(0), vec_res);
506
507
507
            block.replace_by_position(result, std::move(col_res));
508
507
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
611
        return Status::OK();
521
611
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
216
                            const ColumnPtr& col_right_ptr) const {
478
216
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
216
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
216
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
216
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
216
        DCHECK(!(left_is_const && right_is_const));
485
486
216
        if (!left_is_const && !right_is_const) {
487
21
            auto col_res = ColumnUInt8::create();
488
489
21
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
21
            vec_res.resize(col_left->get_data().size());
491
21
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
21
                              typename PrimitiveTypeTraits<PT>::CppType,
493
21
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
21
                                                     vec_res);
495
496
21
            block.replace_by_position(result, std::move(col_res));
497
196
        } else if (!left_is_const && right_is_const) {
498
196
            auto col_res = ColumnUInt8::create();
499
500
196
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
196
            vec_res.resize(col_left->size());
502
196
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
196
                              typename PrimitiveTypeTraits<PT>::CppType,
504
196
                              Op<PT>>::vector_constant(col_left->get_data(),
505
196
                                                       col_right->get_element(0), vec_res);
506
507
196
            block.replace_by_position(result, std::move(col_res));
508
18.4E
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
216
        return Status::OK();
521
216
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
529
                            const ColumnPtr& col_right_ptr) const {
478
529
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
529
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
529
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
529
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
529
        DCHECK(!(left_is_const && right_is_const));
485
486
529
        if (!left_is_const && !right_is_const) {
487
26
            auto col_res = ColumnUInt8::create();
488
489
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
26
            vec_res.resize(col_left->get_data().size());
491
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
26
                              typename PrimitiveTypeTraits<PT>::CppType,
493
26
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
26
                                                     vec_res);
495
496
26
            block.replace_by_position(result, std::move(col_res));
497
505
        } else if (!left_is_const && right_is_const) {
498
505
            auto col_res = ColumnUInt8::create();
499
500
505
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
505
            vec_res.resize(col_left->size());
502
505
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
505
                              typename PrimitiveTypeTraits<PT>::CppType,
504
505
                              Op<PT>>::vector_constant(col_left->get_data(),
505
505
                                                       col_right->get_element(0), vec_res);
506
507
505
            block.replace_by_position(result, std::move(col_res));
508
18.4E
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
529
        return Status::OK();
521
529
    }
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
477
27
                            const ColumnPtr& col_right_ptr) const {
478
27
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
27
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
27
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
27
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
27
        DCHECK(!(left_is_const && right_is_const));
485
486
27
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
27
        } else if (!left_is_const && right_is_const) {
498
27
            auto col_res = ColumnUInt8::create();
499
500
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
27
            vec_res.resize(col_left->size());
502
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
27
                              typename PrimitiveTypeTraits<PT>::CppType,
504
27
                              Op<PT>>::vector_constant(col_left->get_data(),
505
27
                                                       col_right->get_element(0), vec_res);
506
507
27
            block.replace_by_position(result, std::move(col_res));
508
27
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
27
        return Status::OK();
521
27
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
469
                            const ColumnPtr& col_right_ptr) const {
478
469
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
469
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
469
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
469
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
469
        DCHECK(!(left_is_const && right_is_const));
485
486
469
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
468
        } else if (!left_is_const && right_is_const) {
498
462
            auto col_res = ColumnUInt8::create();
499
500
462
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
462
            vec_res.resize(col_left->size());
502
462
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
462
                              typename PrimitiveTypeTraits<PT>::CppType,
504
462
                              Op<PT>>::vector_constant(col_left->get_data(),
505
462
                                                       col_right->get_element(0), vec_res);
506
507
462
            block.replace_by_position(result, std::move(col_res));
508
462
        } else if (left_is_const && !right_is_const) {
509
6
            auto col_res = ColumnUInt8::create();
510
511
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
6
            vec_res.resize(col_right->size());
513
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
6
                              typename PrimitiveTypeTraits<PT>::CppType,
515
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
6
                                                       col_right->get_data(), vec_res);
517
518
6
            block.replace_by_position(result, std::move(col_res));
519
6
        }
520
469
        return Status::OK();
521
469
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
119
                            const ColumnPtr& col_right_ptr) const {
478
119
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
119
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
119
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
119
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
119
        DCHECK(!(left_is_const && right_is_const));
485
486
119
        if (!left_is_const && !right_is_const) {
487
6
            auto col_res = ColumnUInt8::create();
488
489
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
6
            vec_res.resize(col_left->get_data().size());
491
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
6
                              typename PrimitiveTypeTraits<PT>::CppType,
493
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
6
                                                     vec_res);
495
496
6
            block.replace_by_position(result, std::move(col_res));
497
113
        } else if (!left_is_const && right_is_const) {
498
113
            auto col_res = ColumnUInt8::create();
499
500
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
113
            vec_res.resize(col_left->size());
502
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
113
                              typename PrimitiveTypeTraits<PT>::CppType,
504
113
                              Op<PT>>::vector_constant(col_left->get_data(),
505
113
                                                       col_right->get_element(0), vec_res);
506
507
113
            block.replace_by_position(result, std::move(col_res));
508
113
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
119
        return Status::OK();
521
119
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
402
                            const ColumnPtr& col_right_ptr) const {
478
402
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
402
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
402
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
402
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
402
        DCHECK(!(left_is_const && right_is_const));
485
486
402
        if (!left_is_const && !right_is_const) {
487
359
            auto col_res = ColumnUInt8::create();
488
489
359
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
359
            vec_res.resize(col_left->get_data().size());
491
359
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
359
                              typename PrimitiveTypeTraits<PT>::CppType,
493
359
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
359
                                                     vec_res);
495
496
359
            block.replace_by_position(result, std::move(col_res));
497
359
        } else if (!left_is_const && right_is_const) {
498
43
            auto col_res = ColumnUInt8::create();
499
500
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
43
            vec_res.resize(col_left->size());
502
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
43
                              typename PrimitiveTypeTraits<PT>::CppType,
504
43
                              Op<PT>>::vector_constant(col_left->get_data(),
505
43
                                                       col_right->get_element(0), vec_res);
506
507
43
            block.replace_by_position(result, std::move(col_res));
508
43
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
402
        return Status::OK();
521
402
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1
                            const ColumnPtr& col_right_ptr) const {
478
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1
        DCHECK(!(left_is_const && right_is_const));
485
486
1
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
1
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1
        return Status::OK();
521
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
53
                            const ColumnPtr& col_right_ptr) const {
478
53
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
53
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
53
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
53
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
53
        DCHECK(!(left_is_const && right_is_const));
485
486
53
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
53
        } else if (!left_is_const && right_is_const) {
498
53
            auto col_res = ColumnUInt8::create();
499
500
53
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
53
            vec_res.resize(col_left->size());
502
53
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
53
                              typename PrimitiveTypeTraits<PT>::CppType,
504
53
                              Op<PT>>::vector_constant(col_left->get_data(),
505
53
                                                       col_right->get_element(0), vec_res);
506
507
53
            block.replace_by_position(result, std::move(col_res));
508
53
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
53
        return Status::OK();
521
53
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
66
                            const ColumnPtr& col_right_ptr) const {
478
66
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
66
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
66
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
66
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
66
        DCHECK(!(left_is_const && right_is_const));
485
486
66
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
66
        } else if (!left_is_const && right_is_const) {
498
66
            auto col_res = ColumnUInt8::create();
499
500
66
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
66
            vec_res.resize(col_left->size());
502
66
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
66
                              typename PrimitiveTypeTraits<PT>::CppType,
504
66
                              Op<PT>>::vector_constant(col_left->get_data(),
505
66
                                                       col_right->get_element(0), vec_res);
506
507
66
            block.replace_by_position(result, std::move(col_res));
508
66
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
66
        return Status::OK();
521
66
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
607
                            const ColumnPtr& col_right_ptr) const {
478
607
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
607
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
607
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
607
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
607
        DCHECK(!(left_is_const && right_is_const));
485
486
607
        if (!left_is_const && !right_is_const) {
487
20
            auto col_res = ColumnUInt8::create();
488
489
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
20
            vec_res.resize(col_left->get_data().size());
491
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              typename PrimitiveTypeTraits<PT>::CppType,
493
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
20
                                                     vec_res);
495
496
20
            block.replace_by_position(result, std::move(col_res));
497
587
        } else if (!left_is_const && right_is_const) {
498
587
            auto col_res = ColumnUInt8::create();
499
500
587
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
587
            vec_res.resize(col_left->size());
502
587
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
587
                              typename PrimitiveTypeTraits<PT>::CppType,
504
587
                              Op<PT>>::vector_constant(col_left->get_data(),
505
587
                                                       col_right->get_element(0), vec_res);
506
507
587
            block.replace_by_position(result, std::move(col_res));
508
587
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
607
        return Status::OK();
521
607
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
770
                            const ColumnPtr& col_right_ptr) const {
478
770
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
770
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
770
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
770
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
770
        DCHECK(!(left_is_const && right_is_const));
485
486
770
        if (!left_is_const && !right_is_const) {
487
16
            auto col_res = ColumnUInt8::create();
488
489
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
16
            vec_res.resize(col_left->get_data().size());
491
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
16
                              typename PrimitiveTypeTraits<PT>::CppType,
493
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
16
                                                     vec_res);
495
496
16
            block.replace_by_position(result, std::move(col_res));
497
754
        } else if (!left_is_const && right_is_const) {
498
754
            auto col_res = ColumnUInt8::create();
499
500
754
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
754
            vec_res.resize(col_left->size());
502
754
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
754
                              typename PrimitiveTypeTraits<PT>::CppType,
504
754
                              Op<PT>>::vector_constant(col_left->get_data(),
505
754
                                                       col_right->get_element(0), vec_res);
506
507
754
            block.replace_by_position(result, std::move(col_res));
508
754
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
770
        return Status::OK();
521
770
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
23
                            const ColumnPtr& col_right_ptr) const {
478
23
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
23
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
23
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
23
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
23
        DCHECK(!(left_is_const && right_is_const));
485
486
23
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
23
        } else if (!left_is_const && right_is_const) {
498
23
            auto col_res = ColumnUInt8::create();
499
500
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
23
            vec_res.resize(col_left->size());
502
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
23
                              typename PrimitiveTypeTraits<PT>::CppType,
504
23
                              Op<PT>>::vector_constant(col_left->get_data(),
505
23
                                                       col_right->get_element(0), vec_res);
506
507
23
            block.replace_by_position(result, std::move(col_res));
508
23
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
23
        return Status::OK();
521
23
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1
                            const ColumnPtr& col_right_ptr) const {
478
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1
        DCHECK(!(left_is_const && right_is_const));
485
486
1
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
1
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1
        return Status::OK();
521
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1
                            const ColumnPtr& col_right_ptr) const {
478
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1
        DCHECK(!(left_is_const && right_is_const));
485
486
1
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
1
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1
        return Status::OK();
521
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
578
                            const ColumnPtr& col_right_ptr) const {
478
578
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
578
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
578
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
578
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
578
        DCHECK(!(left_is_const && right_is_const));
485
486
578
        if (!left_is_const && !right_is_const) {
487
108
            auto col_res = ColumnUInt8::create();
488
489
108
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
108
            vec_res.resize(col_left->get_data().size());
491
108
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
108
                              typename PrimitiveTypeTraits<PT>::CppType,
493
108
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
108
                                                     vec_res);
495
496
108
            block.replace_by_position(result, std::move(col_res));
497
470
        } else if (!left_is_const && right_is_const) {
498
470
            auto col_res = ColumnUInt8::create();
499
500
470
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
470
            vec_res.resize(col_left->size());
502
470
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
470
                              typename PrimitiveTypeTraits<PT>::CppType,
504
470
                              Op<PT>>::vector_constant(col_left->get_data(),
505
470
                                                       col_right->get_element(0), vec_res);
506
507
470
            block.replace_by_position(result, std::move(col_res));
508
470
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
578
        return Status::OK();
521
578
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
24
                            const ColumnPtr& col_right_ptr) const {
478
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
24
        DCHECK(!(left_is_const && right_is_const));
485
486
24
        if (!left_is_const && !right_is_const) {
487
20
            auto col_res = ColumnUInt8::create();
488
489
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
20
            vec_res.resize(col_left->get_data().size());
491
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              typename PrimitiveTypeTraits<PT>::CppType,
493
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
20
                                                     vec_res);
495
496
20
            block.replace_by_position(result, std::move(col_res));
497
20
        } else if (!left_is_const && right_is_const) {
498
4
            auto col_res = ColumnUInt8::create();
499
500
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
4
            vec_res.resize(col_left->size());
502
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
4
                              typename PrimitiveTypeTraits<PT>::CppType,
504
4
                              Op<PT>>::vector_constant(col_left->get_data(),
505
4
                                                       col_right->get_element(0), vec_res);
506
507
4
            block.replace_by_position(result, std::move(col_res));
508
4
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
24
        return Status::OK();
521
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
113
                            const ColumnPtr& col_right_ptr) const {
478
113
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
113
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
113
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
113
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
113
        DCHECK(!(left_is_const && right_is_const));
485
486
113
        if (!left_is_const && !right_is_const) {
487
24
            auto col_res = ColumnUInt8::create();
488
489
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
24
            vec_res.resize(col_left->get_data().size());
491
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
24
                              typename PrimitiveTypeTraits<PT>::CppType,
493
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
24
                                                     vec_res);
495
496
24
            block.replace_by_position(result, std::move(col_res));
497
89
        } else if (!left_is_const && right_is_const) {
498
89
            auto col_res = ColumnUInt8::create();
499
500
89
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
89
            vec_res.resize(col_left->size());
502
89
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
89
                              typename PrimitiveTypeTraits<PT>::CppType,
504
89
                              Op<PT>>::vector_constant(col_left->get_data(),
505
89
                                                       col_right->get_element(0), vec_res);
506
507
89
            block.replace_by_position(result, std::move(col_res));
508
89
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
113
        return Status::OK();
521
113
    }
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
477
86
                            const ColumnPtr& col_right_ptr) const {
478
86
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
86
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
86
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
86
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
86
        DCHECK(!(left_is_const && right_is_const));
485
486
86
        if (!left_is_const && !right_is_const) {
487
86
            auto col_res = ColumnUInt8::create();
488
489
86
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
86
            vec_res.resize(col_left->get_data().size());
491
86
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
86
                              typename PrimitiveTypeTraits<PT>::CppType,
493
86
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
86
                                                     vec_res);
495
496
86
            block.replace_by_position(result, std::move(col_res));
497
86
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
86
        return Status::OK();
521
86
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2.19k
                            const ColumnPtr& col_right_ptr) const {
478
2.19k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.19k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.19k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.19k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.19k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.19k
        if (!left_is_const && !right_is_const) {
487
1.82k
            auto col_res = ColumnUInt8::create();
488
489
1.82k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1.82k
            vec_res.resize(col_left->get_data().size());
491
1.82k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1.82k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1.82k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1.82k
                                                     vec_res);
495
496
1.82k
            block.replace_by_position(result, std::move(col_res));
497
1.82k
        } else if (!left_is_const && right_is_const) {
498
372
            auto col_res = ColumnUInt8::create();
499
500
372
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
372
            vec_res.resize(col_left->size());
502
372
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
372
                              typename PrimitiveTypeTraits<PT>::CppType,
504
372
                              Op<PT>>::vector_constant(col_left->get_data(),
505
372
                                                       col_right->get_element(0), vec_res);
506
507
372
            block.replace_by_position(result, std::move(col_res));
508
18.4E
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
2.19k
        return Status::OK();
521
2.19k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
301
                            const ColumnPtr& col_right_ptr) const {
478
301
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
301
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
301
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
301
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
301
        DCHECK(!(left_is_const && right_is_const));
485
486
301
        if (!left_is_const && !right_is_const) {
487
242
            auto col_res = ColumnUInt8::create();
488
489
242
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
242
            vec_res.resize(col_left->get_data().size());
491
242
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
242
                              typename PrimitiveTypeTraits<PT>::CppType,
493
242
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
242
                                                     vec_res);
495
496
242
            block.replace_by_position(result, std::move(col_res));
497
242
        } else if (!left_is_const && right_is_const) {
498
59
            auto col_res = ColumnUInt8::create();
499
500
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
59
            vec_res.resize(col_left->size());
502
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
59
                              typename PrimitiveTypeTraits<PT>::CppType,
504
59
                              Op<PT>>::vector_constant(col_left->get_data(),
505
59
                                                       col_right->get_element(0), vec_res);
506
507
59
            block.replace_by_position(result, std::move(col_res));
508
59
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
301
        return Status::OK();
521
301
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
148
                            const ColumnPtr& col_right_ptr) const {
478
148
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
148
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
148
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
148
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
148
        DCHECK(!(left_is_const && right_is_const));
485
486
148
        if (!left_is_const && !right_is_const) {
487
109
            auto col_res = ColumnUInt8::create();
488
489
109
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
109
            vec_res.resize(col_left->get_data().size());
491
109
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
109
                              typename PrimitiveTypeTraits<PT>::CppType,
493
109
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
109
                                                     vec_res);
495
496
109
            block.replace_by_position(result, std::move(col_res));
497
109
        } else if (!left_is_const && right_is_const) {
498
39
            auto col_res = ColumnUInt8::create();
499
500
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
39
            vec_res.resize(col_left->size());
502
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
39
                              typename PrimitiveTypeTraits<PT>::CppType,
504
39
                              Op<PT>>::vector_constant(col_left->get_data(),
505
39
                                                       col_right->get_element(0), vec_res);
506
507
39
            block.replace_by_position(result, std::move(col_res));
508
39
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
148
        return Status::OK();
521
148
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2
                            const ColumnPtr& col_right_ptr) const {
478
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2
        DCHECK(!(left_is_const && right_is_const));
485
486
2
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
1
        } else if (!left_is_const && right_is_const) {
498
1
            auto col_res = ColumnUInt8::create();
499
500
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1
            vec_res.resize(col_left->size());
502
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1
                                                       col_right->get_element(0), vec_res);
506
507
1
            block.replace_by_position(result, std::move(col_res));
508
1
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
2
        return Status::OK();
521
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2.35k
                            const ColumnPtr& col_right_ptr) const {
478
2.35k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.35k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.35k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.35k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.35k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.35k
        if (!left_is_const && !right_is_const) {
487
213
            auto col_res = ColumnUInt8::create();
488
489
213
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
213
            vec_res.resize(col_left->get_data().size());
491
213
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
213
                              typename PrimitiveTypeTraits<PT>::CppType,
493
213
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
213
                                                     vec_res);
495
496
213
            block.replace_by_position(result, std::move(col_res));
497
2.13k
        } else if (!left_is_const && right_is_const) {
498
1.89k
            auto col_res = ColumnUInt8::create();
499
500
1.89k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1.89k
            vec_res.resize(col_left->size());
502
1.89k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1.89k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1.89k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1.89k
                                                       col_right->get_element(0), vec_res);
506
507
1.89k
            block.replace_by_position(result, std::move(col_res));
508
1.89k
        } else if (left_is_const && !right_is_const) {
509
240
            auto col_res = ColumnUInt8::create();
510
511
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
240
            vec_res.resize(col_right->size());
513
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
240
                              typename PrimitiveTypeTraits<PT>::CppType,
515
240
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
240
                                                       col_right->get_data(), vec_res);
517
518
240
            block.replace_by_position(result, std::move(col_res));
519
240
        }
520
2.35k
        return Status::OK();
521
2.35k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
174
                            const ColumnPtr& col_right_ptr) const {
478
174
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
174
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
174
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
174
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
174
        DCHECK(!(left_is_const && right_is_const));
485
486
174
        if (!left_is_const && !right_is_const) {
487
160
            auto col_res = ColumnUInt8::create();
488
489
160
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
160
            vec_res.resize(col_left->get_data().size());
491
160
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
160
                              typename PrimitiveTypeTraits<PT>::CppType,
493
160
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
160
                                                     vec_res);
495
496
160
            block.replace_by_position(result, std::move(col_res));
497
160
        } else if (!left_is_const && right_is_const) {
498
14
            auto col_res = ColumnUInt8::create();
499
500
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
14
            vec_res.resize(col_left->size());
502
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
14
                              typename PrimitiveTypeTraits<PT>::CppType,
504
14
                              Op<PT>>::vector_constant(col_left->get_data(),
505
14
                                                       col_right->get_element(0), vec_res);
506
507
14
            block.replace_by_position(result, std::move(col_res));
508
14
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
174
        return Status::OK();
521
174
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1.89k
                            const ColumnPtr& col_right_ptr) const {
478
1.89k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.89k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.89k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.89k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.89k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.89k
        if (!left_is_const && !right_is_const) {
487
877
            auto col_res = ColumnUInt8::create();
488
489
877
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
877
            vec_res.resize(col_left->get_data().size());
491
877
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
877
                              typename PrimitiveTypeTraits<PT>::CppType,
493
877
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
877
                                                     vec_res);
495
496
877
            block.replace_by_position(result, std::move(col_res));
497
1.01k
        } else if (!left_is_const && right_is_const) {
498
892
            auto col_res = ColumnUInt8::create();
499
500
892
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
892
            vec_res.resize(col_left->size());
502
892
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
892
                              typename PrimitiveTypeTraits<PT>::CppType,
504
892
                              Op<PT>>::vector_constant(col_left->get_data(),
505
892
                                                       col_right->get_element(0), vec_res);
506
507
892
            block.replace_by_position(result, std::move(col_res));
508
892
        } else if (left_is_const && !right_is_const) {
509
121
            auto col_res = ColumnUInt8::create();
510
511
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
121
            vec_res.resize(col_right->size());
513
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
121
                              typename PrimitiveTypeTraits<PT>::CppType,
515
121
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
121
                                                       col_right->get_data(), vec_res);
517
518
121
            block.replace_by_position(result, std::move(col_res));
519
121
        }
520
1.89k
        return Status::OK();
521
1.89k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
935
                            const ColumnPtr& col_right_ptr) const {
478
935
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
935
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
935
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
935
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
935
        DCHECK(!(left_is_const && right_is_const));
485
486
935
        if (!left_is_const && !right_is_const) {
487
329
            auto col_res = ColumnUInt8::create();
488
489
329
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
329
            vec_res.resize(col_left->get_data().size());
491
329
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
329
                              typename PrimitiveTypeTraits<PT>::CppType,
493
329
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
329
                                                     vec_res);
495
496
329
            block.replace_by_position(result, std::move(col_res));
497
606
        } else if (!left_is_const && right_is_const) {
498
531
            auto col_res = ColumnUInt8::create();
499
500
531
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
531
            vec_res.resize(col_left->size());
502
531
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
531
                              typename PrimitiveTypeTraits<PT>::CppType,
504
531
                              Op<PT>>::vector_constant(col_left->get_data(),
505
531
                                                       col_right->get_element(0), vec_res);
506
507
531
            block.replace_by_position(result, std::move(col_res));
508
531
        } else if (left_is_const && !right_is_const) {
509
75
            auto col_res = ColumnUInt8::create();
510
511
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
75
            vec_res.resize(col_right->size());
513
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
75
                              typename PrimitiveTypeTraits<PT>::CppType,
515
75
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
75
                                                       col_right->get_data(), vec_res);
517
518
75
            block.replace_by_position(result, std::move(col_res));
519
75
        }
520
935
        return Status::OK();
521
935
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
287
                            const ColumnPtr& col_right_ptr) const {
478
287
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
287
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
287
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
287
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
287
        DCHECK(!(left_is_const && right_is_const));
485
486
287
        if (!left_is_const && !right_is_const) {
487
135
            auto col_res = ColumnUInt8::create();
488
489
135
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
135
            vec_res.resize(col_left->get_data().size());
491
135
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
135
                              typename PrimitiveTypeTraits<PT>::CppType,
493
135
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
135
                                                     vec_res);
495
496
135
            block.replace_by_position(result, std::move(col_res));
497
152
        } else if (!left_is_const && right_is_const) {
498
61
            auto col_res = ColumnUInt8::create();
499
500
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
61
            vec_res.resize(col_left->size());
502
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
61
                              typename PrimitiveTypeTraits<PT>::CppType,
504
61
                              Op<PT>>::vector_constant(col_left->get_data(),
505
61
                                                       col_right->get_element(0), vec_res);
506
507
61
            block.replace_by_position(result, std::move(col_res));
508
92
        } else if (left_is_const && !right_is_const) {
509
92
            auto col_res = ColumnUInt8::create();
510
511
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
92
            vec_res.resize(col_right->size());
513
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
92
                              typename PrimitiveTypeTraits<PT>::CppType,
515
92
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
92
                                                       col_right->get_data(), vec_res);
517
518
92
            block.replace_by_position(result, std::move(col_res));
519
92
        }
520
287
        return Status::OK();
521
287
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
17
                            const ColumnPtr& col_right_ptr) const {
478
17
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
17
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
17
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
17
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
17
        DCHECK(!(left_is_const && right_is_const));
485
486
17
        if (!left_is_const && !right_is_const) {
487
15
            auto col_res = ColumnUInt8::create();
488
489
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
15
            vec_res.resize(col_left->get_data().size());
491
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
15
                              typename PrimitiveTypeTraits<PT>::CppType,
493
15
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
15
                                                     vec_res);
495
496
15
            block.replace_by_position(result, std::move(col_res));
497
15
        } else if (!left_is_const && right_is_const) {
498
2
            auto col_res = ColumnUInt8::create();
499
500
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
2
            vec_res.resize(col_left->size());
502
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
2
                              typename PrimitiveTypeTraits<PT>::CppType,
504
2
                              Op<PT>>::vector_constant(col_left->get_data(),
505
2
                                                       col_right->get_element(0), vec_res);
506
507
2
            block.replace_by_position(result, std::move(col_res));
508
2
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
17
        return Status::OK();
521
17
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
15
                            const ColumnPtr& col_right_ptr) const {
478
15
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
15
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
15
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
15
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
15
        DCHECK(!(left_is_const && right_is_const));
485
486
15
        if (!left_is_const && !right_is_const) {
487
15
            auto col_res = ColumnUInt8::create();
488
489
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
15
            vec_res.resize(col_left->get_data().size());
491
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
15
                              typename PrimitiveTypeTraits<PT>::CppType,
493
15
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
15
                                                     vec_res);
495
496
15
            block.replace_by_position(result, std::move(col_res));
497
15
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
15
        return Status::OK();
521
15
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
457
                            const ColumnPtr& col_right_ptr) const {
478
457
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
457
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
457
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
457
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
457
        DCHECK(!(left_is_const && right_is_const));
485
486
457
        if (!left_is_const && !right_is_const) {
487
110
            auto col_res = ColumnUInt8::create();
488
489
110
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
110
            vec_res.resize(col_left->get_data().size());
491
110
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
110
                              typename PrimitiveTypeTraits<PT>::CppType,
493
110
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
110
                                                     vec_res);
495
496
110
            block.replace_by_position(result, std::move(col_res));
497
347
        } else if (!left_is_const && right_is_const) {
498
347
            auto col_res = ColumnUInt8::create();
499
500
347
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
347
            vec_res.resize(col_left->size());
502
347
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
347
                              typename PrimitiveTypeTraits<PT>::CppType,
504
347
                              Op<PT>>::vector_constant(col_left->get_data(),
505
347
                                                       col_right->get_element(0), vec_res);
506
507
347
            block.replace_by_position(result, std::move(col_res));
508
347
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
457
        return Status::OK();
521
457
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
134
                            const ColumnPtr& col_right_ptr) const {
478
134
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
134
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
134
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
134
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
134
        DCHECK(!(left_is_const && right_is_const));
485
486
134
        if (!left_is_const && !right_is_const) {
487
134
            auto col_res = ColumnUInt8::create();
488
489
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
134
            vec_res.resize(col_left->get_data().size());
491
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
134
                              typename PrimitiveTypeTraits<PT>::CppType,
493
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
134
                                                     vec_res);
495
496
134
            block.replace_by_position(result, std::move(col_res));
497
134
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
134
        return Status::OK();
521
134
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1.09k
                            const ColumnPtr& col_right_ptr) const {
478
1.09k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.09k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.09k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.09k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.09k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.09k
        if (!left_is_const && !right_is_const) {
487
129
            auto col_res = ColumnUInt8::create();
488
489
129
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
129
            vec_res.resize(col_left->get_data().size());
491
129
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
129
                              typename PrimitiveTypeTraits<PT>::CppType,
493
129
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
129
                                                     vec_res);
495
496
129
            block.replace_by_position(result, std::move(col_res));
497
961
        } else if (!left_is_const && right_is_const) {
498
961
            auto col_res = ColumnUInt8::create();
499
500
961
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
961
            vec_res.resize(col_left->size());
502
961
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
961
                              typename PrimitiveTypeTraits<PT>::CppType,
504
961
                              Op<PT>>::vector_constant(col_left->get_data(),
505
961
                                                       col_right->get_element(0), vec_res);
506
507
961
            block.replace_by_position(result, std::move(col_res));
508
961
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1.09k
        return Status::OK();
521
1.09k
    }
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
477
27
                            const ColumnPtr& col_right_ptr) const {
478
27
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
27
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
27
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
27
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
27
        DCHECK(!(left_is_const && right_is_const));
485
486
27
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
27
        } else if (!left_is_const && right_is_const) {
498
27
            auto col_res = ColumnUInt8::create();
499
500
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
27
            vec_res.resize(col_left->size());
502
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
27
                              typename PrimitiveTypeTraits<PT>::CppType,
504
27
                              Op<PT>>::vector_constant(col_left->get_data(),
505
27
                                                       col_right->get_element(0), vec_res);
506
507
27
            block.replace_by_position(result, std::move(col_res));
508
27
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
27
        return Status::OK();
521
27
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
536
                            const ColumnPtr& col_right_ptr) const {
478
536
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
536
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
536
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
536
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
536
        DCHECK(!(left_is_const && right_is_const));
485
486
536
        if (!left_is_const && !right_is_const) {
487
382
            auto col_res = ColumnUInt8::create();
488
489
382
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
382
            vec_res.resize(col_left->get_data().size());
491
382
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
382
                              typename PrimitiveTypeTraits<PT>::CppType,
493
382
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
382
                                                     vec_res);
495
496
382
            block.replace_by_position(result, std::move(col_res));
497
382
        } else if (!left_is_const && right_is_const) {
498
148
            auto col_res = ColumnUInt8::create();
499
500
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
148
            vec_res.resize(col_left->size());
502
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
148
                              typename PrimitiveTypeTraits<PT>::CppType,
504
148
                              Op<PT>>::vector_constant(col_left->get_data(),
505
148
                                                       col_right->get_element(0), vec_res);
506
507
148
            block.replace_by_position(result, std::move(col_res));
508
148
        } else if (left_is_const && !right_is_const) {
509
5
            auto col_res = ColumnUInt8::create();
510
511
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
5
            vec_res.resize(col_right->size());
513
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
5
                              typename PrimitiveTypeTraits<PT>::CppType,
515
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
5
                                                       col_right->get_data(), vec_res);
517
518
5
            block.replace_by_position(result, std::move(col_res));
519
5
        }
520
536
        return Status::OK();
521
536
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
58
                            const ColumnPtr& col_right_ptr) const {
478
58
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
58
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
58
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
58
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
58
        DCHECK(!(left_is_const && right_is_const));
485
486
58
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
58
        } else if (!left_is_const && right_is_const) {
498
58
            auto col_res = ColumnUInt8::create();
499
500
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
58
            vec_res.resize(col_left->size());
502
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
58
                              typename PrimitiveTypeTraits<PT>::CppType,
504
58
                              Op<PT>>::vector_constant(col_left->get_data(),
505
58
                                                       col_right->get_element(0), vec_res);
506
507
58
            block.replace_by_position(result, std::move(col_res));
508
58
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
58
        return Status::OK();
521
58
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
59
                            const ColumnPtr& col_right_ptr) const {
478
59
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
59
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
59
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
59
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
59
        DCHECK(!(left_is_const && right_is_const));
485
486
59
        if (!left_is_const && !right_is_const) {
487
24
            auto col_res = ColumnUInt8::create();
488
489
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
24
            vec_res.resize(col_left->get_data().size());
491
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
24
                              typename PrimitiveTypeTraits<PT>::CppType,
493
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
24
                                                     vec_res);
495
496
24
            block.replace_by_position(result, std::move(col_res));
497
35
        } else if (!left_is_const && right_is_const) {
498
35
            auto col_res = ColumnUInt8::create();
499
500
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
35
            vec_res.resize(col_left->size());
502
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
35
                              typename PrimitiveTypeTraits<PT>::CppType,
504
35
                              Op<PT>>::vector_constant(col_left->get_data(),
505
35
                                                       col_right->get_element(0), vec_res);
506
507
35
            block.replace_by_position(result, std::move(col_res));
508
35
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
59
        return Status::OK();
521
59
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1
                            const ColumnPtr& col_right_ptr) const {
478
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1
        DCHECK(!(left_is_const && right_is_const));
485
486
1
        if (!left_is_const && !right_is_const) {
487
1
            auto col_res = ColumnUInt8::create();
488
489
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1
            vec_res.resize(col_left->get_data().size());
491
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1
                                                     vec_res);
495
496
1
            block.replace_by_position(result, std::move(col_res));
497
1
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
1
        return Status::OK();
521
1
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
59
                            const ColumnPtr& col_right_ptr) const {
478
59
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
59
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
59
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
59
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
59
        DCHECK(!(left_is_const && right_is_const));
485
486
59
        if (!left_is_const && !right_is_const) {
487
2
            auto col_res = ColumnUInt8::create();
488
489
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
2
            vec_res.resize(col_left->get_data().size());
491
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
2
                              typename PrimitiveTypeTraits<PT>::CppType,
493
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
2
                                                     vec_res);
495
496
2
            block.replace_by_position(result, std::move(col_res));
497
57
        } else if (!left_is_const && right_is_const) {
498
57
            auto col_res = ColumnUInt8::create();
499
500
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
57
            vec_res.resize(col_left->size());
502
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
57
                              typename PrimitiveTypeTraits<PT>::CppType,
504
57
                              Op<PT>>::vector_constant(col_left->get_data(),
505
57
                                                       col_right->get_element(0), vec_res);
506
507
57
            block.replace_by_position(result, std::move(col_res));
508
57
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
59
        return Status::OK();
521
59
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
69
                            const ColumnPtr& col_right_ptr) const {
478
69
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
69
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
69
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
69
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
69
        DCHECK(!(left_is_const && right_is_const));
485
486
69
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
69
        } else if (!left_is_const && right_is_const) {
498
69
            auto col_res = ColumnUInt8::create();
499
500
69
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
69
            vec_res.resize(col_left->size());
502
69
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
69
                              typename PrimitiveTypeTraits<PT>::CppType,
504
69
                              Op<PT>>::vector_constant(col_left->get_data(),
505
69
                                                       col_right->get_element(0), vec_res);
506
507
69
            block.replace_by_position(result, std::move(col_res));
508
69
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
69
        return Status::OK();
521
69
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
6.29k
                            const ColumnPtr& col_right_ptr) const {
478
6.29k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
6.29k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
6.29k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
6.29k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
6.29k
        DCHECK(!(left_is_const && right_is_const));
485
486
6.29k
        if (!left_is_const && !right_is_const) {
487
39
            auto col_res = ColumnUInt8::create();
488
489
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
39
            vec_res.resize(col_left->get_data().size());
491
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
39
                              typename PrimitiveTypeTraits<PT>::CppType,
493
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
39
                                                     vec_res);
495
496
39
            block.replace_by_position(result, std::move(col_res));
497
6.25k
        } else if (!left_is_const && right_is_const) {
498
6.25k
            auto col_res = ColumnUInt8::create();
499
500
6.25k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
6.25k
            vec_res.resize(col_left->size());
502
6.25k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
6.25k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
6.25k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
6.25k
                                                       col_right->get_element(0), vec_res);
506
507
6.25k
            block.replace_by_position(result, std::move(col_res));
508
18.4E
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
6.29k
        return Status::OK();
521
6.29k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
678
                            const ColumnPtr& col_right_ptr) const {
478
678
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
678
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
678
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
678
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
678
        DCHECK(!(left_is_const && right_is_const));
485
486
678
        if (!left_is_const && !right_is_const) {
487
71
            auto col_res = ColumnUInt8::create();
488
489
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
71
            vec_res.resize(col_left->get_data().size());
491
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
71
                              typename PrimitiveTypeTraits<PT>::CppType,
493
71
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
71
                                                     vec_res);
495
496
71
            block.replace_by_position(result, std::move(col_res));
497
607
        } else if (!left_is_const && right_is_const) {
498
559
            auto col_res = ColumnUInt8::create();
499
500
559
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
559
            vec_res.resize(col_left->size());
502
559
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
559
                              typename PrimitiveTypeTraits<PT>::CppType,
504
559
                              Op<PT>>::vector_constant(col_left->get_data(),
505
559
                                                       col_right->get_element(0), vec_res);
506
507
559
            block.replace_by_position(result, std::move(col_res));
508
559
        } else if (left_is_const && !right_is_const) {
509
48
            auto col_res = ColumnUInt8::create();
510
511
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
48
            vec_res.resize(col_right->size());
513
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
48
                              typename PrimitiveTypeTraits<PT>::CppType,
515
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
48
                                                       col_right->get_data(), vec_res);
517
518
48
            block.replace_by_position(result, std::move(col_res));
519
48
        }
520
678
        return Status::OK();
521
678
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
41
                            const ColumnPtr& col_right_ptr) const {
478
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
41
        DCHECK(!(left_is_const && right_is_const));
485
486
41
        if (!left_is_const && !right_is_const) {
487
0
            auto col_res = ColumnUInt8::create();
488
489
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
0
            vec_res.resize(col_left->get_data().size());
491
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
0
                              typename PrimitiveTypeTraits<PT>::CppType,
493
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
0
                                                     vec_res);
495
496
0
            block.replace_by_position(result, std::move(col_res));
497
41
        } else if (!left_is_const && right_is_const) {
498
41
            auto col_res = ColumnUInt8::create();
499
500
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
41
            vec_res.resize(col_left->size());
502
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
41
                              typename PrimitiveTypeTraits<PT>::CppType,
504
41
                              Op<PT>>::vector_constant(col_left->get_data(),
505
41
                                                       col_right->get_element(0), vec_res);
506
507
41
            block.replace_by_position(result, std::move(col_res));
508
41
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
41
        return Status::OK();
521
41
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
418
                            const ColumnPtr& col_right_ptr) const {
478
418
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
418
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
418
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
418
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
418
        DCHECK(!(left_is_const && right_is_const));
485
486
418
        if (!left_is_const && !right_is_const) {
487
104
            auto col_res = ColumnUInt8::create();
488
489
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
104
            vec_res.resize(col_left->get_data().size());
491
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
104
                              typename PrimitiveTypeTraits<PT>::CppType,
493
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
104
                                                     vec_res);
495
496
104
            block.replace_by_position(result, std::move(col_res));
497
314
        } else if (!left_is_const && right_is_const) {
498
314
            auto col_res = ColumnUInt8::create();
499
500
314
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
314
            vec_res.resize(col_left->size());
502
314
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
314
                              typename PrimitiveTypeTraits<PT>::CppType,
504
314
                              Op<PT>>::vector_constant(col_left->get_data(),
505
314
                                                       col_right->get_element(0), vec_res);
506
507
314
            block.replace_by_position(result, std::move(col_res));
508
314
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
418
        return Status::OK();
521
418
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
20
                            const ColumnPtr& col_right_ptr) const {
478
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
20
        DCHECK(!(left_is_const && right_is_const));
485
486
20
        if (!left_is_const && !right_is_const) {
487
20
            auto col_res = ColumnUInt8::create();
488
489
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
20
            vec_res.resize(col_left->get_data().size());
491
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              typename PrimitiveTypeTraits<PT>::CppType,
493
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
20
                                                     vec_res);
495
496
20
            block.replace_by_position(result, std::move(col_res));
497
20
        } else if (!left_is_const && right_is_const) {
498
0
            auto col_res = ColumnUInt8::create();
499
500
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
0
            vec_res.resize(col_left->size());
502
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
0
                              typename PrimitiveTypeTraits<PT>::CppType,
504
0
                              Op<PT>>::vector_constant(col_left->get_data(),
505
0
                                                       col_right->get_element(0), vec_res);
506
507
0
            block.replace_by_position(result, std::move(col_res));
508
0
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
20
        return Status::OK();
521
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
112
                            const ColumnPtr& col_right_ptr) const {
478
112
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
112
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
112
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
112
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
112
        DCHECK(!(left_is_const && right_is_const));
485
486
112
        if (!left_is_const && !right_is_const) {
487
20
            auto col_res = ColumnUInt8::create();
488
489
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
20
            vec_res.resize(col_left->get_data().size());
491
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
20
                              typename PrimitiveTypeTraits<PT>::CppType,
493
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
20
                                                     vec_res);
495
496
20
            block.replace_by_position(result, std::move(col_res));
497
92
        } else if (!left_is_const && right_is_const) {
498
92
            auto col_res = ColumnUInt8::create();
499
500
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
92
            vec_res.resize(col_left->size());
502
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
92
                              typename PrimitiveTypeTraits<PT>::CppType,
504
92
                              Op<PT>>::vector_constant(col_left->get_data(),
505
92
                                                       col_right->get_element(0), vec_res);
506
507
92
            block.replace_by_position(result, std::move(col_res));
508
92
        } else if (left_is_const && !right_is_const) {
509
0
            auto col_res = ColumnUInt8::create();
510
511
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
0
            vec_res.resize(col_right->size());
513
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
0
                              typename PrimitiveTypeTraits<PT>::CppType,
515
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
0
                                                       col_right->get_data(), vec_res);
517
518
0
            block.replace_by_position(result, std::move(col_res));
519
0
        }
520
112
        return Status::OK();
521
112
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
522
523
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
524
3.24k
                           const ColumnWithTypeAndName& col_right) const {
525
3.24k
        auto call = [&](const auto& type) -> bool {
526
3.24k
            using DispatchType = std::decay_t<decltype(type)>;
527
3.24k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
3.24k
                    block, result, col_left, col_right);
529
3.24k
            return true;
530
3.24k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
525
108
        auto call = [&](const auto& type) -> bool {
526
108
            using DispatchType = std::decay_t<decltype(type)>;
527
108
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
108
                    block, result, col_left, col_right);
529
108
            return true;
530
108
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
525
111
        auto call = [&](const auto& type) -> bool {
526
111
            using DispatchType = std::decay_t<decltype(type)>;
527
111
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
111
                    block, result, col_left, col_right);
529
111
            return true;
530
111
        };
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
525
858
        auto call = [&](const auto& type) -> bool {
526
858
            using DispatchType = std::decay_t<decltype(type)>;
527
858
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
858
                    block, result, col_left, col_right);
529
858
            return true;
530
858
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
18
        auto call = [&](const auto& type) -> bool {
526
18
            using DispatchType = std::decay_t<decltype(type)>;
527
18
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
18
                    block, result, col_left, col_right);
529
18
            return true;
530
18
        };
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
525
65
        auto call = [&](const auto& type) -> bool {
526
65
            using DispatchType = std::decay_t<decltype(type)>;
527
65
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
65
                    block, result, col_left, col_right);
529
65
            return true;
530
65
        };
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
525
28
        auto call = [&](const auto& type) -> bool {
526
28
            using DispatchType = std::decay_t<decltype(type)>;
527
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
28
                    block, result, col_left, col_right);
529
28
            return true;
530
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
30
        auto call = [&](const auto& type) -> bool {
526
30
            using DispatchType = std::decay_t<decltype(type)>;
527
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
30
                    block, result, col_left, col_right);
529
30
            return true;
530
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
525
8
        auto call = [&](const auto& type) -> bool {
526
8
            using DispatchType = std::decay_t<decltype(type)>;
527
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
8
                    block, result, col_left, col_right);
529
8
            return true;
530
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
525
67
        auto call = [&](const auto& type) -> bool {
526
67
            using DispatchType = std::decay_t<decltype(type)>;
527
67
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
67
                    block, result, col_left, col_right);
529
67
            return true;
530
67
        };
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
525
774
        auto call = [&](const auto& type) -> bool {
526
774
            using DispatchType = std::decay_t<decltype(type)>;
527
774
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
774
                    block, result, col_left, col_right);
529
774
            return true;
530
774
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
2
        auto call = [&](const auto& type) -> bool {
526
2
            using DispatchType = std::decay_t<decltype(type)>;
527
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
2
                    block, result, col_left, col_right);
529
2
            return true;
530
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
525
4
        auto call = [&](const auto& type) -> bool {
526
4
            using DispatchType = std::decay_t<decltype(type)>;
527
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
4
                    block, result, col_left, col_right);
529
4
            return true;
530
4
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
525
70
        auto call = [&](const auto& type) -> bool {
526
70
            using DispatchType = std::decay_t<decltype(type)>;
527
70
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
70
                    block, result, col_left, col_right);
529
70
            return true;
530
70
        };
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
525
105
        auto call = [&](const auto& type) -> bool {
526
105
            using DispatchType = std::decay_t<decltype(type)>;
527
105
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
105
                    block, result, col_left, col_right);
529
105
            return true;
530
105
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
11
        auto call = [&](const auto& type) -> bool {
526
11
            using DispatchType = std::decay_t<decltype(type)>;
527
11
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
11
                    block, result, col_left, col_right);
529
11
            return true;
530
11
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
525
168
        auto call = [&](const auto& type) -> bool {
526
168
            using DispatchType = std::decay_t<decltype(type)>;
527
168
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
168
                    block, result, col_left, col_right);
529
168
            return true;
530
168
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
525
190
        auto call = [&](const auto& type) -> bool {
526
190
            using DispatchType = std::decay_t<decltype(type)>;
527
190
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
190
                    block, result, col_left, col_right);
529
190
            return true;
530
190
        };
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
525
438
        auto call = [&](const auto& type) -> bool {
526
438
            using DispatchType = std::decay_t<decltype(type)>;
527
438
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
438
                    block, result, col_left, col_right);
529
438
            return true;
530
438
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
1
        auto call = [&](const auto& type) -> bool {
526
1
            using DispatchType = std::decay_t<decltype(type)>;
527
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
1
                    block, result, col_left, col_right);
529
1
            return true;
530
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
525
7
        auto call = [&](const auto& type) -> bool {
526
7
            using DispatchType = std::decay_t<decltype(type)>;
527
7
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
7
                    block, result, col_left, col_right);
529
7
            return true;
530
7
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
525
94
        auto call = [&](const auto& type) -> bool {
526
94
            using DispatchType = std::decay_t<decltype(type)>;
527
94
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
94
                    block, result, col_left, col_right);
529
94
            return true;
530
94
        };
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
525
82
        auto call = [&](const auto& type) -> bool {
526
82
            using DispatchType = std::decay_t<decltype(type)>;
527
82
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
82
                    block, result, col_left, col_right);
529
82
            return true;
530
82
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
6
        auto call = [&](const auto& type) -> bool {
526
6
            using DispatchType = std::decay_t<decltype(type)>;
527
6
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
6
                    block, result, col_left, col_right);
529
6
            return true;
530
6
        };
531
532
3.24k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
533
0
            return Status::RuntimeError(
534
0
                    "type of left column {} is not equal to type of right column {}",
535
0
                    col_left.type->get_name(), col_right.type->get_name());
536
0
        }
537
538
3.24k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
539
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
540
0
                                        col_left.type->get_name(), col_right.type->get_name());
541
0
        }
542
3.24k
        return Status::OK();
543
3.24k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
1.09k
                           const ColumnWithTypeAndName& col_right) const {
525
1.09k
        auto call = [&](const auto& type) -> bool {
526
1.09k
            using DispatchType = std::decay_t<decltype(type)>;
527
1.09k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
1.09k
                    block, result, col_left, col_right);
529
1.09k
            return true;
530
1.09k
        };
531
532
1.09k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
533
0
            return Status::RuntimeError(
534
0
                    "type of left column {} is not equal to type of right column {}",
535
0
                    col_left.type->get_name(), col_right.type->get_name());
536
0
        }
537
538
1.09k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
539
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
540
0
                                        col_left.type->get_name(), col_right.type->get_name());
541
0
        }
542
1.09k
        return Status::OK();
543
1.09k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
123
                           const ColumnWithTypeAndName& col_right) const {
525
123
        auto call = [&](const auto& type) -> bool {
526
123
            using DispatchType = std::decay_t<decltype(type)>;
527
123
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
123
                    block, result, col_left, col_right);
529
123
            return true;
530
123
        };
531
532
123
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
533
0
            return Status::RuntimeError(
534
0
                    "type of left column {} is not equal to type of right column {}",
535
0
                    col_left.type->get_name(), col_right.type->get_name());
536
0
        }
537
538
123
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
539
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
540
0
                                        col_left.type->get_name(), col_right.type->get_name());
541
0
        }
542
123
        return Status::OK();
543
123
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
851
                           const ColumnWithTypeAndName& col_right) const {
525
851
        auto call = [&](const auto& type) -> bool {
526
851
            using DispatchType = std::decay_t<decltype(type)>;
527
851
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
851
                    block, result, col_left, col_right);
529
851
            return true;
530
851
        };
531
532
851
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
533
0
            return Status::RuntimeError(
534
0
                    "type of left column {} is not equal to type of right column {}",
535
0
                    col_left.type->get_name(), col_right.type->get_name());
536
0
        }
537
538
851
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
539
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
540
0
                                        col_left.type->get_name(), col_right.type->get_name());
541
0
        }
542
851
        return Status::OK();
543
851
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
190
                           const ColumnWithTypeAndName& col_right) const {
525
190
        auto call = [&](const auto& type) -> bool {
526
190
            using DispatchType = std::decay_t<decltype(type)>;
527
190
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
190
                    block, result, col_left, col_right);
529
190
            return true;
530
190
        };
531
532
190
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
533
0
            return Status::RuntimeError(
534
0
                    "type of left column {} is not equal to type of right column {}",
535
0
                    col_left.type->get_name(), col_right.type->get_name());
536
0
        }
537
538
190
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
539
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
540
0
                                        col_left.type->get_name(), col_right.type->get_name());
541
0
        }
542
190
        return Status::OK();
543
190
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
797
                           const ColumnWithTypeAndName& col_right) const {
525
797
        auto call = [&](const auto& type) -> bool {
526
797
            using DispatchType = std::decay_t<decltype(type)>;
527
797
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
797
                    block, result, col_left, col_right);
529
797
            return true;
530
797
        };
531
532
797
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
533
0
            return Status::RuntimeError(
534
0
                    "type of left column {} is not equal to type of right column {}",
535
0
                    col_left.type->get_name(), col_right.type->get_name());
536
0
        }
537
538
797
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
539
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
540
0
                                        col_left.type->get_name(), col_right.type->get_name());
541
0
        }
542
797
        return Status::OK();
543
797
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
189
                           const ColumnWithTypeAndName& col_right) const {
525
189
        auto call = [&](const auto& type) -> bool {
526
189
            using DispatchType = std::decay_t<decltype(type)>;
527
189
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
189
                    block, result, col_left, col_right);
529
189
            return true;
530
189
        };
531
532
189
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
533
0
            return Status::RuntimeError(
534
0
                    "type of left column {} is not equal to type of right column {}",
535
0
                    col_left.type->get_name(), col_right.type->get_name());
536
0
        }
537
538
189
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
539
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
540
0
                                        col_left.type->get_name(), col_right.type->get_name());
541
0
        }
542
189
        return Status::OK();
543
189
    }
544
545
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
546
23.1k
                          const IColumn* c1) const {
547
23.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
23.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
23.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
23.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
23.1k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
552
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
553
0
                                        c0->get_name(), c1->get_name(), name);
554
0
        }
555
23.1k
        DCHECK(!(c0_const && c1_const));
556
23.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
557
23.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
558
23.1k
        ColumnString::Offset c0_const_size = 0;
559
23.1k
        ColumnString::Offset c1_const_size = 0;
560
561
23.1k
        if (c0_const) {
562
70
            const ColumnString* c0_const_string =
563
70
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
70
            if (c0_const_string) {
566
70
                c0_const_chars = &c0_const_string->get_chars();
567
70
                c0_const_size = c0_const_string->get_offsets()[0];
568
70
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
70
        }
573
574
23.1k
        if (c1_const) {
575
22.1k
            const ColumnString* c1_const_string =
576
22.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
22.1k
            if (c1_const_string) {
579
22.1k
                c1_const_chars = &c1_const_string->get_chars();
580
22.1k
                c1_const_size = c1_const_string->get_offsets()[0];
581
18.4E
            } else {
582
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
18.4E
                                            c1->get_name(), name);
584
18.4E
            }
585
22.1k
        }
586
587
23.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
23.1k
        auto c_res = ColumnUInt8::create();
590
23.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
23.1k
        vec_res.resize(c0->size());
592
593
23.1k
        if (c0_string && c1_string) {
594
850
            StringImpl::string_vector_string_vector(
595
850
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
850
                    c1_string->get_offsets(), vec_res);
597
22.2k
        } else if (c0_string && c1_const) {
598
22.1k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
22.1k
                                               *c1_const_chars, c1_const_size, vec_res);
600
22.1k
        } else if (c0_const && c1_string) {
601
70
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
70
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
70
                                               vec_res);
604
18.4E
        } else {
605
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
606
18.4E
                                        c0->get_name(), c1->get_name(), name);
607
18.4E
        }
608
23.1k
        block.replace_by_position(result, std::move(c_res));
609
23.1k
        return Status::OK();
610
23.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
21.5k
                          const IColumn* c1) const {
547
21.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
21.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
21.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
21.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
21.5k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
552
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
553
0
                                        c0->get_name(), c1->get_name(), name);
554
0
        }
555
21.5k
        DCHECK(!(c0_const && c1_const));
556
21.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
557
21.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
558
21.5k
        ColumnString::Offset c0_const_size = 0;
559
21.5k
        ColumnString::Offset c1_const_size = 0;
560
561
21.5k
        if (c0_const) {
562
16
            const ColumnString* c0_const_string =
563
16
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
16
            if (c0_const_string) {
566
16
                c0_const_chars = &c0_const_string->get_chars();
567
16
                c0_const_size = c0_const_string->get_offsets()[0];
568
16
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
16
        }
573
574
21.5k
        if (c1_const) {
575
21.1k
            const ColumnString* c1_const_string =
576
21.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
21.1k
            if (c1_const_string) {
579
21.1k
                c1_const_chars = &c1_const_string->get_chars();
580
21.1k
                c1_const_size = c1_const_string->get_offsets()[0];
581
18.4E
            } else {
582
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
18.4E
                                            c1->get_name(), name);
584
18.4E
            }
585
21.1k
        }
586
587
21.5k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
21.5k
        auto c_res = ColumnUInt8::create();
590
21.5k
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
21.5k
        vec_res.resize(c0->size());
592
593
21.5k
        if (c0_string && c1_string) {
594
416
            StringImpl::string_vector_string_vector(
595
416
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
416
                    c1_string->get_offsets(), vec_res);
597
21.1k
        } else if (c0_string && c1_const) {
598
21.1k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
21.1k
                                               *c1_const_chars, c1_const_size, vec_res);
600
21.1k
        } else if (c0_const && c1_string) {
601
16
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
16
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
16
                                               vec_res);
604
18.4E
        } else {
605
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
606
18.4E
                                        c0->get_name(), c1->get_name(), name);
607
18.4E
        }
608
21.5k
        block.replace_by_position(result, std::move(c_res));
609
21.5k
        return Status::OK();
610
21.5k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
125
                          const IColumn* c1) const {
547
125
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
125
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
125
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
125
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
125
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
552
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
553
0
                                        c0->get_name(), c1->get_name(), name);
554
0
        }
555
125
        DCHECK(!(c0_const && c1_const));
556
125
        const ColumnString::Chars* c0_const_chars = nullptr;
557
125
        const ColumnString::Chars* c1_const_chars = nullptr;
558
125
        ColumnString::Offset c0_const_size = 0;
559
125
        ColumnString::Offset c1_const_size = 0;
560
561
125
        if (c0_const) {
562
0
            const ColumnString* c0_const_string =
563
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
0
            if (c0_const_string) {
566
0
                c0_const_chars = &c0_const_string->get_chars();
567
0
                c0_const_size = c0_const_string->get_offsets()[0];
568
0
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
0
        }
573
574
125
        if (c1_const) {
575
115
            const ColumnString* c1_const_string =
576
115
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
115
            if (c1_const_string) {
579
115
                c1_const_chars = &c1_const_string->get_chars();
580
115
                c1_const_size = c1_const_string->get_offsets()[0];
581
115
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
115
        }
586
587
125
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
125
        auto c_res = ColumnUInt8::create();
590
125
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
125
        vec_res.resize(c0->size());
592
593
125
        if (c0_string && c1_string) {
594
10
            StringImpl::string_vector_string_vector(
595
10
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
10
                    c1_string->get_offsets(), vec_res);
597
115
        } else if (c0_string && c1_const) {
598
115
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
115
                                               *c1_const_chars, c1_const_size, vec_res);
600
115
        } else if (c0_const && c1_string) {
601
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
0
                                               vec_res);
604
0
        } else {
605
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
606
0
                                        c0->get_name(), c1->get_name(), name);
607
0
        }
608
125
        block.replace_by_position(result, std::move(c_res));
609
125
        return Status::OK();
610
125
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
199
                          const IColumn* c1) const {
547
199
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
199
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
199
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
199
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
199
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
552
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
553
0
                                        c0->get_name(), c1->get_name(), name);
554
0
        }
555
199
        DCHECK(!(c0_const && c1_const));
556
199
        const ColumnString::Chars* c0_const_chars = nullptr;
557
199
        const ColumnString::Chars* c1_const_chars = nullptr;
558
199
        ColumnString::Offset c0_const_size = 0;
559
199
        ColumnString::Offset c1_const_size = 0;
560
561
199
        if (c0_const) {
562
0
            const ColumnString* c0_const_string =
563
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
0
            if (c0_const_string) {
566
0
                c0_const_chars = &c0_const_string->get_chars();
567
0
                c0_const_size = c0_const_string->get_offsets()[0];
568
0
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
0
        }
573
574
199
        if (c1_const) {
575
197
            const ColumnString* c1_const_string =
576
197
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
197
            if (c1_const_string) {
579
197
                c1_const_chars = &c1_const_string->get_chars();
580
197
                c1_const_size = c1_const_string->get_offsets()[0];
581
197
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
197
        }
586
587
199
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
199
        auto c_res = ColumnUInt8::create();
590
199
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
199
        vec_res.resize(c0->size());
592
593
199
        if (c0_string && c1_string) {
594
2
            StringImpl::string_vector_string_vector(
595
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
2
                    c1_string->get_offsets(), vec_res);
597
197
        } else if (c0_string && c1_const) {
598
197
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
197
                                               *c1_const_chars, c1_const_size, vec_res);
600
197
        } else if (c0_const && c1_string) {
601
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
0
                                               vec_res);
604
0
        } else {
605
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
606
0
                                        c0->get_name(), c1->get_name(), name);
607
0
        }
608
199
        block.replace_by_position(result, std::move(c_res));
609
199
        return Status::OK();
610
199
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
388
                          const IColumn* c1) const {
547
388
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
388
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
388
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
388
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
388
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
552
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
553
0
                                        c0->get_name(), c1->get_name(), name);
554
0
        }
555
388
        DCHECK(!(c0_const && c1_const));
556
388
        const ColumnString::Chars* c0_const_chars = nullptr;
557
388
        const ColumnString::Chars* c1_const_chars = nullptr;
558
388
        ColumnString::Offset c0_const_size = 0;
559
388
        ColumnString::Offset c1_const_size = 0;
560
561
388
        if (c0_const) {
562
48
            const ColumnString* c0_const_string =
563
48
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
48
            if (c0_const_string) {
566
48
                c0_const_chars = &c0_const_string->get_chars();
567
48
                c0_const_size = c0_const_string->get_offsets()[0];
568
48
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
48
        }
573
574
388
        if (c1_const) {
575
304
            const ColumnString* c1_const_string =
576
304
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
304
            if (c1_const_string) {
579
304
                c1_const_chars = &c1_const_string->get_chars();
580
304
                c1_const_size = c1_const_string->get_offsets()[0];
581
304
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
304
        }
586
587
388
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
388
        auto c_res = ColumnUInt8::create();
590
388
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
388
        vec_res.resize(c0->size());
592
593
388
        if (c0_string && c1_string) {
594
36
            StringImpl::string_vector_string_vector(
595
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
36
                    c1_string->get_offsets(), vec_res);
597
352
        } else if (c0_string && c1_const) {
598
304
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
304
                                               *c1_const_chars, c1_const_size, vec_res);
600
304
        } else if (c0_const && c1_string) {
601
48
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
48
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
48
                                               vec_res);
604
48
        } else {
605
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
606
0
                                        c0->get_name(), c1->get_name(), name);
607
0
        }
608
388
        block.replace_by_position(result, std::move(c_res));
609
388
        return Status::OK();
610
388
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
500
                          const IColumn* c1) const {
547
500
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
500
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
500
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
500
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
500
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
552
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
553
0
                                        c0->get_name(), c1->get_name(), name);
554
0
        }
555
500
        DCHECK(!(c0_const && c1_const));
556
500
        const ColumnString::Chars* c0_const_chars = nullptr;
557
500
        const ColumnString::Chars* c1_const_chars = nullptr;
558
500
        ColumnString::Offset c0_const_size = 0;
559
500
        ColumnString::Offset c1_const_size = 0;
560
561
500
        if (c0_const) {
562
6
            const ColumnString* c0_const_string =
563
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
6
            if (c0_const_string) {
566
6
                c0_const_chars = &c0_const_string->get_chars();
567
6
                c0_const_size = c0_const_string->get_offsets()[0];
568
6
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
6
        }
573
574
500
        if (c1_const) {
575
108
            const ColumnString* c1_const_string =
576
108
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
108
            if (c1_const_string) {
579
108
                c1_const_chars = &c1_const_string->get_chars();
580
108
                c1_const_size = c1_const_string->get_offsets()[0];
581
108
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
108
        }
586
587
500
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
500
        auto c_res = ColumnUInt8::create();
590
500
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
500
        vec_res.resize(c0->size());
592
593
500
        if (c0_string && c1_string) {
594
386
            StringImpl::string_vector_string_vector(
595
386
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
386
                    c1_string->get_offsets(), vec_res);
597
386
        } else if (c0_string && c1_const) {
598
108
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
108
                                               *c1_const_chars, c1_const_size, vec_res);
600
108
        } else if (c0_const && c1_string) {
601
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
6
                                               vec_res);
604
6
        } else {
605
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
606
0
                                        c0->get_name(), c1->get_name(), name);
607
0
        }
608
500
        block.replace_by_position(result, std::move(c_res));
609
500
        return Status::OK();
610
500
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
326
                          const IColumn* c1) const {
547
326
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
326
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
326
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
326
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
326
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
552
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
553
0
                                        c0->get_name(), c1->get_name(), name);
554
0
        }
555
326
        DCHECK(!(c0_const && c1_const));
556
326
        const ColumnString::Chars* c0_const_chars = nullptr;
557
326
        const ColumnString::Chars* c1_const_chars = nullptr;
558
326
        ColumnString::Offset c0_const_size = 0;
559
326
        ColumnString::Offset c1_const_size = 0;
560
561
326
        if (c0_const) {
562
0
            const ColumnString* c0_const_string =
563
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
0
            if (c0_const_string) {
566
0
                c0_const_chars = &c0_const_string->get_chars();
567
0
                c0_const_size = c0_const_string->get_offsets()[0];
568
0
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
0
        }
573
574
326
        if (c1_const) {
575
326
            const ColumnString* c1_const_string =
576
326
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
326
            if (c1_const_string) {
579
326
                c1_const_chars = &c1_const_string->get_chars();
580
326
                c1_const_size = c1_const_string->get_offsets()[0];
581
326
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
326
        }
586
587
326
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
326
        auto c_res = ColumnUInt8::create();
590
326
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
326
        vec_res.resize(c0->size());
592
593
326
        if (c0_string && c1_string) {
594
0
            StringImpl::string_vector_string_vector(
595
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
0
                    c1_string->get_offsets(), vec_res);
597
326
        } else if (c0_string && c1_const) {
598
326
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
326
                                               *c1_const_chars, c1_const_size, vec_res);
600
326
        } else if (c0_const && c1_string) {
601
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
0
                                               vec_res);
604
0
        } else {
605
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
606
0
                                        c0->get_name(), c1->get_name(), name);
607
0
        }
608
326
        block.replace_by_position(result, std::move(c_res));
609
326
        return Status::OK();
610
326
    }
611
612
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
613
206
                                         const IColumn* c1) const {
614
206
        bool c0_const = is_column_const(*c0);
615
206
        bool c1_const = is_column_const(*c1);
616
617
206
        DCHECK(!(c0_const && c1_const));
618
619
206
        auto c_res = ColumnUInt8::create();
620
206
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
206
        vec_res.resize(c0->size());
622
623
206
        if (c0_const) {
624
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
205
        } else if (c1_const) {
626
189
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
189
        } else {
628
16
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
16
        }
630
631
206
        block.replace_by_position(result, std::move(c_res));
632
206
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
613
28
                                         const IColumn* c1) const {
614
28
        bool c0_const = is_column_const(*c0);
615
28
        bool c1_const = is_column_const(*c1);
616
617
28
        DCHECK(!(c0_const && c1_const));
618
619
28
        auto c_res = ColumnUInt8::create();
620
28
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
28
        vec_res.resize(c0->size());
622
623
28
        if (c0_const) {
624
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
27
        } else if (c1_const) {
626
18
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
18
        } else {
628
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
9
        }
630
631
28
        block.replace_by_position(result, std::move(c_res));
632
28
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
613
9
                                         const IColumn* c1) const {
614
9
        bool c0_const = is_column_const(*c0);
615
9
        bool c1_const = is_column_const(*c1);
616
617
9
        DCHECK(!(c0_const && c1_const));
618
619
9
        auto c_res = ColumnUInt8::create();
620
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
9
        vec_res.resize(c0->size());
622
623
9
        if (c0_const) {
624
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
9
        } else if (c1_const) {
626
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
8
        } else {
628
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
1
        }
630
631
9
        block.replace_by_position(result, std::move(c_res));
632
9
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
613
9
                                         const IColumn* c1) const {
614
9
        bool c0_const = is_column_const(*c0);
615
9
        bool c1_const = is_column_const(*c1);
616
617
9
        DCHECK(!(c0_const && c1_const));
618
619
9
        auto c_res = ColumnUInt8::create();
620
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
9
        vec_res.resize(c0->size());
622
623
9
        if (c0_const) {
624
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
9
        } else if (c1_const) {
626
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
8
        } else {
628
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
1
        }
630
631
9
        block.replace_by_position(result, std::move(c_res));
632
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
613
76
                                         const IColumn* c1) const {
614
76
        bool c0_const = is_column_const(*c0);
615
76
        bool c1_const = is_column_const(*c1);
616
617
76
        DCHECK(!(c0_const && c1_const));
618
619
76
        auto c_res = ColumnUInt8::create();
620
76
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
76
        vec_res.resize(c0->size());
622
623
76
        if (c0_const) {
624
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
76
        } else if (c1_const) {
626
75
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
75
        } else {
628
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
1
        }
630
631
76
        block.replace_by_position(result, std::move(c_res));
632
76
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
613
12
                                         const IColumn* c1) const {
614
12
        bool c0_const = is_column_const(*c0);
615
12
        bool c1_const = is_column_const(*c1);
616
617
12
        DCHECK(!(c0_const && c1_const));
618
619
12
        auto c_res = ColumnUInt8::create();
620
12
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
12
        vec_res.resize(c0->size());
622
623
12
        if (c0_const) {
624
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
12
        } else if (c1_const) {
626
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
8
        } else {
628
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
4
        }
630
631
12
        block.replace_by_position(result, std::move(c_res));
632
12
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
613
72
                                         const IColumn* c1) const {
614
72
        bool c0_const = is_column_const(*c0);
615
72
        bool c1_const = is_column_const(*c1);
616
617
72
        DCHECK(!(c0_const && c1_const));
618
619
72
        auto c_res = ColumnUInt8::create();
620
72
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
72
        vec_res.resize(c0->size());
622
623
72
        if (c0_const) {
624
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
72
        } else if (c1_const) {
626
72
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
72
        } else {
628
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
0
        }
630
631
72
        block.replace_by_position(result, std::move(c_res));
632
72
    }
633
634
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
635
206
                           const ColumnWithTypeAndName& c1) const {
636
206
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
206
        return Status::OK();
638
206
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
635
28
                           const ColumnWithTypeAndName& c1) const {
636
28
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
28
        return Status::OK();
638
28
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
635
9
                           const ColumnWithTypeAndName& c1) const {
636
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
9
        return Status::OK();
638
9
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
635
9
                           const ColumnWithTypeAndName& c1) const {
636
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
9
        return Status::OK();
638
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
635
76
                           const ColumnWithTypeAndName& c1) const {
636
76
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
76
        return Status::OK();
638
76
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
635
12
                           const ColumnWithTypeAndName& c1) const {
636
12
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
12
        return Status::OK();
638
12
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
635
72
                           const ColumnWithTypeAndName& c1) const {
636
72
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
72
        return Status::OK();
638
72
    }
639
640
    template <typename TemporalValue>
641
    static int compare_timestamp_ns_with_temporal(const TimeStampNsValue& timestamp,
642
                                                  const TemporalValue& temporal,
643
382
                                                  uint32_t temporal_nanosecond) {
644
382
        const auto timestamp_datetime = timestamp.to_datetime();
645
1.52k
        const auto compare_part = [](auto left, auto right) {
646
1.52k
            if (left < right) {
647
140
                return -1;
648
140
            }
649
1.38k
            if (left > right) {
650
158
                return 1;
651
158
            }
652
1.23k
            return 0;
653
1.38k
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIllEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIjjEEDaS9_SC_
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Line
Count
Source
645
12
        const auto compare_part = [](auto left, auto right) {
646
12
            if (left < right) {
647
2
                return -1;
648
2
            }
649
10
            if (left > right) {
650
0
                return 1;
651
0
            }
652
10
            return 0;
653
10
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
645
44
        const auto compare_part = [](auto left, auto right) {
646
44
            if (left < right) {
647
0
                return -1;
648
0
            }
649
44
            if (left > right) {
650
4
                return 1;
651
4
            }
652
40
            return 0;
653
44
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
645
6
        const auto compare_part = [](auto left, auto right) {
646
6
            if (left < right) {
647
0
                return -1;
648
0
            }
649
6
            if (left > right) {
650
2
                return 1;
651
2
            }
652
4
            return 0;
653
6
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Line
Count
Source
645
186
        const auto compare_part = [](auto left, auto right) {
646
186
            if (left < right) {
647
61
                return -1;
648
61
            }
649
125
            if (left > right) {
650
20
                return 1;
651
20
            }
652
105
            return 0;
653
125
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
645
493
        const auto compare_part = [](auto left, auto right) {
646
493
            if (left < right) {
647
4
                return -1;
648
4
            }
649
489
            if (left > right) {
650
16
                return 1;
651
16
            }
652
473
            return 0;
653
489
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
645
85
        const auto compare_part = [](auto left, auto right) {
646
85
            if (left < right) {
647
1
                return -1;
648
1
            }
649
84
            if (left > right) {
650
39
                return 1;
651
39
            }
652
45
            return 0;
653
84
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIllEEDaSD_SG_
Line
Count
Source
645
10
        const auto compare_part = [](auto left, auto right) {
646
10
            if (left < right) {
647
4
                return -1;
648
4
            }
649
6
            if (left > right) {
650
3
                return 1;
651
3
            }
652
3
            return 0;
653
6
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIhiEEDaSD_SG_
Line
Count
Source
645
13
        const auto compare_part = [](auto left, auto right) {
646
13
            if (left < right) {
647
1
                return -1;
648
1
            }
649
12
            if (left > right) {
650
0
                return 1;
651
0
            }
652
12
            return 0;
653
12
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIjjEEDaSD_SG_
Line
Count
Source
645
2
        const auto compare_part = [](auto left, auto right) {
646
2
            if (left < right) {
647
0
                return -1;
648
0
            }
649
2
            if (left > right) {
650
1
                return 1;
651
1
            }
652
1
            return 0;
653
2
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIllEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIjjEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIllEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIhiEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIjjEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIllEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIjjEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
_ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Line
Count
Source
645
39
        const auto compare_part = [](auto left, auto right) {
646
39
            if (left < right) {
647
11
                return -1;
648
11
            }
649
28
            if (left > right) {
650
7
                return 1;
651
7
            }
652
21
            return 0;
653
28
        };
_ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
645
105
        const auto compare_part = [](auto left, auto right) {
646
105
            if (left < right) {
647
2
                return -1;
648
2
            }
649
103
            if (left > right) {
650
0
                return 1;
651
0
            }
652
103
            return 0;
653
103
        };
_ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
645
19
        const auto compare_part = [](auto left, auto right) {
646
19
            if (left < right) {
647
2
                return -1;
648
2
            }
649
17
            if (left > right) {
650
9
                return 1;
651
9
            }
652
8
            return 0;
653
17
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIllEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIhiEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIjjEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIllEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIjjEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
_ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Line
Count
Source
645
24
        const auto compare_part = [](auto left, auto right) {
646
24
            if (left < right) {
647
7
                return -1;
648
7
            }
649
17
            if (left > right) {
650
4
                return 1;
651
4
            }
652
13
            return 0;
653
17
        };
_ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
645
65
        const auto compare_part = [](auto left, auto right) {
646
65
            if (left < right) {
647
0
                return -1;
648
0
            }
649
65
            if (left > right) {
650
3
                return 1;
651
3
            }
652
62
            return 0;
653
65
        };
_ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
645
10
        const auto compare_part = [](auto left, auto right) {
646
10
            if (left < right) {
647
0
                return -1;
648
0
            }
649
10
            if (left > right) {
650
5
                return 1;
651
5
            }
652
5
            return 0;
653
10
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIllEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIhiEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIjjEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIllEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIjjEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Line
Count
Source
645
83
        const auto compare_part = [](auto left, auto right) {
646
83
            if (left < right) {
647
30
                return -1;
648
30
            }
649
53
            if (left > right) {
650
9
                return 1;
651
9
            }
652
44
            return 0;
653
53
        };
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
645
204
        const auto compare_part = [](auto left, auto right) {
646
204
            if (left < right) {
647
2
                return -1;
648
2
            }
649
202
            if (left > right) {
650
11
                return 1;
651
11
            }
652
191
            return 0;
653
202
        };
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
645
31
        const auto compare_part = [](auto left, auto right) {
646
31
            if (left < right) {
647
1
                return -1;
648
1
            }
649
30
            if (left > right) {
650
14
                return 1;
651
14
            }
652
16
            return 0;
653
30
        };
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIllEEDaSD_SG_
Line
Count
Source
645
4
        const auto compare_part = [](auto left, auto right) {
646
4
            if (left < right) {
647
2
                return -1;
648
2
            }
649
2
            if (left > right) {
650
2
                return 1;
651
2
            }
652
0
            return 0;
653
2
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIhiEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIjjEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIllEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_jENKUlS9_T0_E_clIjjEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
_ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Line
Count
Source
645
24
        const auto compare_part = [](auto left, auto right) {
646
24
            if (left < right) {
647
8
                return -1;
648
8
            }
649
16
            if (left > right) {
650
4
                return 1;
651
4
            }
652
12
            return 0;
653
16
        };
_ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
645
60
        const auto compare_part = [](auto left, auto right) {
646
60
            if (left < right) {
647
2
                return -1;
648
2
            }
649
58
            if (left > right) {
650
0
                return 1;
651
0
            }
652
58
            return 0;
653
58
        };
_ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
645
10
        const auto compare_part = [](auto left, auto right) {
646
10
            if (left < right) {
647
0
                return -1;
648
0
            }
649
10
            if (left > right) {
650
5
                return 1;
651
5
            }
652
5
            return 0;
653
10
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIllEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIhiEEDaSD_SG_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIjjEEDaSD_SG_
654
382
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
382
                                      static_cast<int64_t>(temporal.year()));
656
382
        if (comparison == 0) {
657
208
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
208
        }
659
382
        if (comparison == 0) {
660
208
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
208
        }
662
382
        if (comparison == 0) {
663
208
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
208
        }
665
382
        if (comparison == 0) {
666
187
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
187
        }
668
382
        if (comparison == 0) {
669
173
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
173
        }
671
382
        if (comparison == 0) {
672
163
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
163
        }
674
382
        return comparison;
675
382
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_j
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
643
12
                                                  uint32_t temporal_nanosecond) {
644
12
        const auto timestamp_datetime = timestamp.to_datetime();
645
12
        const auto compare_part = [](auto left, auto right) {
646
12
            if (left < right) {
647
12
                return -1;
648
12
            }
649
12
            if (left > right) {
650
12
                return 1;
651
12
            }
652
12
            return 0;
653
12
        };
654
12
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
12
                                      static_cast<int64_t>(temporal.year()));
656
12
        if (comparison == 0) {
657
10
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
10
        }
659
12
        if (comparison == 0) {
660
10
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
10
        }
662
12
        if (comparison == 0) {
663
10
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
10
        }
665
12
        if (comparison == 0) {
666
8
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
8
        }
668
12
        if (comparison == 0) {
669
6
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
6
        }
671
12
        if (comparison == 0) {
672
6
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
6
        }
674
12
        return comparison;
675
12
    }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
643
186
                                                  uint32_t temporal_nanosecond) {
644
186
        const auto timestamp_datetime = timestamp.to_datetime();
645
186
        const auto compare_part = [](auto left, auto right) {
646
186
            if (left < right) {
647
186
                return -1;
648
186
            }
649
186
            if (left > right) {
650
186
                return 1;
651
186
            }
652
186
            return 0;
653
186
        };
654
186
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
186
                                      static_cast<int64_t>(temporal.year()));
656
186
        if (comparison == 0) {
657
105
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
105
        }
659
186
        if (comparison == 0) {
660
105
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
105
        }
662
186
        if (comparison == 0) {
663
105
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
105
        }
665
186
        if (comparison == 0) {
666
93
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
93
        }
668
186
        if (comparison == 0) {
669
85
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
85
        }
671
186
        if (comparison == 0) {
672
85
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
85
        }
674
186
        return comparison;
675
186
    }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
643
10
                                                  uint32_t temporal_nanosecond) {
644
10
        const auto timestamp_datetime = timestamp.to_datetime();
645
10
        const auto compare_part = [](auto left, auto right) {
646
10
            if (left < right) {
647
10
                return -1;
648
10
            }
649
10
            if (left > right) {
650
10
                return 1;
651
10
            }
652
10
            return 0;
653
10
        };
654
10
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
10
                                      static_cast<int64_t>(temporal.year()));
656
10
        if (comparison == 0) {
657
3
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
3
        }
659
10
        if (comparison == 0) {
660
3
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
3
        }
662
10
        if (comparison == 0) {
663
3
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
3
        }
665
10
        if (comparison == 0) {
666
2
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
2
        }
668
10
        if (comparison == 0) {
669
2
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
2
        }
671
10
        if (comparison == 0) {
672
2
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
2
        }
674
10
        return comparison;
675
10
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
643
39
                                                  uint32_t temporal_nanosecond) {
644
39
        const auto timestamp_datetime = timestamp.to_datetime();
645
39
        const auto compare_part = [](auto left, auto right) {
646
39
            if (left < right) {
647
39
                return -1;
648
39
            }
649
39
            if (left > right) {
650
39
                return 1;
651
39
            }
652
39
            return 0;
653
39
        };
654
39
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
39
                                      static_cast<int64_t>(temporal.year()));
656
39
        if (comparison == 0) {
657
21
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
21
        }
659
39
        if (comparison == 0) {
660
21
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
21
        }
662
39
        if (comparison == 0) {
663
21
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
21
        }
665
39
        if (comparison == 0) {
666
21
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
21
        }
668
39
        if (comparison == 0) {
669
21
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
21
        }
671
39
        if (comparison == 0) {
672
19
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
19
        }
674
39
        return comparison;
675
39
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
643
24
                                                  uint32_t temporal_nanosecond) {
644
24
        const auto timestamp_datetime = timestamp.to_datetime();
645
24
        const auto compare_part = [](auto left, auto right) {
646
24
            if (left < right) {
647
24
                return -1;
648
24
            }
649
24
            if (left > right) {
650
24
                return 1;
651
24
            }
652
24
            return 0;
653
24
        };
654
24
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
24
                                      static_cast<int64_t>(temporal.year()));
656
24
        if (comparison == 0) {
657
13
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
13
        }
659
24
        if (comparison == 0) {
660
13
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
13
        }
662
24
        if (comparison == 0) {
663
13
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
13
        }
665
24
        if (comparison == 0) {
666
13
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
13
        }
668
24
        if (comparison == 0) {
669
13
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
13
        }
671
24
        if (comparison == 0) {
672
10
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
10
        }
674
24
        return comparison;
675
24
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
643
83
                                                  uint32_t temporal_nanosecond) {
644
83
        const auto timestamp_datetime = timestamp.to_datetime();
645
83
        const auto compare_part = [](auto left, auto right) {
646
83
            if (left < right) {
647
83
                return -1;
648
83
            }
649
83
            if (left > right) {
650
83
                return 1;
651
83
            }
652
83
            return 0;
653
83
        };
654
83
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
83
                                      static_cast<int64_t>(temporal.year()));
656
83
        if (comparison == 0) {
657
44
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
44
        }
659
83
        if (comparison == 0) {
660
44
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
44
        }
662
83
        if (comparison == 0) {
663
44
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
44
        }
665
83
        if (comparison == 0) {
666
38
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
38
        }
668
83
        if (comparison == 0) {
669
34
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
34
        }
671
83
        if (comparison == 0) {
672
31
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
31
        }
674
83
        return comparison;
675
83
    }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
643
4
                                                  uint32_t temporal_nanosecond) {
644
4
        const auto timestamp_datetime = timestamp.to_datetime();
645
4
        const auto compare_part = [](auto left, auto right) {
646
4
            if (left < right) {
647
4
                return -1;
648
4
            }
649
4
            if (left > right) {
650
4
                return 1;
651
4
            }
652
4
            return 0;
653
4
        };
654
4
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
4
                                      static_cast<int64_t>(temporal.year()));
656
4
        if (comparison == 0) {
657
0
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
0
        }
659
4
        if (comparison == 0) {
660
0
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
0
        }
662
4
        if (comparison == 0) {
663
0
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
0
        }
665
4
        if (comparison == 0) {
666
0
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
0
        }
668
4
        if (comparison == 0) {
669
0
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
0
        }
671
4
        if (comparison == 0) {
672
0
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
0
        }
674
4
        return comparison;
675
4
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_j
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
643
24
                                                  uint32_t temporal_nanosecond) {
644
24
        const auto timestamp_datetime = timestamp.to_datetime();
645
24
        const auto compare_part = [](auto left, auto right) {
646
24
            if (left < right) {
647
24
                return -1;
648
24
            }
649
24
            if (left > right) {
650
24
                return 1;
651
24
            }
652
24
            return 0;
653
24
        };
654
24
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
655
24
                                      static_cast<int64_t>(temporal.year()));
656
24
        if (comparison == 0) {
657
12
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
658
12
        }
659
24
        if (comparison == 0) {
660
12
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
661
12
        }
662
24
        if (comparison == 0) {
663
12
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
664
12
        }
665
24
        if (comparison == 0) {
666
12
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
667
12
        }
668
24
        if (comparison == 0) {
669
12
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
670
12
        }
671
24
        if (comparison == 0) {
672
10
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
673
10
        }
674
24
        return comparison;
675
24
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
676
677
    template <PrimitiveType TemporalPType, bool timestamp_ns_on_left>
678
    Status execute_timestamp_ns_temporal(FunctionContext* context, Block& block, uint32_t result,
679
                                         const ColumnPtr& left_column,
680
                                         const ColumnPtr& right_column,
681
77
                                         size_t input_rows_count) const {
682
77
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
77
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
77
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
77
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
77
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
77
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
77
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
77
        const auto& timestamps =
690
77
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
77
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
77
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
77
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
77
        auto result_column = ColumnUInt8::create(input_rows_count);
696
77
        auto& result_data = result_column->get_data();
697
459
        for (size_t row = 0; row < input_rows_count; ++row) {
698
382
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
382
            const auto& temporal =
700
382
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
382
            int comparison;
702
382
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
14
                const auto utc_datetime = temporal.utc_dt();
704
14
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
14
                                                   utc_datetime.day(), utc_datetime.hour(),
706
14
                                                   utc_datetime.minute(), utc_datetime.second());
707
14
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
14
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
14
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
14
                                                                utc_datetime.microsecond() * 1000);
713
368
            } else {
714
368
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
368
                                                                temporal.microsecond() * 1000);
716
368
            }
717
382
            if constexpr (!timestamp_ns_on_left) {
718
144
                comparison = -comparison;
719
144
            }
720
382
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
382
        }
722
77
        block.replace_by_position(result, std::move(result_column));
723
77
        return Status::OK();
724
77
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
1
                                         size_t input_rows_count) const {
682
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
1
        const auto& timestamps =
690
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
1
        auto result_column = ColumnUInt8::create(input_rows_count);
696
1
        auto& result_data = result_column->get_data();
697
7
        for (size_t row = 0; row < input_rows_count; ++row) {
698
6
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
6
            const auto& temporal =
700
6
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
6
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
6
            } else {
714
6
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
6
                                                                temporal.microsecond() * 1000);
716
6
            }
717
            if constexpr (!timestamp_ns_on_left) {
718
                comparison = -comparison;
719
            }
720
6
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
6
        }
722
1
        block.replace_by_position(result, std::move(result_column));
723
1
        return Status::OK();
724
1
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
1
                                         size_t input_rows_count) const {
682
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
1
        const auto& timestamps =
690
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
1
        auto result_column = ColumnUInt8::create(input_rows_count);
696
1
        auto& result_data = result_column->get_data();
697
7
        for (size_t row = 0; row < input_rows_count; ++row) {
698
6
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
6
            const auto& temporal =
700
6
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
6
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
6
            } else {
714
6
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
6
                                                                temporal.microsecond() * 1000);
716
6
            }
717
6
            if constexpr (!timestamp_ns_on_left) {
718
6
                comparison = -comparison;
719
6
            }
720
6
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
6
        }
722
1
        block.replace_by_position(result, std::move(result_column));
723
1
        return Status::OK();
724
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
21
                                         size_t input_rows_count) const {
682
21
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
21
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
21
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
21
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
21
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
21
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
21
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
21
        const auto& timestamps =
690
21
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
21
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
21
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
21
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
21
        auto result_column = ColumnUInt8::create(input_rows_count);
696
21
        auto& result_data = result_column->get_data();
697
137
        for (size_t row = 0; row < input_rows_count; ++row) {
698
116
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
116
            const auto& temporal =
700
116
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
116
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
116
            } else {
714
116
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
116
                                                                temporal.microsecond() * 1000);
716
116
            }
717
            if constexpr (!timestamp_ns_on_left) {
718
                comparison = -comparison;
719
            }
720
116
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
116
        }
722
21
        block.replace_by_position(result, std::move(result_column));
723
21
        return Status::OK();
724
21
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
12
                                         size_t input_rows_count) const {
682
12
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
12
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
12
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
12
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
12
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
12
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
12
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
12
        const auto& timestamps =
690
12
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
12
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
12
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
12
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
12
        auto result_column = ColumnUInt8::create(input_rows_count);
696
12
        auto& result_data = result_column->get_data();
697
82
        for (size_t row = 0; row < input_rows_count; ++row) {
698
70
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
70
            const auto& temporal =
700
70
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
70
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
70
            } else {
714
70
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
70
                                                                temporal.microsecond() * 1000);
716
70
            }
717
70
            if constexpr (!timestamp_ns_on_left) {
718
70
                comparison = -comparison;
719
70
            }
720
70
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
70
        }
722
12
        block.replace_by_position(result, std::move(result_column));
723
12
        return Status::OK();
724
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
2
                                         size_t input_rows_count) const {
682
2
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
2
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
2
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
2
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
2
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
2
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
2
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
2
        const auto& timestamps =
690
2
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
2
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
2
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
2
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
2
        auto result_column = ColumnUInt8::create(input_rows_count);
696
2
        auto& result_data = result_column->get_data();
697
4
        for (size_t row = 0; row < input_rows_count; ++row) {
698
2
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
2
            const auto& temporal =
700
2
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
2
            int comparison;
702
2
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
2
                const auto utc_datetime = temporal.utc_dt();
704
2
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
2
                                                   utc_datetime.day(), utc_datetime.hour(),
706
2
                                                   utc_datetime.minute(), utc_datetime.second());
707
2
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
2
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
2
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
2
                                                                utc_datetime.microsecond() * 1000);
713
            } else {
714
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
                                                                temporal.microsecond() * 1000);
716
            }
717
            if constexpr (!timestamp_ns_on_left) {
718
                comparison = -comparison;
719
            }
720
2
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
2
        }
722
2
        block.replace_by_position(result, std::move(result_column));
723
2
        return Status::OK();
724
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
3
                                         size_t input_rows_count) const {
682
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
3
        const auto& timestamps =
690
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
3
        auto result_column = ColumnUInt8::create(input_rows_count);
696
3
        auto& result_data = result_column->get_data();
697
11
        for (size_t row = 0; row < input_rows_count; ++row) {
698
8
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
8
            const auto& temporal =
700
8
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
8
            int comparison;
702
8
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
8
                const auto utc_datetime = temporal.utc_dt();
704
8
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
8
                                                   utc_datetime.day(), utc_datetime.hour(),
706
8
                                                   utc_datetime.minute(), utc_datetime.second());
707
8
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
8
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
8
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
8
                                                                utc_datetime.microsecond() * 1000);
713
            } else {
714
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
                                                                temporal.microsecond() * 1000);
716
            }
717
8
            if constexpr (!timestamp_ns_on_left) {
718
8
                comparison = -comparison;
719
8
            }
720
8
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
8
        }
722
3
        block.replace_by_position(result, std::move(result_column));
723
3
        return Status::OK();
724
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
7
                                         size_t input_rows_count) const {
682
7
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
7
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
7
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
7
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
7
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
7
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
7
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
7
        const auto& timestamps =
690
7
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
7
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
7
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
7
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
7
        auto result_column = ColumnUInt8::create(input_rows_count);
696
7
        auto& result_data = result_column->get_data();
697
37
        for (size_t row = 0; row < input_rows_count; ++row) {
698
30
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
30
            const auto& temporal =
700
30
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
30
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
30
            } else {
714
30
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
30
                                                                temporal.microsecond() * 1000);
716
30
            }
717
            if constexpr (!timestamp_ns_on_left) {
718
                comparison = -comparison;
719
            }
720
30
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
30
        }
722
7
        block.replace_by_position(result, std::move(result_column));
723
7
        return Status::OK();
724
7
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
3
                                         size_t input_rows_count) const {
682
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
3
        const auto& timestamps =
690
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
3
        auto result_column = ColumnUInt8::create(input_rows_count);
696
3
        auto& result_data = result_column->get_data();
697
12
        for (size_t row = 0; row < input_rows_count; ++row) {
698
9
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
9
            const auto& temporal =
700
9
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
9
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
9
            } else {
714
9
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
9
                                                                temporal.microsecond() * 1000);
716
9
            }
717
9
            if constexpr (!timestamp_ns_on_left) {
718
9
                comparison = -comparison;
719
9
            }
720
9
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
9
        }
722
3
        block.replace_by_position(result, std::move(result_column));
723
3
        return Status::OK();
724
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
3
                                         size_t input_rows_count) const {
682
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
3
        const auto& timestamps =
690
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
3
        auto result_column = ColumnUInt8::create(input_rows_count);
696
3
        auto& result_data = result_column->get_data();
697
20
        for (size_t row = 0; row < input_rows_count; ++row) {
698
17
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
17
            const auto& temporal =
700
17
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
17
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
17
            } else {
714
17
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
17
                                                                temporal.microsecond() * 1000);
716
17
            }
717
            if constexpr (!timestamp_ns_on_left) {
718
                comparison = -comparison;
719
            }
720
17
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
17
        }
722
3
        block.replace_by_position(result, std::move(result_column));
723
3
        return Status::OK();
724
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
1
                                         size_t input_rows_count) const {
682
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
1
        const auto& timestamps =
690
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
1
        auto result_column = ColumnUInt8::create(input_rows_count);
696
1
        auto& result_data = result_column->get_data();
697
8
        for (size_t row = 0; row < input_rows_count; ++row) {
698
7
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
7
            const auto& temporal =
700
7
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
7
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
7
            } else {
714
7
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
7
                                                                temporal.microsecond() * 1000);
716
7
            }
717
7
            if constexpr (!timestamp_ns_on_left) {
718
7
                comparison = -comparison;
719
7
            }
720
7
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
7
        }
722
1
        block.replace_by_position(result, std::move(result_column));
723
1
        return Status::OK();
724
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
9
                                         size_t input_rows_count) const {
682
9
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
9
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
9
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
9
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
9
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
9
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
9
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
9
        const auto& timestamps =
690
9
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
9
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
9
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
9
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
9
        auto result_column = ColumnUInt8::create(input_rows_count);
696
9
        auto& result_data = result_column->get_data();
697
57
        for (size_t row = 0; row < input_rows_count; ++row) {
698
48
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
48
            const auto& temporal =
700
48
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
48
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
48
            } else {
714
48
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
48
                                                                temporal.microsecond() * 1000);
716
48
            }
717
            if constexpr (!timestamp_ns_on_left) {
718
                comparison = -comparison;
719
            }
720
48
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
48
        }
722
9
        block.replace_by_position(result, std::move(result_column));
723
9
        return Status::OK();
724
9
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
6
                                         size_t input_rows_count) const {
682
6
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
6
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
6
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
6
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
6
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
6
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
6
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
6
        const auto& timestamps =
690
6
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
6
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
6
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
6
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
6
        auto result_column = ColumnUInt8::create(input_rows_count);
696
6
        auto& result_data = result_column->get_data();
697
41
        for (size_t row = 0; row < input_rows_count; ++row) {
698
35
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
35
            const auto& temporal =
700
35
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
35
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
35
            } else {
714
35
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
35
                                                                temporal.microsecond() * 1000);
716
35
            }
717
35
            if constexpr (!timestamp_ns_on_left) {
718
35
                comparison = -comparison;
719
35
            }
720
35
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
35
        }
722
6
        block.replace_by_position(result, std::move(result_column));
723
6
        return Status::OK();
724
6
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
2
                                         size_t input_rows_count) const {
682
2
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
2
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
2
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
2
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
2
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
2
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
2
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
2
        const auto& timestamps =
690
2
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
2
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
2
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
2
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
2
        auto result_column = ColumnUInt8::create(input_rows_count);
696
2
        auto& result_data = result_column->get_data();
697
4
        for (size_t row = 0; row < input_rows_count; ++row) {
698
2
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
2
            const auto& temporal =
700
2
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
2
            int comparison;
702
2
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
2
                const auto utc_datetime = temporal.utc_dt();
704
2
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
2
                                                   utc_datetime.day(), utc_datetime.hour(),
706
2
                                                   utc_datetime.minute(), utc_datetime.second());
707
2
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
2
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
2
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
2
                                                                utc_datetime.microsecond() * 1000);
713
            } else {
714
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
                                                                temporal.microsecond() * 1000);
716
            }
717
            if constexpr (!timestamp_ns_on_left) {
718
                comparison = -comparison;
719
            }
720
2
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
2
        }
722
2
        block.replace_by_position(result, std::move(result_column));
723
2
        return Status::OK();
724
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
2
                                         size_t input_rows_count) const {
682
2
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
2
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
2
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
2
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
2
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
2
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
2
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
2
        const auto& timestamps =
690
2
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
2
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
2
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
2
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
2
        auto result_column = ColumnUInt8::create(input_rows_count);
696
2
        auto& result_data = result_column->get_data();
697
4
        for (size_t row = 0; row < input_rows_count; ++row) {
698
2
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
2
            const auto& temporal =
700
2
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
2
            int comparison;
702
2
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
2
                const auto utc_datetime = temporal.utc_dt();
704
2
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
2
                                                   utc_datetime.day(), utc_datetime.hour(),
706
2
                                                   utc_datetime.minute(), utc_datetime.second());
707
2
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
2
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
2
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
2
                                                                utc_datetime.microsecond() * 1000);
713
            } else {
714
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
                                                                temporal.microsecond() * 1000);
716
            }
717
2
            if constexpr (!timestamp_ns_on_left) {
718
2
                comparison = -comparison;
719
2
            }
720
2
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
2
        }
722
2
        block.replace_by_position(result, std::move(result_column));
723
2
        return Status::OK();
724
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
3
                                         size_t input_rows_count) const {
682
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
3
        const auto& timestamps =
690
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
3
        auto result_column = ColumnUInt8::create(input_rows_count);
696
3
        auto& result_data = result_column->get_data();
697
20
        for (size_t row = 0; row < input_rows_count; ++row) {
698
17
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
17
            const auto& temporal =
700
17
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
17
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
17
            } else {
714
17
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
17
                                                                temporal.microsecond() * 1000);
716
17
            }
717
            if constexpr (!timestamp_ns_on_left) {
718
                comparison = -comparison;
719
            }
720
17
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
17
        }
722
3
        block.replace_by_position(result, std::move(result_column));
723
3
        return Status::OK();
724
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
681
1
                                         size_t input_rows_count) const {
682
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
683
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
684
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
685
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
686
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
687
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
688
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
689
1
        const auto& timestamps =
690
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
691
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
692
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
693
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
694
695
1
        auto result_column = ColumnUInt8::create(input_rows_count);
696
1
        auto& result_data = result_column->get_data();
697
8
        for (size_t row = 0; row < input_rows_count; ++row) {
698
7
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
699
7
            const auto& temporal =
700
7
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
701
7
            int comparison;
702
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
703
                const auto utc_datetime = temporal.utc_dt();
704
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
705
                                                   utc_datetime.day(), utc_datetime.hour(),
706
                                                   utc_datetime.minute(), utc_datetime.second());
707
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
708
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
709
                // Keep the signed civil year across date boundaries. NULL payloads are
710
                // normalized without validation; the nullable framework masks their results.
711
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
712
                                                                utc_datetime.microsecond() * 1000);
713
7
            } else {
714
7
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
715
7
                                                                temporal.microsecond() * 1000);
716
7
            }
717
7
            if constexpr (!timestamp_ns_on_left) {
718
7
                comparison = -comparison;
719
7
            }
720
7
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
721
7
        }
722
1
        block.replace_by_position(result, std::move(result_column));
723
1
        return Status::OK();
724
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
725
726
public:
727
222
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
727
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
727
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
727
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
727
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
727
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
727
1
    String get_name() const override { return name; }
728
729
299k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
729
269k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
729
1.24k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
729
6.77k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
729
8.24k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
729
3.87k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
729
9.47k
    size_t get_number_of_arguments() const override { return 2; }
730
731
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
732
3.32k
                                                const VExprSPtrs& arguments) const override {
733
3.32k
        auto op = comparison_zonemap_detail::op_from_name(name);
734
3.32k
        DORIS_CHECK(op.has_value());
735
3.32k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
3.32k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
1.72k
                                                const VExprSPtrs& arguments) const override {
733
1.72k
        auto op = comparison_zonemap_detail::op_from_name(name);
734
1.72k
        DORIS_CHECK(op.has_value());
735
1.72k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
1.72k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
152
                                                const VExprSPtrs& arguments) const override {
733
152
        auto op = comparison_zonemap_detail::op_from_name(name);
734
152
        DORIS_CHECK(op.has_value());
735
152
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
152
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
275
                                                const VExprSPtrs& arguments) const override {
733
275
        auto op = comparison_zonemap_detail::op_from_name(name);
734
275
        DORIS_CHECK(op.has_value());
735
275
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
275
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
384
                                                const VExprSPtrs& arguments) const override {
733
384
        auto op = comparison_zonemap_detail::op_from_name(name);
734
384
        DORIS_CHECK(op.has_value());
735
384
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
384
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
507
                                                const VExprSPtrs& arguments) const override {
733
507
        auto op = comparison_zonemap_detail::op_from_name(name);
734
507
        DORIS_CHECK(op.has_value());
735
507
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
507
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
278
                                                const VExprSPtrs& arguments) const override {
733
278
        auto op = comparison_zonemap_detail::op_from_name(name);
734
278
        DORIS_CHECK(op.has_value());
735
278
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
278
    }
737
738
32.7k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
32.7k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
32.8k
               comparison_zonemap_detail::can_evaluate(arguments);
741
32.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
15.9k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
15.9k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
15.9k
               comparison_zonemap_detail::can_evaluate(arguments);
741
15.9k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
1.30k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
1.30k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
1.30k
               comparison_zonemap_detail::can_evaluate(arguments);
741
1.30k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
5.13k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
5.13k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
5.21k
               comparison_zonemap_detail::can_evaluate(arguments);
741
5.13k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
4.21k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
4.21k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
4.22k
               comparison_zonemap_detail::can_evaluate(arguments);
741
4.21k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
4.44k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
4.44k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
4.46k
               comparison_zonemap_detail::can_evaluate(arguments);
741
4.44k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
1.70k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
1.70k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
1.71k
               comparison_zonemap_detail::can_evaluate(arguments);
741
1.70k
    }
742
743
    ZoneMapFilterResult evaluate_dictionary_filter(const DictionaryEvalContext& ctx,
744
14
                                                   const VExprSPtrs& arguments) const override {
745
14
        auto op = comparison_zonemap_detail::op_from_name(name);
746
14
        DORIS_CHECK(op.has_value());
747
14
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
748
14
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
744
4
                                                   const VExprSPtrs& arguments) const override {
745
4
        auto op = comparison_zonemap_detail::op_from_name(name);
746
4
        DORIS_CHECK(op.has_value());
747
4
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
748
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
744
3
                                                   const VExprSPtrs& arguments) const override {
745
3
        auto op = comparison_zonemap_detail::op_from_name(name);
746
3
        DORIS_CHECK(op.has_value());
747
3
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
748
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
744
7
                                                   const VExprSPtrs& arguments) const override {
745
7
        auto op = comparison_zonemap_detail::op_from_name(name);
746
7
        DORIS_CHECK(op.has_value());
747
7
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
748
7
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
749
750
830
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
830
        auto op = comparison_zonemap_detail::op_from_name(name);
752
830
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
830
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
750
366
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
366
        auto op = comparison_zonemap_detail::op_from_name(name);
752
366
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
366
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
750
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
1
        auto op = comparison_zonemap_detail::op_from_name(name);
752
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
750
94
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
94
        auto op = comparison_zonemap_detail::op_from_name(name);
752
94
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
94
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
750
223
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
223
        auto op = comparison_zonemap_detail::op_from_name(name);
752
223
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
223
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
750
137
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
137
        auto op = comparison_zonemap_detail::op_from_name(name);
752
137
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
137
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
750
9
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
9
        auto op = comparison_zonemap_detail::op_from_name(name);
752
9
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
9
    }
754
755
    ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
756
19
                                              const VExprSPtrs& arguments) const override {
757
19
        auto op = comparison_zonemap_detail::op_from_name(name);
758
19
        DORIS_CHECK(op.has_value());
759
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
760
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
756
19
                                              const VExprSPtrs& arguments) const override {
757
19
        auto op = comparison_zonemap_detail::op_from_name(name);
758
19
        DORIS_CHECK(op.has_value());
759
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
760
19
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
761
762
338
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
338
        auto op = comparison_zonemap_detail::op_from_name(name);
764
338
        return op == comparison_zonemap_detail::Op::EQ &&
765
338
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
338
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
762
171
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
171
        auto op = comparison_zonemap_detail::op_from_name(name);
764
171
        return op == comparison_zonemap_detail::Op::EQ &&
765
171
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
171
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
762
1
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
1
        auto op = comparison_zonemap_detail::op_from_name(name);
764
1
        return op == comparison_zonemap_detail::Op::EQ &&
765
1
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
762
28
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
28
        auto op = comparison_zonemap_detail::op_from_name(name);
764
28
        return op == comparison_zonemap_detail::Op::EQ &&
765
28
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
28
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
762
76
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
76
        auto op = comparison_zonemap_detail::op_from_name(name);
764
76
        return op == comparison_zonemap_detail::Op::EQ &&
765
76
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
76
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
762
58
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
58
        auto op = comparison_zonemap_detail::op_from_name(name);
764
58
        return op == comparison_zonemap_detail::Op::EQ &&
765
58
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
58
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
762
4
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
4
        auto op = comparison_zonemap_detail::op_from_name(name);
764
4
        return op == comparison_zonemap_detail::Op::EQ &&
765
4
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
4
    }
767
768
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
769
298k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
298k
        return std::make_shared<DataTypeUInt8>();
771
298k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
269k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
269k
        return std::make_shared<DataTypeUInt8>();
771
269k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
1.23k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
1.23k
        return std::make_shared<DataTypeUInt8>();
771
1.23k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
6.77k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
6.77k
        return std::make_shared<DataTypeUInt8>();
771
6.77k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
8.25k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
8.25k
        return std::make_shared<DataTypeUInt8>();
771
8.25k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
3.87k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
3.87k
        return std::make_shared<DataTypeUInt8>();
771
3.87k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
9.50k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
9.50k
        return std::make_shared<DataTypeUInt8>();
771
9.50k
    }
772
773
    Status evaluate_inverted_index(
774
            const ColumnsWithTypeAndName& arguments,
775
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
776
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
777
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
778
1.30k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
1.30k
        DCHECK(arguments.size() == 1);
780
1.30k
        DCHECK(data_type_with_names.size() == 1);
781
1.30k
        DCHECK(iterators.size() == 1);
782
1.30k
        auto* iter = iterators[0];
783
1.30k
        auto data_type_with_name = data_type_with_names[0];
784
1.30k
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
1.30k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
298
            return Status::OK();
789
298
        }
790
1.00k
        segment_v2::InvertedIndexQueryType query_type;
791
1.00k
        std::string_view name_view(name);
792
1.00k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
691
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
691
        } else if (name_view == NameLess::name) {
795
78
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
239
        } else if (name_view == NameLessOrEquals::name) {
797
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
158
        } else if (name_view == NameGreater::name) {
799
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
93
        } else if (name_view == NameGreaterOrEquals::name) {
801
93
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
18.4E
        } else {
803
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
18.4E
        }
805
806
1.01k
        if (segment_v2::is_range_query(query_type) &&
807
1.01k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
808
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
809
133
            return Status::OK();
810
133
        }
811
883
        Field param_value;
812
883
        arguments[0].column->get(0, param_value);
813
883
        if (param_value.is_null()) {
814
2
            return Status::OK();
815
2
        }
816
881
        segment_v2::InvertedIndexParam param;
817
881
        param.column_name = data_type_with_name.first;
818
881
        param.column_type = data_type_with_name.second;
819
881
        param.query_value = param_value;
820
881
        param.query_type = query_type;
821
881
        param.num_rows = num_rows;
822
881
        param.roaring = std::make_shared<roaring::Roaring>();
823
881
        param.analyzer_ctx = analyzer_ctx;
824
881
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
739
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
739
        if (iter->has_null()) {
827
738
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
738
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
738
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
738
        }
831
739
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
739
        bitmap_result = result;
833
739
        bitmap_result.mask_out_null();
834
835
739
        if (name_view == NameNotEquals::name) {
836
59
            roaring::Roaring full_result;
837
59
            full_result.addRange(0, num_rows);
838
59
            bitmap_result.op_not(&full_result);
839
59
        }
840
841
739
        return Status::OK();
842
739
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
650
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
650
        DCHECK(arguments.size() == 1);
780
650
        DCHECK(data_type_with_names.size() == 1);
781
650
        DCHECK(iterators.size() == 1);
782
650
        auto* iter = iterators[0];
783
650
        auto data_type_with_name = data_type_with_names[0];
784
650
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
650
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
30
            return Status::OK();
789
30
        }
790
620
        segment_v2::InvertedIndexQueryType query_type;
791
620
        std::string_view name_view(name);
792
625
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
625
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
18.4E
        } else if (name_view == NameLess::name) {
795
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
18.4E
        } else if (name_view == NameLessOrEquals::name) {
797
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
18.4E
        } else if (name_view == NameGreater::name) {
799
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
801
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
18.4E
        } else {
803
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
18.4E
        }
805
806
625
        if (segment_v2::is_range_query(query_type) &&
807
625
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
808
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
809
0
            return Status::OK();
810
0
        }
811
625
        Field param_value;
812
625
        arguments[0].column->get(0, param_value);
813
625
        if (param_value.is_null()) {
814
2
            return Status::OK();
815
2
        }
816
623
        segment_v2::InvertedIndexParam param;
817
623
        param.column_name = data_type_with_name.first;
818
623
        param.column_type = data_type_with_name.second;
819
623
        param.query_value = param_value;
820
623
        param.query_type = query_type;
821
623
        param.num_rows = num_rows;
822
623
        param.roaring = std::make_shared<roaring::Roaring>();
823
623
        param.analyzer_ctx = analyzer_ctx;
824
623
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
587
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
587
        if (iter->has_null()) {
827
587
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
587
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
587
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
587
        }
831
587
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
587
        bitmap_result = result;
833
587
        bitmap_result.mask_out_null();
834
835
587
        if (name_view == NameNotEquals::name) {
836
0
            roaring::Roaring full_result;
837
0
            full_result.addRange(0, num_rows);
838
0
            bitmap_result.op_not(&full_result);
839
0
        }
840
841
587
        return Status::OK();
842
587
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
69
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
69
        DCHECK(arguments.size() == 1);
780
69
        DCHECK(data_type_with_names.size() == 1);
781
69
        DCHECK(iterators.size() == 1);
782
69
        auto* iter = iterators[0];
783
69
        auto data_type_with_name = data_type_with_names[0];
784
69
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
69
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
6
            return Status::OK();
789
6
        }
790
63
        segment_v2::InvertedIndexQueryType query_type;
791
63
        std::string_view name_view(name);
792
66
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
66
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
18.4E
        } else if (name_view == NameLess::name) {
795
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
18.4E
        } else if (name_view == NameLessOrEquals::name) {
797
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
18.4E
        } else if (name_view == NameGreater::name) {
799
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
801
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
18.4E
        } else {
803
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
18.4E
        }
805
806
66
        if (segment_v2::is_range_query(query_type) &&
807
66
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
808
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
809
0
            return Status::OK();
810
0
        }
811
66
        Field param_value;
812
66
        arguments[0].column->get(0, param_value);
813
66
        if (param_value.is_null()) {
814
0
            return Status::OK();
815
0
        }
816
66
        segment_v2::InvertedIndexParam param;
817
66
        param.column_name = data_type_with_name.first;
818
66
        param.column_type = data_type_with_name.second;
819
66
        param.query_value = param_value;
820
66
        param.query_type = query_type;
821
66
        param.num_rows = num_rows;
822
66
        param.roaring = std::make_shared<roaring::Roaring>();
823
66
        param.analyzer_ctx = analyzer_ctx;
824
66
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
59
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
59
        if (iter->has_null()) {
827
59
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
59
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
59
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
59
        }
831
59
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
59
        bitmap_result = result;
833
59
        bitmap_result.mask_out_null();
834
835
59
        if (name_view == NameNotEquals::name) {
836
59
            roaring::Roaring full_result;
837
59
            full_result.addRange(0, num_rows);
838
59
            bitmap_result.op_not(&full_result);
839
59
        }
840
841
59
        return Status::OK();
842
59
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
112
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
112
        DCHECK(arguments.size() == 1);
780
112
        DCHECK(data_type_with_names.size() == 1);
781
112
        DCHECK(iterators.size() == 1);
782
112
        auto* iter = iterators[0];
783
112
        auto data_type_with_name = data_type_with_names[0];
784
112
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
112
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
39
            return Status::OK();
789
39
        }
790
73
        segment_v2::InvertedIndexQueryType query_type;
791
73
        std::string_view name_view(name);
792
73
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
73
        } else if (name_view == NameLess::name) {
795
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
73
        } else if (name_view == NameLessOrEquals::name) {
797
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
73
        } else if (name_view == NameGreater::name) {
799
73
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
73
        } else if (name_view == NameGreaterOrEquals::name) {
801
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
0
        } else {
803
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
0
        }
805
806
73
        if (segment_v2::is_range_query(query_type) &&
807
73
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
808
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
809
17
            return Status::OK();
810
17
        }
811
56
        Field param_value;
812
56
        arguments[0].column->get(0, param_value);
813
56
        if (param_value.is_null()) {
814
0
            return Status::OK();
815
0
        }
816
56
        segment_v2::InvertedIndexParam param;
817
56
        param.column_name = data_type_with_name.first;
818
56
        param.column_type = data_type_with_name.second;
819
56
        param.query_value = param_value;
820
56
        param.query_type = query_type;
821
56
        param.num_rows = num_rows;
822
56
        param.roaring = std::make_shared<roaring::Roaring>();
823
56
        param.analyzer_ctx = analyzer_ctx;
824
56
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
37
        if (iter->has_null()) {
827
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
37
        }
831
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
37
        bitmap_result = result;
833
37
        bitmap_result.mask_out_null();
834
835
37
        if (name_view == NameNotEquals::name) {
836
0
            roaring::Roaring full_result;
837
0
            full_result.addRange(0, num_rows);
838
0
            bitmap_result.op_not(&full_result);
839
0
        }
840
841
37
        return Status::OK();
842
37
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
179
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
179
        DCHECK(arguments.size() == 1);
780
179
        DCHECK(data_type_with_names.size() == 1);
781
179
        DCHECK(iterators.size() == 1);
782
179
        auto* iter = iterators[0];
783
179
        auto data_type_with_name = data_type_with_names[0];
784
179
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
179
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
86
            return Status::OK();
789
86
        }
790
93
        segment_v2::InvertedIndexQueryType query_type;
791
93
        std::string_view name_view(name);
792
93
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
93
        } else if (name_view == NameLess::name) {
795
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
93
        } else if (name_view == NameLessOrEquals::name) {
797
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
93
        } else if (name_view == NameGreater::name) {
799
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
93
        } else if (name_view == NameGreaterOrEquals::name) {
801
93
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
93
        } else {
803
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
0
        }
805
806
93
        if (segment_v2::is_range_query(query_type) &&
807
93
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
808
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
809
47
            return Status::OK();
810
47
        }
811
46
        Field param_value;
812
46
        arguments[0].column->get(0, param_value);
813
46
        if (param_value.is_null()) {
814
0
            return Status::OK();
815
0
        }
816
46
        segment_v2::InvertedIndexParam param;
817
46
        param.column_name = data_type_with_name.first;
818
46
        param.column_type = data_type_with_name.second;
819
46
        param.query_value = param_value;
820
46
        param.query_type = query_type;
821
46
        param.num_rows = num_rows;
822
46
        param.roaring = std::make_shared<roaring::Roaring>();
823
46
        param.analyzer_ctx = analyzer_ctx;
824
46
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
5
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
5
        if (iter->has_null()) {
827
5
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
5
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
5
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
5
        }
831
5
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
5
        bitmap_result = result;
833
5
        bitmap_result.mask_out_null();
834
835
5
        if (name_view == NameNotEquals::name) {
836
0
            roaring::Roaring full_result;
837
0
            full_result.addRange(0, num_rows);
838
0
            bitmap_result.op_not(&full_result);
839
0
        }
840
841
5
        return Status::OK();
842
5
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
121
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
121
        DCHECK(arguments.size() == 1);
780
121
        DCHECK(data_type_with_names.size() == 1);
781
121
        DCHECK(iterators.size() == 1);
782
121
        auto* iter = iterators[0];
783
121
        auto data_type_with_name = data_type_with_names[0];
784
121
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
121
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
43
            return Status::OK();
789
43
        }
790
78
        segment_v2::InvertedIndexQueryType query_type;
791
78
        std::string_view name_view(name);
792
78
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
78
        } else if (name_view == NameLess::name) {
795
78
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
78
        } else if (name_view == NameLessOrEquals::name) {
797
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
0
        } else if (name_view == NameGreater::name) {
799
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
0
        } else if (name_view == NameGreaterOrEquals::name) {
801
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
0
        } else {
803
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
0
        }
805
806
78
        if (segment_v2::is_range_query(query_type) &&
807
78
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
808
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
809
18
            return Status::OK();
810
18
        }
811
60
        Field param_value;
812
60
        arguments[0].column->get(0, param_value);
813
60
        if (param_value.is_null()) {
814
0
            return Status::OK();
815
0
        }
816
60
        segment_v2::InvertedIndexParam param;
817
60
        param.column_name = data_type_with_name.first;
818
60
        param.column_type = data_type_with_name.second;
819
60
        param.query_value = param_value;
820
60
        param.query_type = query_type;
821
60
        param.num_rows = num_rows;
822
60
        param.roaring = std::make_shared<roaring::Roaring>();
823
60
        param.analyzer_ctx = analyzer_ctx;
824
60
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
42
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
42
        if (iter->has_null()) {
827
42
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
42
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
42
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
42
        }
831
42
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
42
        bitmap_result = result;
833
42
        bitmap_result.mask_out_null();
834
835
42
        if (name_view == NameNotEquals::name) {
836
0
            roaring::Roaring full_result;
837
0
            full_result.addRange(0, num_rows);
838
0
            bitmap_result.op_not(&full_result);
839
0
        }
840
841
42
        return Status::OK();
842
42
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
175
        DCHECK(arguments.size() == 1);
780
175
        DCHECK(data_type_with_names.size() == 1);
781
175
        DCHECK(iterators.size() == 1);
782
175
        auto* iter = iterators[0];
783
175
        auto data_type_with_name = data_type_with_names[0];
784
175
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
94
            return Status::OK();
789
94
        }
790
81
        segment_v2::InvertedIndexQueryType query_type;
791
81
        std::string_view name_view(name);
792
81
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
81
        } else if (name_view == NameLess::name) {
795
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
81
        } else if (name_view == NameLessOrEquals::name) {
797
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
81
        } else if (name_view == NameGreater::name) {
799
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
0
        } else if (name_view == NameGreaterOrEquals::name) {
801
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
0
        } else {
803
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
0
        }
805
806
81
        if (segment_v2::is_range_query(query_type) &&
807
81
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
808
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
809
51
            return Status::OK();
810
51
        }
811
30
        Field param_value;
812
30
        arguments[0].column->get(0, param_value);
813
30
        if (param_value.is_null()) {
814
0
            return Status::OK();
815
0
        }
816
30
        segment_v2::InvertedIndexParam param;
817
30
        param.column_name = data_type_with_name.first;
818
30
        param.column_type = data_type_with_name.second;
819
30
        param.query_value = param_value;
820
30
        param.query_type = query_type;
821
30
        param.num_rows = num_rows;
822
30
        param.roaring = std::make_shared<roaring::Roaring>();
823
30
        param.analyzer_ctx = analyzer_ctx;
824
30
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
9
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
9
        if (iter->has_null()) {
827
8
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
8
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
8
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
8
        }
831
9
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
9
        bitmap_result = result;
833
9
        bitmap_result.mask_out_null();
834
835
9
        if (name_view == NameNotEquals::name) {
836
0
            roaring::Roaring full_result;
837
0
            full_result.addRange(0, num_rows);
838
0
            bitmap_result.op_not(&full_result);
839
0
        }
840
841
9
        return Status::OK();
842
9
    }
843
844
    // Keep all primitive-type pairs in one dispatch point so every comparison operator shares the
845
    // same mixed TIMESTAMP_NS semantics.
846
    // NOLINTNEXTLINE(readability-function-size)
847
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
848
91.7k
                        uint32_t result, size_t input_rows_count) const override {
849
91.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
91.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
91.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
91.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
91.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
91.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
91.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
91.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
91.7k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
458k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
458k
        right_type->get_primitive_type() == TYPE) {                                             \
863
48
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
48
                                                         col_right_ptr, input_rows_count);      \
865
48
    }                                                                                           \
866
458k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
458k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
29
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
29
                                                          col_right_ptr, input_rows_count);     \
870
29
    }
871
872
91.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
183k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
183k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
183k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
183k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
91.7k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
879
880
        /// The case when arguments are the same (tautological comparison). Return constant.
881
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
882
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
883
91.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
91.7k
            col_left_untyped == col_right_untyped) {
885
            /// Always true: =, <=, >=
886
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
887
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
888
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
889
6
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
890
6
                block.get_by_position(result).column =
891
6
                        DataTypeUInt8()
892
6
                                .create_column_const(input_rows_count,
893
6
                                                     Field::create_field<TYPE_BOOLEAN>(1))
894
6
                                ->convert_to_full_column_if_const();
895
6
                return Status::OK();
896
6
            } else {
897
0
                block.get_by_position(result).column =
898
0
                        DataTypeUInt8()
899
0
                                .create_column_const(input_rows_count,
900
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
901
0
                                ->convert_to_full_column_if_const();
902
0
                return Status::OK();
903
0
            }
904
6
        }
905
906
152k
        auto can_compare = [](PrimitiveType t) -> bool {
907
152k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
152k
                   is_timestamp_ns_type(t);
909
152k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
55.4k
        auto can_compare = [](PrimitiveType t) -> bool {
907
55.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
55.4k
                   is_timestamp_ns_type(t);
909
55.4k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
5.57k
        auto can_compare = [](PrimitiveType t) -> bool {
907
5.57k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
5.57k
                   is_timestamp_ns_type(t);
909
5.57k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
46.3k
        auto can_compare = [](PrimitiveType t) -> bool {
907
46.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
46.3k
                   is_timestamp_ns_type(t);
909
46.3k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
6.65k
        auto can_compare = [](PrimitiveType t) -> bool {
907
6.65k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
6.65k
                   is_timestamp_ns_type(t);
909
6.65k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
21.0k
        auto can_compare = [](PrimitiveType t) -> bool {
907
21.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
21.0k
                   is_timestamp_ns_type(t);
909
21.0k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
16.9k
        auto can_compare = [](PrimitiveType t) -> bool {
907
16.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
16.9k
                   is_timestamp_ns_type(t);
909
16.9k
        };
910
911
91.7k
        if (can_compare(left_type->get_primitive_type()) &&
912
91.7k
            can_compare(right_type->get_primitive_type())) {
913
            // check left type equals right type TODO: remove this after FE is aware of scales difference
914
60.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
915
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
916
0
                                            get_name(), left_type->get_name(),
917
0
                                            right_type->get_name());
918
0
            }
919
60.4k
        }
920
921
91.7k
        auto compare_type = left_type->get_primitive_type();
922
91.7k
        switch (compare_type) {
923
238
        case TYPE_BOOLEAN:
924
238
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
5.06k
        case TYPE_DATEV2:
926
5.06k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
869
        case TYPE_DATETIMEV2:
928
869
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
885
        case TYPE_TIMESTAMP_NS:
930
885
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
931
17
        case TYPE_TIMESTAMPTZ:
932
17
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
933
10.1k
        case TYPE_TINYINT:
934
10.1k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
3.01k
        case TYPE_SMALLINT:
936
3.01k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
27.1k
        case TYPE_INT:
938
27.1k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
8.81k
        case TYPE_BIGINT:
940
8.81k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
667
        case TYPE_LARGEINT:
942
667
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
34
        case TYPE_IPV4:
944
34
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
34
        case TYPE_IPV6:
946
34
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
947
4.86k
        case TYPE_UUID:
948
4.86k
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
516
        case TYPE_FLOAT:
950
516
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
2.83k
        case TYPE_DOUBLE:
952
2.83k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
953
4
        case TYPE_TIMEV2:
954
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
955
0
        case TYPE_DECIMALV2:
956
295
        case TYPE_DECIMAL32:
957
892
        case TYPE_DECIMAL64:
958
3.17k
        case TYPE_DECIMAL128I:
959
3.24k
        case TYPE_DECIMAL256:
960
3.24k
            return execute_decimal(block, result, col_with_type_and_name_left,
961
3.24k
                                   col_with_type_and_name_right);
962
1.65k
        case TYPE_CHAR:
963
8.28k
        case TYPE_VARCHAR:
964
23.1k
        case TYPE_STRING:
965
23.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
206
        default:
967
206
            return execute_generic(block, result, col_with_type_and_name_left,
968
206
                                   col_with_type_and_name_right);
969
91.7k
        }
970
0
        return Status::OK();
971
91.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
40.5k
                        uint32_t result, size_t input_rows_count) const override {
849
40.5k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
40.5k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
40.5k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
40.5k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
40.5k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
40.5k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
40.5k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
40.5k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
40.5k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
40.5k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
40.5k
        right_type->get_primitive_type() == TYPE) {                                             \
863
40.5k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
40.5k
                                                         col_right_ptr, input_rows_count);      \
865
40.5k
    }                                                                                           \
866
40.5k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
40.5k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
40.5k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
40.5k
                                                          col_right_ptr, input_rows_count);     \
870
40.5k
    }
871
872
40.5k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
81.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
81.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
81.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
81.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
40.5k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
879
880
        /// The case when arguments are the same (tautological comparison). Return constant.
881
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
882
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
883
40.5k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
40.5k
            col_left_untyped == col_right_untyped) {
885
            /// Always true: =, <=, >=
886
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
887
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
888
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
889
6
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
890
6
                block.get_by_position(result).column =
891
6
                        DataTypeUInt8()
892
6
                                .create_column_const(input_rows_count,
893
6
                                                     Field::create_field<TYPE_BOOLEAN>(1))
894
6
                                ->convert_to_full_column_if_const();
895
6
                return Status::OK();
896
            } else {
897
                block.get_by_position(result).column =
898
                        DataTypeUInt8()
899
                                .create_column_const(input_rows_count,
900
                                                     Field::create_field<TYPE_BOOLEAN>(0))
901
                                ->convert_to_full_column_if_const();
902
                return Status::OK();
903
            }
904
6
        }
905
906
0
        auto can_compare = [](PrimitiveType t) -> bool {
907
40.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
40.5k
                   is_timestamp_ns_type(t);
909
40.5k
        };
910
911
40.5k
        if (can_compare(left_type->get_primitive_type()) &&
912
40.5k
            can_compare(right_type->get_primitive_type())) {
913
            // check left type equals right type TODO: remove this after FE is aware of scales difference
914
14.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
915
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
916
0
                                            get_name(), left_type->get_name(),
917
0
                                            right_type->get_name());
918
0
            }
919
14.9k
        }
920
921
40.5k
        auto compare_type = left_type->get_primitive_type();
922
40.5k
        switch (compare_type) {
923
98
        case TYPE_BOOLEAN:
924
98
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
622
        case TYPE_DATEV2:
926
622
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
389
        case TYPE_DATETIMEV2:
928
389
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
202
        case TYPE_TIMESTAMP_NS:
930
202
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
931
12
        case TYPE_TIMESTAMPTZ:
932
12
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
933
5.95k
        case TYPE_TINYINT:
934
5.95k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
398
        case TYPE_SMALLINT:
936
398
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
3.11k
        case TYPE_INT:
938
3.11k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
3.08k
        case TYPE_BIGINT:
940
3.08k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
87
        case TYPE_LARGEINT:
942
87
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
12
        case TYPE_IPV4:
944
12
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
17
        case TYPE_IPV6:
946
17
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
947
2.80k
        case TYPE_UUID:
948
2.80k
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
74
        case TYPE_FLOAT:
950
74
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
930
        case TYPE_DOUBLE:
952
930
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
953
4
        case TYPE_TIMEV2:
954
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
955
0
        case TYPE_DECIMALV2:
956
108
        case TYPE_DECIMAL32:
957
219
        case TYPE_DECIMAL64:
958
1.07k
        case TYPE_DECIMAL128I:
959
1.09k
        case TYPE_DECIMAL256:
960
1.09k
            return execute_decimal(block, result, col_with_type_and_name_left,
961
1.09k
                                   col_with_type_and_name_right);
962
1.37k
        case TYPE_CHAR:
963
7.31k
        case TYPE_VARCHAR:
964
21.5k
        case TYPE_STRING:
965
21.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
28
        default:
967
28
            return execute_generic(block, result, col_with_type_and_name_left,
968
28
                                   col_with_type_and_name_right);
969
40.5k
        }
970
0
        return Status::OK();
971
40.5k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
2.91k
                        uint32_t result, size_t input_rows_count) const override {
849
2.91k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
2.91k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
2.91k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
2.91k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
2.91k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
2.91k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
2.91k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
2.91k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
2.91k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
2.91k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
2.91k
        right_type->get_primitive_type() == TYPE) {                                             \
863
2.91k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
2.91k
                                                         col_right_ptr, input_rows_count);      \
865
2.91k
    }                                                                                           \
866
2.91k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
2.91k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
2.91k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
2.91k
                                                          col_right_ptr, input_rows_count);     \
870
2.91k
    }
871
872
2.91k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
5.82k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
5.82k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
5.82k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
5.82k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
2.91k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
879
880
        /// The case when arguments are the same (tautological comparison). Return constant.
881
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
882
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
883
2.91k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
2.91k
            col_left_untyped == col_right_untyped) {
885
            /// Always true: =, <=, >=
886
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
887
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
888
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
889
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
890
                block.get_by_position(result).column =
891
                        DataTypeUInt8()
892
                                .create_column_const(input_rows_count,
893
                                                     Field::create_field<TYPE_BOOLEAN>(1))
894
                                ->convert_to_full_column_if_const();
895
                return Status::OK();
896
0
            } else {
897
0
                block.get_by_position(result).column =
898
0
                        DataTypeUInt8()
899
0
                                .create_column_const(input_rows_count,
900
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
901
0
                                ->convert_to_full_column_if_const();
902
0
                return Status::OK();
903
0
            }
904
0
        }
905
906
0
        auto can_compare = [](PrimitiveType t) -> bool {
907
2.91k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
2.91k
                   is_timestamp_ns_type(t);
909
2.91k
        };
910
911
2.91k
        if (can_compare(left_type->get_primitive_type()) &&
912
2.91k
            can_compare(right_type->get_primitive_type())) {
913
            // check left type equals right type TODO: remove this after FE is aware of scales difference
914
2.65k
            if (!left_type->equals_ignore_precision(*right_type)) {
915
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
916
0
                                            get_name(), left_type->get_name(),
917
0
                                            right_type->get_name());
918
0
            }
919
2.65k
        }
920
921
2.91k
        auto compare_type = left_type->get_primitive_type();
922
2.91k
        switch (compare_type) {
923
0
        case TYPE_BOOLEAN:
924
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
70
        case TYPE_DATEV2:
926
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
0
        case TYPE_DATETIMEV2:
928
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
8
        case TYPE_TIMESTAMP_NS:
930
8
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
931
0
        case TYPE_TIMESTAMPTZ:
932
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
933
84
        case TYPE_TINYINT:
934
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
0
        case TYPE_SMALLINT:
936
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
1.52k
        case TYPE_INT:
938
1.52k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
861
        case TYPE_BIGINT:
940
861
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
0
        case TYPE_LARGEINT:
942
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
0
        case TYPE_IPV4:
944
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
0
        case TYPE_IPV6:
946
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
947
0
        case TYPE_UUID:
948
0
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
48
        case TYPE_FLOAT:
950
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
60
        case TYPE_DOUBLE:
952
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
953
0
        case TYPE_TIMEV2:
954
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
955
0
        case TYPE_DECIMALV2:
956
0
        case TYPE_DECIMAL32:
957
65
        case TYPE_DECIMAL64:
958
93
        case TYPE_DECIMAL128I:
959
123
        case TYPE_DECIMAL256:
960
123
            return execute_decimal(block, result, col_with_type_and_name_left,
961
123
                                   col_with_type_and_name_right);
962
1
        case TYPE_CHAR:
963
45
        case TYPE_VARCHAR:
964
125
        case TYPE_STRING:
965
125
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
9
        default:
967
9
            return execute_generic(block, result, col_with_type_and_name_left,
968
9
                                   col_with_type_and_name_right);
969
2.91k
        }
970
0
        return Status::OK();
971
2.91k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
24.0k
                        uint32_t result, size_t input_rows_count) const override {
849
24.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
24.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
24.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
24.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
24.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
24.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
24.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
24.0k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
24.0k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
24.0k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
24.0k
        right_type->get_primitive_type() == TYPE) {                                             \
863
24.0k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
24.0k
                                                         col_right_ptr, input_rows_count);      \
865
24.0k
    }                                                                                           \
866
24.0k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
24.0k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
24.0k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
24.0k
                                                          col_right_ptr, input_rows_count);     \
870
24.0k
    }
871
872
24.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
48.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
48.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
48.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
48.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
24.0k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
879
880
        /// The case when arguments are the same (tautological comparison). Return constant.
881
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
882
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
883
24.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
24.0k
            col_left_untyped == col_right_untyped) {
885
            /// Always true: =, <=, >=
886
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
887
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
888
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
889
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
890
                block.get_by_position(result).column =
891
                        DataTypeUInt8()
892
                                .create_column_const(input_rows_count,
893
                                                     Field::create_field<TYPE_BOOLEAN>(1))
894
                                ->convert_to_full_column_if_const();
895
                return Status::OK();
896
0
            } else {
897
0
                block.get_by_position(result).column =
898
0
                        DataTypeUInt8()
899
0
                                .create_column_const(input_rows_count,
900
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
901
0
                                ->convert_to_full_column_if_const();
902
0
                return Status::OK();
903
0
            }
904
0
        }
905
906
0
        auto can_compare = [](PrimitiveType t) -> bool {
907
24.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
24.0k
                   is_timestamp_ns_type(t);
909
24.0k
        };
910
911
24.0k
        if (can_compare(left_type->get_primitive_type()) &&
912
24.0k
            can_compare(right_type->get_primitive_type())) {
913
            // check left type equals right type TODO: remove this after FE is aware of scales difference
914
22.3k
            if (!left_type->equals_ignore_precision(*right_type)) {
915
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
916
0
                                            get_name(), left_type->get_name(),
917
0
                                            right_type->get_name());
918
0
            }
919
22.3k
        }
920
921
24.0k
        auto compare_type = left_type->get_primitive_type();
922
24.0k
        switch (compare_type) {
923
0
        case TYPE_BOOLEAN:
924
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
1.16k
        case TYPE_DATEV2:
926
1.16k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
2
        case TYPE_DATETIMEV2:
928
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
67
        case TYPE_TIMESTAMP_NS:
930
67
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
931
1
        case TYPE_TIMESTAMPTZ:
932
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
933
1.63k
        case TYPE_TINYINT:
934
1.63k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
2.30k
        case TYPE_SMALLINT:
936
2.30k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
13.7k
        case TYPE_INT:
938
13.7k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
2.48k
        case TYPE_BIGINT:
940
2.48k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
228
        case TYPE_LARGEINT:
942
228
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
4
        case TYPE_IPV4:
944
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
1
        case TYPE_IPV6:
946
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
947
611
        case TYPE_UUID:
948
611
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
217
        case TYPE_FLOAT:
950
217
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
529
        case TYPE_DOUBLE:
952
529
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
953
0
        case TYPE_TIMEV2:
954
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
955
0
        case TYPE_DECIMALV2:
956
8
        case TYPE_DECIMAL32:
957
75
        case TYPE_DECIMAL64:
958
849
        case TYPE_DECIMAL128I:
959
851
        case TYPE_DECIMAL256:
960
851
            return execute_decimal(block, result, col_with_type_and_name_left,
961
851
                                   col_with_type_and_name_right);
962
14
        case TYPE_CHAR:
963
101
        case TYPE_VARCHAR:
964
199
        case TYPE_STRING:
965
199
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
9
        default:
967
9
            return execute_generic(block, result, col_with_type_and_name_left,
968
9
                                   col_with_type_and_name_right);
969
24.0k
        }
970
0
        return Status::OK();
971
24.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
3.91k
                        uint32_t result, size_t input_rows_count) const override {
849
3.91k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
3.91k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
3.91k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
3.91k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
3.91k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
3.91k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
3.91k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
3.91k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
3.91k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
3.91k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
3.91k
        right_type->get_primitive_type() == TYPE) {                                             \
863
3.91k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
3.91k
                                                         col_right_ptr, input_rows_count);      \
865
3.91k
    }                                                                                           \
866
3.91k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
3.91k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
3.91k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
3.91k
                                                          col_right_ptr, input_rows_count);     \
870
3.91k
    }
871
872
3.91k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
7.82k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
7.82k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
7.81k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
7.81k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
3.90k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
879
880
        /// The case when arguments are the same (tautological comparison). Return constant.
881
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
882
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
883
3.90k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
3.90k
            col_left_untyped == col_right_untyped) {
885
            /// Always true: =, <=, >=
886
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
887
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
888
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
889
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
890
0
                block.get_by_position(result).column =
891
0
                        DataTypeUInt8()
892
0
                                .create_column_const(input_rows_count,
893
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
894
0
                                ->convert_to_full_column_if_const();
895
0
                return Status::OK();
896
            } else {
897
                block.get_by_position(result).column =
898
                        DataTypeUInt8()
899
                                .create_column_const(input_rows_count,
900
                                                     Field::create_field<TYPE_BOOLEAN>(0))
901
                                ->convert_to_full_column_if_const();
902
                return Status::OK();
903
            }
904
0
        }
905
906
0
        auto can_compare = [](PrimitiveType t) -> bool {
907
3.90k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
3.90k
                   is_timestamp_ns_type(t);
909
3.90k
        };
910
911
3.90k
        if (can_compare(left_type->get_primitive_type()) &&
912
3.90k
            can_compare(right_type->get_primitive_type())) {
913
            // check left type equals right type TODO: remove this after FE is aware of scales difference
914
2.75k
            if (!left_type->equals_ignore_precision(*right_type)) {
915
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
916
0
                                            get_name(), left_type->get_name(),
917
0
                                            right_type->get_name());
918
0
            }
919
2.75k
        }
920
921
3.90k
        auto compare_type = left_type->get_primitive_type();
922
3.90k
        switch (compare_type) {
923
27
        case TYPE_BOOLEAN:
924
27
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
469
        case TYPE_DATEV2:
926
469
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
119
        case TYPE_DATETIMEV2:
928
119
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
401
        case TYPE_TIMESTAMP_NS:
930
401
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
931
1
        case TYPE_TIMESTAMPTZ:
932
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
933
53
        case TYPE_TINYINT:
934
53
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
66
        case TYPE_SMALLINT:
936
66
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
607
        case TYPE_INT:
938
607
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
770
        case TYPE_BIGINT:
940
770
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
23
        case TYPE_LARGEINT:
942
23
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
1
        case TYPE_IPV4:
944
1
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
1
        case TYPE_IPV6:
946
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
947
578
        case TYPE_UUID:
948
578
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
24
        case TYPE_FLOAT:
950
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
113
        case TYPE_DOUBLE:
952
113
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
953
0
        case TYPE_TIMEV2:
954
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
955
0
        case TYPE_DECIMALV2:
956
4
        case TYPE_DECIMAL32:
957
74
        case TYPE_DECIMAL64:
958
179
        case TYPE_DECIMAL128I:
959
190
        case TYPE_DECIMAL256:
960
190
            return execute_decimal(block, result, col_with_type_and_name_left,
961
190
                                   col_with_type_and_name_right);
962
43
        case TYPE_CHAR:
963
266
        case TYPE_VARCHAR:
964
388
        case TYPE_STRING:
965
388
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
76
        default:
967
76
            return execute_generic(block, result, col_with_type_and_name_left,
968
76
                                   col_with_type_and_name_right);
969
3.90k
        }
970
0
        return Status::OK();
971
3.90k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
11.4k
                        uint32_t result, size_t input_rows_count) const override {
849
11.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
11.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
11.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
11.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
11.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
11.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
11.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
11.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
11.4k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
11.4k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
11.4k
        right_type->get_primitive_type() == TYPE) {                                             \
863
11.4k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
11.4k
                                                         col_right_ptr, input_rows_count);      \
865
11.4k
    }                                                                                           \
866
11.4k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
11.4k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
11.4k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
11.4k
                                                          col_right_ptr, input_rows_count);     \
870
11.4k
    }
871
872
11.4k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
22.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
22.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
22.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
22.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
11.3k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
879
880
        /// The case when arguments are the same (tautological comparison). Return constant.
881
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
882
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
883
11.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
11.3k
            col_left_untyped == col_right_untyped) {
885
            /// Always true: =, <=, >=
886
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
887
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
888
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
889
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
890
                block.get_by_position(result).column =
891
                        DataTypeUInt8()
892
                                .create_column_const(input_rows_count,
893
                                                     Field::create_field<TYPE_BOOLEAN>(1))
894
                                ->convert_to_full_column_if_const();
895
                return Status::OK();
896
0
            } else {
897
0
                block.get_by_position(result).column =
898
0
                        DataTypeUInt8()
899
0
                                .create_column_const(input_rows_count,
900
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
901
0
                                ->convert_to_full_column_if_const();
902
0
                return Status::OK();
903
0
            }
904
0
        }
905
906
0
        auto can_compare = [](PrimitiveType t) -> bool {
907
11.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
11.3k
                   is_timestamp_ns_type(t);
909
11.3k
        };
910
911
11.3k
        if (can_compare(left_type->get_primitive_type()) &&
912
11.3k
            can_compare(right_type->get_primitive_type())) {
913
            // check left type equals right type TODO: remove this after FE is aware of scales difference
914
9.62k
            if (!left_type->equals_ignore_precision(*right_type)) {
915
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
916
0
                                            get_name(), left_type->get_name(),
917
0
                                            right_type->get_name());
918
0
            }
919
9.62k
        }
920
921
11.3k
        auto compare_type = left_type->get_primitive_type();
922
11.3k
        switch (compare_type) {
923
86
        case TYPE_BOOLEAN:
924
86
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
2.19k
        case TYPE_DATEV2:
926
2.19k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
301
        case TYPE_DATETIMEV2:
928
301
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
148
        case TYPE_TIMESTAMP_NS:
930
148
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
931
2
        case TYPE_TIMESTAMPTZ:
932
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
933
2.35k
        case TYPE_TINYINT:
934
2.35k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
174
        case TYPE_SMALLINT:
936
174
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
1.89k
        case TYPE_INT:
938
1.89k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
934
        case TYPE_BIGINT:
940
934
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
288
        case TYPE_LARGEINT:
942
288
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
17
        case TYPE_IPV4:
944
17
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
15
        case TYPE_IPV6:
946
15
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
947
457
        case TYPE_UUID:
948
457
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
134
        case TYPE_FLOAT:
950
134
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
1.09k
        case TYPE_DOUBLE:
952
1.09k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
953
0
        case TYPE_TIMEV2:
954
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
955
0
        case TYPE_DECIMALV2:
956
168
        case TYPE_DECIMAL32:
957
358
        case TYPE_DECIMAL64:
958
796
        case TYPE_DECIMAL128I:
959
797
        case TYPE_DECIMAL256:
960
797
            return execute_decimal(block, result, col_with_type_and_name_left,
961
797
                                   col_with_type_and_name_right);
962
170
        case TYPE_CHAR:
963
356
        case TYPE_VARCHAR:
964
500
        case TYPE_STRING:
965
500
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
12
        default:
967
12
            return execute_generic(block, result, col_with_type_and_name_left,
968
12
                                   col_with_type_and_name_right);
969
11.3k
        }
970
0
        return Status::OK();
971
11.3k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
8.96k
                        uint32_t result, size_t input_rows_count) const override {
849
8.96k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
8.96k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
8.96k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
8.96k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
8.96k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
8.96k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
8.96k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
8.96k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
8.96k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
8.96k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
8.96k
        right_type->get_primitive_type() == TYPE) {                                             \
863
8.96k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
8.96k
                                                         col_right_ptr, input_rows_count);      \
865
8.96k
    }                                                                                           \
866
8.96k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
8.96k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
8.96k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
8.96k
                                                          col_right_ptr, input_rows_count);     \
870
8.96k
    }
871
872
8.96k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
17.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
17.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
17.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
17.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
8.96k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
879
880
        /// The case when arguments are the same (tautological comparison). Return constant.
881
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
882
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
883
8.96k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
8.96k
            col_left_untyped == col_right_untyped) {
885
            /// Always true: =, <=, >=
886
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
887
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
888
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
889
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
890
0
                block.get_by_position(result).column =
891
0
                        DataTypeUInt8()
892
0
                                .create_column_const(input_rows_count,
893
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
894
0
                                ->convert_to_full_column_if_const();
895
0
                return Status::OK();
896
            } else {
897
                block.get_by_position(result).column =
898
                        DataTypeUInt8()
899
                                .create_column_const(input_rows_count,
900
                                                     Field::create_field<TYPE_BOOLEAN>(0))
901
                                ->convert_to_full_column_if_const();
902
                return Status::OK();
903
            }
904
0
        }
905
906
0
        auto can_compare = [](PrimitiveType t) -> bool {
907
8.96k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
8.96k
                   is_timestamp_ns_type(t);
909
8.96k
        };
910
911
8.96k
        if (can_compare(left_type->get_primitive_type()) &&
912
8.96k
            can_compare(right_type->get_primitive_type())) {
913
            // check left type equals right type TODO: remove this after FE is aware of scales difference
914
8.03k
            if (!left_type->equals_ignore_precision(*right_type)) {
915
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
916
0
                                            get_name(), left_type->get_name(),
917
0
                                            right_type->get_name());
918
0
            }
919
8.03k
        }
920
921
8.96k
        auto compare_type = left_type->get_primitive_type();
922
8.96k
        switch (compare_type) {
923
27
        case TYPE_BOOLEAN:
924
27
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
536
        case TYPE_DATEV2:
926
536
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
58
        case TYPE_DATETIMEV2:
928
58
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
59
        case TYPE_TIMESTAMP_NS:
930
59
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
931
1
        case TYPE_TIMESTAMPTZ:
932
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
933
59
        case TYPE_TINYINT:
934
59
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
69
        case TYPE_SMALLINT:
936
69
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
6.29k
        case TYPE_INT:
938
6.29k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
678
        case TYPE_BIGINT:
940
678
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
41
        case TYPE_LARGEINT:
942
41
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
0
        case TYPE_IPV4:
944
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
0
        case TYPE_IPV6:
946
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
947
418
        case TYPE_UUID:
948
418
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
19
        case TYPE_FLOAT:
950
19
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
112
        case TYPE_DOUBLE:
952
112
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
953
0
        case TYPE_TIMEV2:
954
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
955
0
        case TYPE_DECIMALV2:
956
7
        case TYPE_DECIMAL32:
957
101
        case TYPE_DECIMAL64:
958
183
        case TYPE_DECIMAL128I:
959
189
        case TYPE_DECIMAL256:
960
189
            return execute_decimal(block, result, col_with_type_and_name_left,
961
189
                                   col_with_type_and_name_right);
962
52
        case TYPE_CHAR:
963
209
        case TYPE_VARCHAR:
964
326
        case TYPE_STRING:
965
326
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
72
        default:
967
72
            return execute_generic(block, result, col_with_type_and_name_left,
968
72
                                   col_with_type_and_name_right);
969
8.96k
        }
970
0
        return Status::OK();
971
8.96k
    }
972
};
973
974
} // namespace doris