Coverage Report

Created: 2026-10-16 11:43

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.3k
                                        PaddedPODArray<UInt8>& c) {
74
12.3k
        size_t size = a.size();
75
12.3k
        const A* __restrict a_pos = a.data();
76
12.3k
        const B* __restrict b_pos = b.data();
77
12.3k
        UInt8* __restrict c_pos = c.data();
78
12.3k
        const A* __restrict a_end = a_pos + size;
79
80
7.46M
        while (a_pos < a_end) {
81
7.45M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
7.45M
            ++a_pos;
83
7.45M
            ++b_pos;
84
7.45M
            ++c_pos;
85
7.45M
        }
86
12.3k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
73
67
                                        PaddedPODArray<UInt8>& c) {
74
67
        size_t size = a.size();
75
67
        const A* __restrict a_pos = a.data();
76
67
        const B* __restrict b_pos = b.data();
77
67
        UInt8* __restrict c_pos = c.data();
78
67
        const A* __restrict a_end = a_pos + size;
79
80
138
        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
67
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
217
                                        PaddedPODArray<UInt8>& c) {
74
217
        size_t size = a.size();
75
217
        const A* __restrict a_pos = a.data();
76
217
        const B* __restrict b_pos = b.data();
77
217
        UInt8* __restrict c_pos = c.data();
78
217
        const A* __restrict a_end = a_pos + size;
79
80
440
        while (a_pos < a_end) {
81
223
            *c_pos = Op::apply(*a_pos, *b_pos);
82
223
            ++a_pos;
83
223
            ++b_pos;
84
223
            ++c_pos;
85
223
        }
86
217
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
267
                                        PaddedPODArray<UInt8>& c) {
74
267
        size_t size = a.size();
75
267
        const A* __restrict a_pos = a.data();
76
267
        const B* __restrict b_pos = b.data();
77
267
        UInt8* __restrict c_pos = c.data();
78
267
        const A* __restrict a_end = a_pos + size;
79
80
556
        while (a_pos < a_end) {
81
289
            *c_pos = Op::apply(*a_pos, *b_pos);
82
289
            ++a_pos;
83
289
            ++b_pos;
84
289
            ++c_pos;
85
289
        }
86
267
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
133
                                        PaddedPODArray<UInt8>& c) {
74
133
        size_t size = a.size();
75
133
        const A* __restrict a_pos = a.data();
76
133
        const B* __restrict b_pos = b.data();
77
133
        UInt8* __restrict c_pos = c.data();
78
133
        const A* __restrict a_end = a_pos + size;
79
80
325
        while (a_pos < a_end) {
81
192
            *c_pos = Op::apply(*a_pos, *b_pos);
82
192
            ++a_pos;
83
192
            ++b_pos;
84
192
            ++c_pos;
85
192
        }
86
133
    }
_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
219
                                        PaddedPODArray<UInt8>& c) {
74
219
        size_t size = a.size();
75
219
        const A* __restrict a_pos = a.data();
76
219
        const B* __restrict b_pos = b.data();
77
219
        UInt8* __restrict c_pos = c.data();
78
219
        const A* __restrict a_end = a_pos + size;
79
80
579
        while (a_pos < a_end) {
81
360
            *c_pos = Op::apply(*a_pos, *b_pos);
82
360
            ++a_pos;
83
360
            ++b_pos;
84
360
            ++c_pos;
85
360
        }
86
219
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
114
                                        PaddedPODArray<UInt8>& c) {
74
114
        size_t size = a.size();
75
114
        const A* __restrict a_pos = a.data();
76
114
        const B* __restrict b_pos = b.data();
77
114
        UInt8* __restrict c_pos = c.data();
78
114
        const A* __restrict a_end = a_pos + size;
79
80
228
        while (a_pos < a_end) {
81
114
            *c_pos = Op::apply(*a_pos, *b_pos);
82
114
            ++a_pos;
83
114
            ++b_pos;
84
114
            ++c_pos;
85
114
        }
86
114
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1.01k
                                        PaddedPODArray<UInt8>& c) {
74
1.01k
        size_t size = a.size();
75
1.01k
        const A* __restrict a_pos = a.data();
76
1.01k
        const B* __restrict b_pos = b.data();
77
1.01k
        UInt8* __restrict c_pos = c.data();
78
1.01k
        const A* __restrict a_end = a_pos + size;
79
80
3.37k
        while (a_pos < a_end) {
81
2.36k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
2.36k
            ++a_pos;
83
2.36k
            ++b_pos;
84
2.36k
            ++c_pos;
85
2.36k
        }
86
1.01k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
187
                                        PaddedPODArray<UInt8>& c) {
74
187
        size_t size = a.size();
75
187
        const A* __restrict a_pos = a.data();
76
187
        const B* __restrict b_pos = b.data();
77
187
        UInt8* __restrict c_pos = c.data();
78
187
        const A* __restrict a_end = a_pos + size;
79
80
1.47k
        while (a_pos < a_end) {
81
1.28k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1.28k
            ++a_pos;
83
1.28k
            ++b_pos;
84
1.28k
            ++c_pos;
85
1.28k
        }
86
187
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
77
                                        PaddedPODArray<UInt8>& c) {
74
77
        size_t size = a.size();
75
77
        const A* __restrict a_pos = a.data();
76
77
        const B* __restrict b_pos = b.data();
77
77
        UInt8* __restrict c_pos = c.data();
78
77
        const A* __restrict a_end = a_pos + size;
79
80
154
        while (a_pos < a_end) {
81
77
            *c_pos = Op::apply(*a_pos, *b_pos);
82
77
            ++a_pos;
83
77
            ++b_pos;
84
77
            ++c_pos;
85
77
        }
86
77
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_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_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
23
                                        PaddedPODArray<UInt8>& c) {
74
23
        size_t size = a.size();
75
23
        const A* __restrict a_pos = a.data();
76
23
        const B* __restrict b_pos = b.data();
77
23
        UInt8* __restrict c_pos = c.data();
78
23
        const A* __restrict a_end = a_pos + size;
79
80
46
        while (a_pos < a_end) {
81
23
            *c_pos = Op::apply(*a_pos, *b_pos);
82
23
            ++a_pos;
83
23
            ++b_pos;
84
23
            ++c_pos;
85
23
        }
86
23
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
779
                                        PaddedPODArray<UInt8>& c) {
74
779
        size_t size = a.size();
75
779
        const A* __restrict a_pos = a.data();
76
779
        const B* __restrict b_pos = b.data();
77
779
        UInt8* __restrict c_pos = c.data();
78
779
        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
779
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
96
                                        PaddedPODArray<UInt8>& c) {
74
96
        size_t size = a.size();
75
96
        const A* __restrict a_pos = a.data();
76
96
        const B* __restrict b_pos = b.data();
77
96
        UInt8* __restrict c_pos = c.data();
78
96
        const A* __restrict a_end = a_pos + size;
79
80
211
        while (a_pos < a_end) {
81
115
            *c_pos = Op::apply(*a_pos, *b_pos);
82
115
            ++a_pos;
83
115
            ++b_pos;
84
115
            ++c_pos;
85
115
        }
86
96
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_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
298
        while (a_pos < a_end) {
81
182
            *c_pos = Op::apply(*a_pos, *b_pos);
82
182
            ++a_pos;
83
182
            ++b_pos;
84
182
            ++c_pos;
85
182
        }
86
116
    }
_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.60k
                                        PaddedPODArray<UInt8>& c) {
74
1.60k
        size_t size = a.size();
75
1.60k
        const A* __restrict a_pos = a.data();
76
1.60k
        const B* __restrict b_pos = b.data();
77
1.60k
        UInt8* __restrict c_pos = c.data();
78
1.60k
        const A* __restrict a_end = a_pos + size;
79
80
297k
        while (a_pos < a_end) {
81
295k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
295k
            ++a_pos;
83
295k
            ++b_pos;
84
295k
            ++c_pos;
85
295k
        }
86
1.60k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
351
                                        PaddedPODArray<UInt8>& c) {
74
351
        size_t size = a.size();
75
351
        const A* __restrict a_pos = a.data();
76
351
        const B* __restrict b_pos = b.data();
77
351
        UInt8* __restrict c_pos = c.data();
78
351
        const A* __restrict a_end = a_pos + size;
79
80
6.94k
        while (a_pos < a_end) {
81
6.59k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
6.59k
            ++a_pos;
83
6.59k
            ++b_pos;
84
6.59k
            ++c_pos;
85
6.59k
        }
86
351
    }
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.01k
                                        PaddedPODArray<UInt8>& c) {
74
1.01k
        size_t size = a.size();
75
1.01k
        const A* __restrict a_pos = a.data();
76
1.01k
        const B* __restrict b_pos = b.data();
77
1.01k
        UInt8* __restrict c_pos = c.data();
78
1.01k
        const A* __restrict a_end = a_pos + size;
79
80
3.76M
        while (a_pos < a_end) {
81
3.76M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
3.76M
            ++a_pos;
83
3.76M
            ++b_pos;
84
3.76M
            ++c_pos;
85
3.76M
        }
86
1.01k
    }
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
61
                                        PaddedPODArray<UInt8>& c) {
74
61
        size_t size = a.size();
75
61
        const A* __restrict a_pos = a.data();
76
61
        const B* __restrict b_pos = b.data();
77
61
        UInt8* __restrict c_pos = c.data();
78
61
        const A* __restrict a_end = a_pos + size;
79
80
364
        while (a_pos < a_end) {
81
303
            *c_pos = Op::apply(*a_pos, *b_pos);
82
303
            ++a_pos;
83
303
            ++b_pos;
84
303
            ++c_pos;
85
303
        }
86
61
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_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
390
        while (a_pos < a_end) {
81
261
            *c_pos = Op::apply(*a_pos, *b_pos);
82
261
            ++a_pos;
83
261
            ++b_pos;
84
261
            ++c_pos;
85
261
        }
86
129
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_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
358
        while (a_pos < a_end) {
81
300
            *c_pos = Op::apply(*a_pos, *b_pos);
82
300
            ++a_pos;
83
300
            ++b_pos;
84
300
            ++c_pos;
85
300
        }
86
58
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
181
                                        PaddedPODArray<UInt8>& c) {
74
181
        size_t size = a.size();
75
181
        const A* __restrict a_pos = a.data();
76
181
        const B* __restrict b_pos = b.data();
77
181
        UInt8* __restrict c_pos = c.data();
78
181
        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
181
    }
_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
29
                                        PaddedPODArray<UInt8>& c) {
74
29
        size_t size = a.size();
75
29
        const A* __restrict a_pos = a.data();
76
29
        const B* __restrict b_pos = b.data();
77
29
        UInt8* __restrict c_pos = c.data();
78
29
        const A* __restrict a_end = a_pos + size;
79
80
100
        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
29
    }
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
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
77
        while (a_pos < a_end) {
81
56
            *c_pos = Op::apply(*a_pos, *b_pos);
82
56
            ++a_pos;
83
56
            ++b_pos;
84
56
            ++c_pos;
85
56
        }
86
21
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
17
                                        PaddedPODArray<UInt8>& c) {
74
17
        size_t size = a.size();
75
17
        const A* __restrict a_pos = a.data();
76
17
        const B* __restrict b_pos = b.data();
77
17
        UInt8* __restrict c_pos = c.data();
78
17
        const A* __restrict a_end = a_pos + size;
79
80
86
        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
17
    }
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
22
                                        PaddedPODArray<UInt8>& c) {
74
22
        size_t size = a.size();
75
22
        const A* __restrict a_pos = a.data();
76
22
        const B* __restrict b_pos = b.data();
77
22
        UInt8* __restrict c_pos = c.data();
78
22
        const A* __restrict a_end = a_pos + size;
79
80
67
        while (a_pos < a_end) {
81
45
            *c_pos = Op::apply(*a_pos, *b_pos);
82
45
            ++a_pos;
83
45
            ++b_pos;
84
45
            ++c_pos;
85
45
        }
86
22
    }
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.61k
                                        PaddedPODArray<UInt8>& c) {
74
1.61k
        size_t size = a.size();
75
1.61k
        const A* __restrict a_pos = a.data();
76
1.61k
        const B* __restrict b_pos = b.data();
77
1.61k
        UInt8* __restrict c_pos = c.data();
78
1.61k
        const A* __restrict a_end = a_pos + size;
79
80
2.19M
        while (a_pos < a_end) {
81
2.19M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
2.19M
            ++a_pos;
83
2.19M
            ++b_pos;
84
2.19M
            ++c_pos;
85
2.19M
        }
86
1.61k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
237
                                        PaddedPODArray<UInt8>& c) {
74
237
        size_t size = a.size();
75
237
        const A* __restrict a_pos = a.data();
76
237
        const B* __restrict b_pos = b.data();
77
237
        UInt8* __restrict c_pos = c.data();
78
237
        const A* __restrict a_end = a_pos + size;
79
80
822
        while (a_pos < a_end) {
81
585
            *c_pos = Op::apply(*a_pos, *b_pos);
82
585
            ++a_pos;
83
585
            ++b_pos;
84
585
            ++c_pos;
85
585
        }
86
237
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
105
                                        PaddedPODArray<UInt8>& c) {
74
105
        size_t size = a.size();
75
105
        const A* __restrict a_pos = a.data();
76
105
        const B* __restrict b_pos = b.data();
77
105
        UInt8* __restrict c_pos = c.data();
78
105
        const A* __restrict a_end = a_pos + size;
79
80
221
        while (a_pos < a_end) {
81
116
            *c_pos = Op::apply(*a_pos, *b_pos);
82
116
            ++a_pos;
83
116
            ++b_pos;
84
116
            ++c_pos;
85
116
        }
86
105
    }
_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
212
                                        PaddedPODArray<UInt8>& c) {
74
212
        size_t size = a.size();
75
212
        const A* __restrict a_pos = a.data();
76
212
        const B* __restrict b_pos = b.data();
77
212
        UInt8* __restrict c_pos = c.data();
78
212
        const A* __restrict a_end = a_pos + size;
79
80
598
        while (a_pos < a_end) {
81
386
            *c_pos = Op::apply(*a_pos, *b_pos);
82
386
            ++a_pos;
83
386
            ++b_pos;
84
386
            ++c_pos;
85
386
        }
86
212
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
155
                                        PaddedPODArray<UInt8>& c) {
74
155
        size_t size = a.size();
75
155
        const A* __restrict a_pos = a.data();
76
155
        const B* __restrict b_pos = b.data();
77
155
        UInt8* __restrict c_pos = c.data();
78
155
        const A* __restrict a_end = a_pos + size;
79
80
485
        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
155
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
880
                                        PaddedPODArray<UInt8>& c) {
74
880
        size_t size = a.size();
75
880
        const A* __restrict a_pos = a.data();
76
880
        const B* __restrict b_pos = b.data();
77
880
        UInt8* __restrict c_pos = c.data();
78
880
        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
880
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
260
                                        PaddedPODArray<UInt8>& c) {
74
260
        size_t size = a.size();
75
260
        const A* __restrict a_pos = a.data();
76
260
        const B* __restrict b_pos = b.data();
77
260
        UInt8* __restrict c_pos = c.data();
78
260
        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
260
    }
_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
132
                                        PaddedPODArray<UInt8>& c) {
74
132
        size_t size = a.size();
75
132
        const A* __restrict a_pos = a.data();
76
132
        const B* __restrict b_pos = b.data();
77
132
        UInt8* __restrict c_pos = c.data();
78
132
        const A* __restrict a_end = a_pos + size;
79
80
457
        while (a_pos < a_end) {
81
325
            *c_pos = Op::apply(*a_pos, *b_pos);
82
325
            ++a_pos;
83
325
            ++b_pos;
84
325
            ++c_pos;
85
325
        }
86
132
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
139
                                        PaddedPODArray<UInt8>& c) {
74
139
        size_t size = a.size();
75
139
        const A* __restrict a_pos = a.data();
76
139
        const B* __restrict b_pos = b.data();
77
139
        UInt8* __restrict c_pos = c.data();
78
139
        const A* __restrict a_end = a_pos + size;
79
80
480
        while (a_pos < a_end) {
81
341
            *c_pos = Op::apply(*a_pos, *b_pos);
82
341
            ++a_pos;
83
341
            ++b_pos;
84
341
            ++c_pos;
85
341
        }
86
139
    }
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
390
                                        PaddedPODArray<UInt8>& c) {
74
390
        size_t size = a.size();
75
390
        const A* __restrict a_pos = a.data();
76
390
        const B* __restrict b_pos = b.data();
77
390
        UInt8* __restrict c_pos = c.data();
78
390
        const A* __restrict a_end = a_pos + size;
79
80
6.08k
        while (a_pos < a_end) {
81
5.69k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
5.69k
            ++a_pos;
83
5.69k
            ++b_pos;
84
5.69k
            ++c_pos;
85
5.69k
        }
86
390
    }
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
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
72
        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
25
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
72
                                        PaddedPODArray<UInt8>& c) {
74
72
        size_t size = a.size();
75
72
        const A* __restrict a_pos = a.data();
76
72
        const B* __restrict b_pos = b.data();
77
72
        UInt8* __restrict c_pos = c.data();
78
72
        const A* __restrict a_end = a_pos + size;
79
80
195
        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
72
    }
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
54.8k
                                          PaddedPODArray<UInt8>& c) {
90
54.8k
        size_t size = a.size();
91
54.8k
        const A* __restrict a_pos = a.data();
92
54.8k
        UInt8* __restrict c_pos = c.data();
93
54.8k
        const A* __restrict a_end = a_pos + size;
94
95
34.7M
        while (a_pos < a_end) {
96
34.6M
            *c_pos = Op::apply(*a_pos, b);
97
34.6M
            ++a_pos;
98
34.6M
            ++c_pos;
99
34.6M
        }
100
54.8k
    }
_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
183
        while (a_pos < a_end) {
96
151
            *c_pos = Op::apply(*a_pos, b);
97
151
            ++a_pos;
98
151
            ++c_pos;
99
151
        }
100
32
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
478
                                          PaddedPODArray<UInt8>& c) {
90
478
        size_t size = a.size();
91
478
        const A* __restrict a_pos = a.data();
92
478
        UInt8* __restrict c_pos = c.data();
93
478
        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
478
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
181
                                          PaddedPODArray<UInt8>& c) {
90
181
        size_t size = a.size();
91
181
        const A* __restrict a_pos = a.data();
92
181
        UInt8* __restrict c_pos = c.data();
93
181
        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
181
    }
_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
6.08k
                                          PaddedPODArray<UInt8>& c) {
90
6.08k
        size_t size = a.size();
91
6.08k
        const A* __restrict a_pos = a.data();
92
6.08k
        UInt8* __restrict c_pos = c.data();
93
6.08k
        const A* __restrict a_end = a_pos + size;
94
95
9.22M
        while (a_pos < a_end) {
96
9.22M
            *c_pos = Op::apply(*a_pos, b);
97
9.22M
            ++a_pos;
98
9.22M
            ++c_pos;
99
9.22M
        }
100
6.08k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
317
                                          PaddedPODArray<UInt8>& c) {
90
317
        size_t size = a.size();
91
317
        const A* __restrict a_pos = a.data();
92
317
        UInt8* __restrict c_pos = c.data();
93
317
        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
317
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.19k
                                          PaddedPODArray<UInt8>& c) {
90
2.19k
        size_t size = a.size();
91
2.19k
        const A* __restrict a_pos = a.data();
92
2.19k
        UInt8* __restrict c_pos = c.data();
93
2.19k
        const A* __restrict a_end = a_pos + size;
94
95
186k
        while (a_pos < a_end) {
96
184k
            *c_pos = Op::apply(*a_pos, b);
97
184k
            ++a_pos;
98
184k
            ++c_pos;
99
184k
        }
100
2.19k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.99k
                                          PaddedPODArray<UInt8>& c) {
90
2.99k
        size_t size = a.size();
91
2.99k
        const A* __restrict a_pos = a.data();
92
2.99k
        UInt8* __restrict c_pos = c.data();
93
2.99k
        const A* __restrict a_end = a_pos + size;
94
95
1.75M
        while (a_pos < a_end) {
96
1.75M
            *c_pos = Op::apply(*a_pos, b);
97
1.75M
            ++a_pos;
98
1.75M
            ++c_pos;
99
1.75M
        }
100
2.99k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
33
                                          PaddedPODArray<UInt8>& c) {
90
33
        size_t size = a.size();
91
33
        const A* __restrict a_pos = a.data();
92
33
        UInt8* __restrict c_pos = c.data();
93
33
        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
33
    }
_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
841
                                          PaddedPODArray<UInt8>& c) {
90
841
        size_t size = a.size();
91
841
        const A* __restrict a_pos = a.data();
92
841
        UInt8* __restrict c_pos = c.data();
93
841
        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
841
    }
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
247
                                          PaddedPODArray<UInt8>& c) {
90
247
        size_t size = a.size();
91
247
        const A* __restrict a_pos = a.data();
92
247
        UInt8* __restrict c_pos = c.data();
93
247
        const A* __restrict a_end = a_pos + size;
94
95
1.95k
        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
247
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
812
                                          PaddedPODArray<UInt8>& c) {
90
812
        size_t size = a.size();
91
812
        const A* __restrict a_pos = a.data();
92
812
        UInt8* __restrict c_pos = c.data();
93
812
        const A* __restrict a_end = a_pos + size;
94
95
5.99k
        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
812
    }
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
337
                                          PaddedPODArray<UInt8>& c) {
90
337
        size_t size = a.size();
91
337
        const A* __restrict a_pos = a.data();
92
337
        UInt8* __restrict c_pos = c.data();
93
337
        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
337
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_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
8
        while (a_pos < a_end) {
96
5
            *c_pos = Op::apply(*a_pos, b);
97
5
            ++a_pos;
98
5
            ++c_pos;
99
5
        }
100
3
    }
_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.21k
                                          PaddedPODArray<UInt8>& c) {
90
1.21k
        size_t size = a.size();
91
1.21k
        const A* __restrict a_pos = a.data();
92
1.21k
        UInt8* __restrict c_pos = c.data();
93
1.21k
        const A* __restrict a_end = a_pos + size;
94
95
12.9k
        while (a_pos < a_end) {
96
11.7k
            *c_pos = Op::apply(*a_pos, b);
97
11.7k
            ++a_pos;
98
11.7k
            ++c_pos;
99
11.7k
        }
100
1.21k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.15k
                                          PaddedPODArray<UInt8>& c) {
90
2.15k
        size_t size = a.size();
91
2.15k
        const A* __restrict a_pos = a.data();
92
2.15k
        UInt8* __restrict c_pos = c.data();
93
2.15k
        const A* __restrict a_end = a_pos + size;
94
95
5.87k
        while (a_pos < a_end) {
96
3.72k
            *c_pos = Op::apply(*a_pos, b);
97
3.72k
            ++a_pos;
98
3.72k
            ++c_pos;
99
3.72k
        }
100
2.15k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.00k
                                          PaddedPODArray<UInt8>& c) {
90
2.00k
        size_t size = a.size();
91
2.00k
        const A* __restrict a_pos = a.data();
92
2.00k
        UInt8* __restrict c_pos = c.data();
93
2.00k
        const A* __restrict a_end = a_pos + size;
94
95
7.36k
        while (a_pos < a_end) {
96
5.35k
            *c_pos = Op::apply(*a_pos, b);
97
5.35k
            ++a_pos;
98
5.35k
            ++c_pos;
99
5.35k
        }
100
2.00k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
254
                                          PaddedPODArray<UInt8>& c) {
90
254
        size_t size = a.size();
91
254
        const A* __restrict a_pos = a.data();
92
254
        UInt8* __restrict c_pos = c.data();
93
254
        const A* __restrict a_end = a_pos + size;
94
95
1.19k
        while (a_pos < a_end) {
96
936
            *c_pos = Op::apply(*a_pos, b);
97
936
            ++a_pos;
98
936
            ++c_pos;
99
936
        }
100
254
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
10.3k
                                          PaddedPODArray<UInt8>& c) {
90
10.3k
        size_t size = a.size();
91
10.3k
        const A* __restrict a_pos = a.data();
92
10.3k
        UInt8* __restrict c_pos = c.data();
93
10.3k
        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.3k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
4.24k
                                          PaddedPODArray<UInt8>& c) {
90
4.24k
        size_t size = a.size();
91
4.24k
        const A* __restrict a_pos = a.data();
92
4.24k
        UInt8* __restrict c_pos = c.data();
93
4.24k
        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.24k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.99k
                                          PaddedPODArray<UInt8>& c) {
90
1.99k
        size_t size = a.size();
91
1.99k
        const A* __restrict a_pos = a.data();
92
1.99k
        UInt8* __restrict c_pos = c.data();
93
1.99k
        const A* __restrict a_end = a_pos + size;
94
95
99.1k
        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.99k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.05k
                                          PaddedPODArray<UInt8>& c) {
90
1.05k
        size_t size = a.size();
91
1.05k
        const A* __restrict a_pos = a.data();
92
1.05k
        UInt8* __restrict c_pos = c.data();
93
1.05k
        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.05k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
274
                                          PaddedPODArray<UInt8>& c) {
90
274
        size_t size = a.size();
91
274
        const A* __restrict a_pos = a.data();
92
274
        UInt8* __restrict c_pos = c.data();
93
274
        const A* __restrict a_end = a_pos + size;
94
95
1.91k
        while (a_pos < a_end) {
96
1.64k
            *c_pos = Op::apply(*a_pos, b);
97
1.64k
            ++a_pos;
98
1.64k
            ++c_pos;
99
1.64k
        }
100
274
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
60
                                          PaddedPODArray<UInt8>& c) {
90
60
        size_t size = a.size();
91
60
        const A* __restrict a_pos = a.data();
92
60
        UInt8* __restrict c_pos = c.data();
93
60
        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
60
    }
_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
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
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
507
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
955
                                          PaddedPODArray<UInt8>& c) {
90
955
        size_t size = a.size();
91
955
        const A* __restrict a_pos = a.data();
92
955
        UInt8* __restrict c_pos = c.data();
93
955
        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
955
    }
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
6
                                          PaddedPODArray<UInt8>& c) {
90
6
        size_t size = a.size();
91
6
        const A* __restrict a_pos = a.data();
92
6
        UInt8* __restrict c_pos = c.data();
93
6
        const A* __restrict a_end = a_pos + size;
94
95
11.1k
        while (a_pos < a_end) {
96
11.1k
            *c_pos = Op::apply(*a_pos, b);
97
11.1k
            ++a_pos;
98
11.1k
            ++c_pos;
99
11.1k
        }
100
6
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
89
14
                                          PaddedPODArray<UInt8>& c) {
90
14
        size_t size = a.size();
91
14
        const A* __restrict a_pos = a.data();
92
14
        UInt8* __restrict c_pos = c.data();
93
14
        const A* __restrict a_end = a_pos + size;
94
95
9.58k
        while (a_pos < a_end) {
96
9.56k
            *c_pos = Op::apply(*a_pos, b);
97
9.56k
            ++a_pos;
98
9.56k
            ++c_pos;
99
9.56k
        }
100
14
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
434
                                          PaddedPODArray<UInt8>& c) {
90
434
        size_t size = a.size();
91
434
        const A* __restrict a_pos = a.data();
92
434
        UInt8* __restrict c_pos = c.data();
93
434
        const A* __restrict a_end = a_pos + size;
94
95
1.43M
        while (a_pos < a_end) {
96
1.43M
            *c_pos = Op::apply(*a_pos, b);
97
1.43M
            ++a_pos;
98
1.43M
            ++c_pos;
99
1.43M
        }
100
434
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
142
                                          PaddedPODArray<UInt8>& c) {
90
142
        size_t size = a.size();
91
142
        const A* __restrict a_pos = a.data();
92
142
        UInt8* __restrict c_pos = c.data();
93
142
        const A* __restrict a_end = a_pos + size;
94
95
613k
        while (a_pos < a_end) {
96
613k
            *c_pos = Op::apply(*a_pos, b);
97
613k
            ++a_pos;
98
613k
            ++c_pos;
99
613k
        }
100
142
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
117
                                          PaddedPODArray<UInt8>& c) {
90
117
        size_t size = a.size();
91
117
        const A* __restrict a_pos = a.data();
92
117
        UInt8* __restrict c_pos = c.data();
93
117
        const A* __restrict a_end = a_pos + size;
94
95
429
        while (a_pos < a_end) {
96
312
            *c_pos = Op::apply(*a_pos, b);
97
312
            ++a_pos;
98
312
            ++c_pos;
99
312
        }
100
117
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_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
190
        while (a_pos < a_end) {
96
133
            *c_pos = Op::apply(*a_pos, b);
97
133
            ++a_pos;
98
133
            ++c_pos;
99
133
        }
100
57
    }
_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
63
                                          PaddedPODArray<UInt8>& c) {
90
63
        size_t size = a.size();
91
63
        const A* __restrict a_pos = a.data();
92
63
        UInt8* __restrict c_pos = c.data();
93
63
        const A* __restrict a_end = a_pos + size;
94
95
54.2k
        while (a_pos < a_end) {
96
54.1k
            *c_pos = Op::apply(*a_pos, b);
97
54.1k
            ++a_pos;
98
54.1k
            ++c_pos;
99
54.1k
        }
100
63
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
85
                                          PaddedPODArray<UInt8>& c) {
90
85
        size_t size = a.size();
91
85
        const A* __restrict a_pos = a.data();
92
85
        UInt8* __restrict c_pos = c.data();
93
85
        const A* __restrict a_end = a_pos + size;
94
95
60.6k
        while (a_pos < a_end) {
96
60.5k
            *c_pos = Op::apply(*a_pos, b);
97
60.5k
            ++a_pos;
98
60.5k
            ++c_pos;
99
60.5k
        }
100
85
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
96
                                          PaddedPODArray<UInt8>& c) {
90
96
        size_t size = a.size();
91
96
        const A* __restrict a_pos = a.data();
92
96
        UInt8* __restrict c_pos = c.data();
93
96
        const A* __restrict a_end = a_pos + size;
94
95
29.4k
        while (a_pos < a_end) {
96
29.3k
            *c_pos = Op::apply(*a_pos, b);
97
29.3k
            ++a_pos;
98
29.3k
            ++c_pos;
99
29.3k
        }
100
96
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
141
                                          PaddedPODArray<UInt8>& c) {
90
141
        size_t size = a.size();
91
141
        const A* __restrict a_pos = a.data();
92
141
        UInt8* __restrict c_pos = c.data();
93
141
        const A* __restrict a_end = a_pos + size;
94
95
90.0k
        while (a_pos < a_end) {
96
89.8k
            *c_pos = Op::apply(*a_pos, b);
97
89.8k
            ++a_pos;
98
89.8k
            ++c_pos;
99
89.8k
        }
100
141
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.27k
                                          PaddedPODArray<UInt8>& c) {
90
1.27k
        size_t size = a.size();
91
1.27k
        const A* __restrict a_pos = a.data();
92
1.27k
        UInt8* __restrict c_pos = c.data();
93
1.27k
        const A* __restrict a_end = a_pos + size;
94
95
3.60M
        while (a_pos < a_end) {
96
3.59M
            *c_pos = Op::apply(*a_pos, b);
97
3.59M
            ++a_pos;
98
3.59M
            ++c_pos;
99
3.59M
        }
100
1.27k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
6.81k
                                          PaddedPODArray<UInt8>& c) {
90
6.81k
        size_t size = a.size();
91
6.81k
        const A* __restrict a_pos = a.data();
92
6.81k
        UInt8* __restrict c_pos = c.data();
93
6.81k
        const A* __restrict a_end = a_pos + size;
94
95
7.36M
        while (a_pos < a_end) {
96
7.36M
            *c_pos = Op::apply(*a_pos, b);
97
7.36M
            ++a_pos;
98
7.36M
            ++c_pos;
99
7.36M
        }
100
6.81k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
792
                                          PaddedPODArray<UInt8>& c) {
90
792
        size_t size = a.size();
91
792
        const A* __restrict a_pos = a.data();
92
792
        UInt8* __restrict c_pos = c.data();
93
792
        const A* __restrict a_end = a_pos + size;
94
95
3.87k
        while (a_pos < a_end) {
96
3.08k
            *c_pos = Op::apply(*a_pos, b);
97
3.08k
            ++a_pos;
98
3.08k
            ++c_pos;
99
3.08k
        }
100
792
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
553
                                          PaddedPODArray<UInt8>& c) {
90
553
        size_t size = a.size();
91
553
        const A* __restrict a_pos = a.data();
92
553
        UInt8* __restrict c_pos = c.data();
93
553
        const A* __restrict a_end = a_pos + size;
94
95
45.6k
        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
553
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
8
                                          PaddedPODArray<UInt8>& c) {
90
8
        size_t size = a.size();
91
8
        const A* __restrict a_pos = a.data();
92
8
        UInt8* __restrict c_pos = c.data();
93
8
        const A* __restrict a_end = a_pos + size;
94
95
21.1k
        while (a_pos < a_end) {
96
21.1k
            *c_pos = Op::apply(*a_pos, b);
97
21.1k
            ++a_pos;
98
21.1k
            ++c_pos;
99
21.1k
        }
100
8
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
29
                                          PaddedPODArray<UInt8>& c) {
90
29
        size_t size = a.size();
91
29
        const A* __restrict a_pos = a.data();
92
29
        UInt8* __restrict c_pos = c.data();
93
29
        const A* __restrict a_end = a_pos + size;
94
95
122k
        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
29
    }
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
469
                                          PaddedPODArray<UInt8>& c) {
90
469
        size_t size = a.size();
91
469
        const A* __restrict a_pos = a.data();
92
469
        UInt8* __restrict c_pos = c.data();
93
469
        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
469
    }
_ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
313
                                          PaddedPODArray<UInt8>& c) {
90
313
        size_t size = a.size();
91
313
        const A* __restrict a_pos = a.data();
92
313
        UInt8* __restrict c_pos = c.data();
93
313
        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
313
    }
_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
105
                                          PaddedPODArray<UInt8>& c) {
90
105
        size_t size = a.size();
91
105
        const A* __restrict a_pos = a.data();
92
105
        UInt8* __restrict c_pos = c.data();
93
105
        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
105
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
94
                                          PaddedPODArray<UInt8>& c) {
90
94
        size_t size = a.size();
91
94
        const A* __restrict a_pos = a.data();
92
94
        UInt8* __restrict c_pos = c.data();
93
94
        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
94
    }
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.87k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
6.87k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
6.87k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
_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
312
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
312
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
312
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_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
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
115
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
115
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
115
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
588
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
588
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
588
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
4
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
4
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
4
    }
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
782
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
782
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
782
    }
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
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
    }
_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
517
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
517
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
517
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
18
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
18
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
18
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _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
252
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
252
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
252
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
119
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
119
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
119
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_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
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
72
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
72
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
72
    }
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
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
35
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
35
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
35
    }
_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
22
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
65
        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
22
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
15
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
41
        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
15
    }
_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
94
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
94
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
186k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
186k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
186k
        }
121
94
    }
_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
35
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
35
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
138k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
138k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
138k
        }
121
35
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
16
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
16
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
48.4k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
48.4k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
48.4k
        }
121
16
    }
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
427
                                                      PaddedPODArray<UInt8>& c) {
135
427
        size_t size = a_offsets.size();
136
427
        ColumnString::Offset prev_a_offset = 0;
137
427
        ColumnString::Offset prev_b_offset = 0;
138
427
        const auto* a_pos = a_data.data();
139
427
        const auto* b_pos = b_data.data();
140
141
1.58k
        for (size_t i = 0; i < size; ++i) {
142
1.16k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
1.16k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
1.16k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
1.16k
                             0);
146
147
1.16k
            prev_a_offset = a_offsets[i];
148
1.16k
            prev_b_offset = b_offsets[i];
149
1.16k
        }
150
427
    }
_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
389
                                                      PaddedPODArray<UInt8>& c) {
135
389
        size_t size = a_offsets.size();
136
389
        ColumnString::Offset prev_a_offset = 0;
137
389
        ColumnString::Offset prev_b_offset = 0;
138
389
        const auto* a_pos = a_data.data();
139
389
        const auto* b_pos = b_data.data();
140
141
1.31k
        for (size_t i = 0; i < size; ++i) {
142
921
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
921
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
921
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
921
                             0);
146
147
921
            prev_a_offset = a_offsets[i];
148
921
            prev_b_offset = b_offsets[i];
149
921
        }
150
389
    }
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
796
                                                 PaddedPODArray<UInt8>& c) {
157
796
        size_t size = a_offsets.size();
158
796
        ColumnString::Offset prev_a_offset = 0;
159
796
        const auto* a_pos = a_data.data();
160
796
        const auto* b_pos = b_data.data();
161
162
996k
        for (size_t i = 0; i < size; ++i) {
163
995k
            c[i] = Op::apply(
164
995k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
995k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
995k
                    0);
167
168
995k
            prev_a_offset = a_offsets[i];
169
995k
        }
170
796
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
239
                                                 PaddedPODArray<UInt8>& c) {
157
239
        size_t size = a_offsets.size();
158
239
        ColumnString::Offset prev_a_offset = 0;
159
239
        const auto* a_pos = a_data.data();
160
239
        const auto* b_pos = b_data.data();
161
162
352k
        for (size_t i = 0; i < size; ++i) {
163
351k
            c[i] = Op::apply(
164
351k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
351k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
351k
                    0);
167
168
351k
            prev_a_offset = a_offsets[i];
169
351k
        }
170
239
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
133
                                                 PaddedPODArray<UInt8>& c) {
157
133
        size_t size = a_offsets.size();
158
133
        ColumnString::Offset prev_a_offset = 0;
159
133
        const auto* a_pos = a_data.data();
160
133
        const auto* b_pos = b_data.data();
161
162
105k
        for (size_t i = 0; i < size; ++i) {
163
104k
            c[i] = Op::apply(
164
104k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
104k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
104k
                    0);
167
168
104k
            prev_a_offset = a_offsets[i];
169
104k
        }
170
133
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
171
                                                 PaddedPODArray<UInt8>& c) {
157
171
        size_t size = a_offsets.size();
158
171
        ColumnString::Offset prev_a_offset = 0;
159
171
        const auto* a_pos = a_data.data();
160
171
        const auto* b_pos = b_data.data();
161
162
261k
        for (size_t i = 0; i < size; ++i) {
163
261k
            c[i] = Op::apply(
164
261k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
261k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
261k
                    0);
167
168
261k
            prev_a_offset = a_offsets[i];
169
261k
        }
170
171
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
253
                                                 PaddedPODArray<UInt8>& c) {
157
253
        size_t size = a_offsets.size();
158
253
        ColumnString::Offset prev_a_offset = 0;
159
253
        const auto* a_pos = a_data.data();
160
253
        const auto* b_pos = b_data.data();
161
162
277k
        for (size_t i = 0; i < size; ++i) {
163
277k
            c[i] = Op::apply(
164
277k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
277k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
277k
                    0);
167
168
277k
            prev_a_offset = a_offsets[i];
169
277k
        }
170
253
    }
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
62
                                       PaddedPODArray<UInt8>& c) {
177
62
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
178
62
                                                                               a_data, a_size, c);
179
62
    }
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
56
                                       PaddedPODArray<UInt8>& c) {
177
56
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
178
56
                                                                               a_data, a_size, c);
179
56
    }
_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
486
                                                      PaddedPODArray<UInt8>& c) {
189
486
        size_t size = a_offsets.size();
190
486
        ColumnString::Offset prev_a_offset = 0;
191
486
        ColumnString::Offset prev_b_offset = 0;
192
486
        const auto* a_pos = a_data.data();
193
486
        const auto* b_pos = b_data.data();
194
195
1.49k
        for (size_t i = 0; i < size; ++i) {
196
1.01k
            auto a_size = a_offsets[i] - prev_a_offset;
197
1.01k
            auto b_size = b_offsets[i] - prev_b_offset;
198
199
1.01k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
200
1.01k
                                                               b_pos + prev_b_offset, b_size);
201
202
1.01k
            prev_a_offset = a_offsets[i];
203
1.01k
            prev_b_offset = b_offsets[i];
204
1.01k
        }
205
486
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
188
476
                                                      PaddedPODArray<UInt8>& c) {
189
476
        size_t size = a_offsets.size();
190
476
        ColumnString::Offset prev_a_offset = 0;
191
476
        ColumnString::Offset prev_b_offset = 0;
192
476
        const auto* a_pos = a_data.data();
193
476
        const auto* b_pos = b_data.data();
194
195
1.46k
        for (size_t i = 0; i < size; ++i) {
196
991
            auto a_size = a_offsets[i] - prev_a_offset;
197
991
            auto b_size = b_offsets[i] - prev_b_offset;
198
199
991
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
200
991
                                                               b_pos + prev_b_offset, b_size);
201
202
991
            prev_a_offset = a_offsets[i];
203
991
            prev_b_offset = b_offsets[i];
204
991
        }
205
476
    }
_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
20.6k
                                                 PaddedPODArray<UInt8>& c) {
212
20.6k
        size_t size = a_offsets.size();
213
20.6k
        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
20.6k
        } else {
223
20.6k
            ColumnString::Offset prev_a_offset = 0;
224
20.6k
            const auto* a_pos = a_data.data();
225
20.6k
            const auto* b_pos = b_data.data();
226
8.94M
            for (size_t i = 0; i < size; ++i) {
227
8.92M
                auto a_size = a_offsets[i] - prev_a_offset;
228
8.92M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
8.92M
                                                                   b_pos, b_size);
230
8.92M
                prev_a_offset = a_offsets[i];
231
8.92M
            }
232
20.6k
        }
233
20.6k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
211
20.5k
                                                 PaddedPODArray<UInt8>& c) {
212
20.5k
        size_t size = a_offsets.size();
213
20.5k
        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
20.5k
        } else {
223
20.5k
            ColumnString::Offset prev_a_offset = 0;
224
20.5k
            const auto* a_pos = a_data.data();
225
20.5k
            const auto* b_pos = b_data.data();
226
8.88M
            for (size_t i = 0; i < size; ++i) {
227
8.86M
                auto a_size = a_offsets[i] - prev_a_offset;
228
8.86M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
8.86M
                                                                   b_pos, b_size);
230
8.86M
                prev_a_offset = a_offsets[i];
231
8.86M
            }
232
20.5k
        }
233
20.5k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
211
118
                                                 PaddedPODArray<UInt8>& c) {
212
118
        size_t size = a_offsets.size();
213
118
        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
117
        } else {
223
117
            ColumnString::Offset prev_a_offset = 0;
224
117
            const auto* a_pos = a_data.data();
225
117
            const auto* b_pos = b_data.data();
226
60.0k
            for (size_t i = 0; i < size; ++i) {
227
59.8k
                auto a_size = a_offsets[i] - prev_a_offset;
228
59.8k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
59.8k
                                                                   b_pos, b_size);
230
59.8k
                prev_a_offset = a_offsets[i];
231
59.8k
            }
232
117
        }
233
118
    }
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
11
                                                 PaddedPODArray<UInt8>& c) {
240
11
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
241
11
    }
_ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Line
Count
Source
239
11
                                                 PaddedPODArray<UInt8>& c) {
240
11
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
241
11
    }
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
53
        return ZoneMapFilterResult::kNoMatch;
312
53
    }
313
2.95k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
314
124
        return unsupported_zonemap_filter(ctx);
315
124
    }
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.77k
    switch (effective_op) {
329
1.52k
    case Op::EQ:
330
1.52k
        return literal < zone_map.min_value || zone_map.max_value < literal
331
1.52k
                       ? ZoneMapFilterResult::kNoMatch
332
1.52k
                       : 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
368
    case Op::LT:
338
368
        return zone_map.min_value >= literal ? ZoneMapFilterResult::kNoMatch
339
368
                                             : ZoneMapFilterResult::kMayMatch;
340
252
    case Op::LE:
341
252
        return zone_map.min_value > literal ? ZoneMapFilterResult::kNoMatch
342
252
                                            : ZoneMapFilterResult::kMayMatch;
343
259
    case Op::GT:
344
259
        return zone_map.max_value <= literal ? ZoneMapFilterResult::kNoMatch
345
259
                                             : ZoneMapFilterResult::kMayMatch;
346
278
    case Op::GE:
347
278
        return zone_map.max_value < literal ? ZoneMapFilterResult::kNoMatch
348
278
                                            : ZoneMapFilterResult::kMayMatch;
349
2.77k
    }
350
351
    // keep this to avoid compile failure with g++.
352
0
    __builtin_unreachable();
353
2.77k
}
354
355
33.0k
inline bool can_evaluate(const VExprSPtrs& arguments) {
356
33.0k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
357
33.0k
    if (!slot_literal.has_value()) {
358
18.5k
        return false;
359
18.5k
    }
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.4k
    if (slot_literal->literal.is_null()) {
365
4
        return false;
366
4
    }
367
368
14.4k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
369
14.4k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
370
14.4k
    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.4k
    return true;
378
14.4k
}
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
36.8k
inline std::optional<Op> op_from_name(std::string_view name) {
442
36.8k
    if (name == NameEquals::name) {
443
17.8k
        return Op::EQ;
444
17.8k
    }
445
18.9k
    if (name == NameNotEquals::name) {
446
1.50k
        return Op::NE;
447
1.50k
    }
448
17.4k
    if (name == NameLess::name) {
449
4.36k
        return Op::LT;
450
4.36k
    }
451
13.1k
    if (name == NameLessOrEquals::name) {
452
2.17k
        return Op::LE;
453
2.17k
    }
454
10.9k
    if (name == NameGreater::name) {
455
6.09k
        return Op::GT;
456
6.09k
    }
457
5.00k
    if (name == NameGreaterOrEquals::name) {
458
5.00k
        return Op::GE;
459
5.00k
    }
460
18.4E
    return std::nullopt;
461
4.85k
}
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
302k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
468
271k
    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.77k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
468
8.86k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
468
3.85k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
468
10.6k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
469
470
302k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
470
271k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
470
1.24k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
470
6.77k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
470
8.87k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
470
3.86k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
470
10.5k
    FunctionComparison() = default;
471
472
689k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
472
681k
    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.19k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
472
2.30k
    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.15k
    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
67.1k
                            const ColumnPtr& col_right_ptr) const {
478
67.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
67.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
67.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
67.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
67.1k
        DCHECK(!(left_is_const && right_is_const));
485
486
67.1k
        if (!left_is_const && !right_is_const) {
487
12.3k
            auto col_res = ColumnUInt8::create();
488
489
12.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
12.3k
            vec_res.resize(col_left->get_data().size());
491
12.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
12.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
12.3k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
12.3k
                                                     vec_res);
495
496
12.3k
            block.replace_by_position(result, std::move(col_res));
497
54.7k
        } else if (!left_is_const && right_is_const) {
498
47.9k
            auto col_res = ColumnUInt8::create();
499
500
47.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
47.9k
            vec_res.resize(col_left->size());
502
47.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
47.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
47.9k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
47.9k
                                                       col_right->get_element(0), vec_res);
506
507
47.9k
            block.replace_by_position(result, std::move(col_res));
508
47.9k
        } else if (left_is_const && !right_is_const) {
509
6.87k
            auto col_res = ColumnUInt8::create();
510
511
6.87k
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
6.87k
            vec_res.resize(col_right->size());
513
6.87k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
6.87k
                              typename PrimitiveTypeTraits<PT>::CppType,
515
6.87k
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
6.87k
                                                       col_right->get_data(), vec_res);
517
518
6.87k
            block.replace_by_position(result, std::move(col_res));
519
6.87k
        }
520
67.1k
        return Status::OK();
521
67.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
99
                            const ColumnPtr& col_right_ptr) const {
478
99
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
99
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
99
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
99
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
99
        DCHECK(!(left_is_const && right_is_const));
485
486
99
        if (!left_is_const && !right_is_const) {
487
67
            auto col_res = ColumnUInt8::create();
488
489
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
67
            vec_res.resize(col_left->get_data().size());
491
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
67
                              typename PrimitiveTypeTraits<PT>::CppType,
493
67
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
67
                                                     vec_res);
495
496
67
            block.replace_by_position(result, std::move(col_res));
497
67
        } 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
99
        return Status::OK();
521
99
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
695
                            const ColumnPtr& col_right_ptr) const {
478
695
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
695
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
695
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
695
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
695
        DCHECK(!(left_is_const && right_is_const));
485
486
695
        if (!left_is_const && !right_is_const) {
487
217
            auto col_res = ColumnUInt8::create();
488
489
217
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
217
            vec_res.resize(col_left->get_data().size());
491
217
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
217
                              typename PrimitiveTypeTraits<PT>::CppType,
493
217
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
217
                                                     vec_res);
495
496
217
            block.replace_by_position(result, std::move(col_res));
497
478
        } else if (!left_is_const && right_is_const) {
498
478
            auto col_res = ColumnUInt8::create();
499
500
478
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
478
            vec_res.resize(col_left->size());
502
478
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
478
                              typename PrimitiveTypeTraits<PT>::CppType,
504
478
                              Op<PT>>::vector_constant(col_left->get_data(),
505
478
                                                       col_right->get_element(0), vec_res);
506
507
478
            block.replace_by_position(result, std::move(col_res));
508
478
        } 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
695
        return Status::OK();
521
695
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
448
                            const ColumnPtr& col_right_ptr) const {
478
448
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
448
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
448
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
448
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
448
        DCHECK(!(left_is_const && right_is_const));
485
486
448
        if (!left_is_const && !right_is_const) {
487
267
            auto col_res = ColumnUInt8::create();
488
489
267
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
267
            vec_res.resize(col_left->get_data().size());
491
267
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
267
                              typename PrimitiveTypeTraits<PT>::CppType,
493
267
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
267
                                                     vec_res);
495
496
267
            block.replace_by_position(result, std::move(col_res));
497
267
        } else if (!left_is_const && right_is_const) {
498
181
            auto col_res = ColumnUInt8::create();
499
500
181
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
181
            vec_res.resize(col_left->size());
502
181
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
181
                              typename PrimitiveTypeTraits<PT>::CppType,
504
181
                              Op<PT>>::vector_constant(col_left->get_data(),
505
181
                                                       col_right->get_element(0), vec_res);
506
507
181
            block.replace_by_position(result, std::move(col_res));
508
181
        } 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
448
        return Status::OK();
521
448
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
219
                            const ColumnPtr& col_right_ptr) const {
478
219
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
219
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
219
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
219
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
219
        DCHECK(!(left_is_const && right_is_const));
485
486
219
        if (!left_is_const && !right_is_const) {
487
133
            auto col_res = ColumnUInt8::create();
488
489
133
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
133
            vec_res.resize(col_left->get_data().size());
491
133
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
133
                              typename PrimitiveTypeTraits<PT>::CppType,
493
133
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
133
                                                     vec_res);
495
496
133
            block.replace_by_position(result, std::move(col_res));
497
133
        } 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
219
        return Status::OK();
521
219
    }
_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
6.30k
                            const ColumnPtr& col_right_ptr) const {
478
6.30k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
6.30k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
6.30k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
6.30k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
6.30k
        DCHECK(!(left_is_const && right_is_const));
485
486
6.30k
        if (!left_is_const && !right_is_const) {
487
219
            auto col_res = ColumnUInt8::create();
488
489
219
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
219
            vec_res.resize(col_left->get_data().size());
491
219
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
219
                              typename PrimitiveTypeTraits<PT>::CppType,
493
219
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
219
                                                     vec_res);
495
496
219
            block.replace_by_position(result, std::move(col_res));
497
6.08k
        } else if (!left_is_const && right_is_const) {
498
5.76k
            auto col_res = ColumnUInt8::create();
499
500
5.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
5.76k
            vec_res.resize(col_left->size());
502
5.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
5.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
5.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
5.76k
                                                       col_right->get_element(0), vec_res);
506
507
5.76k
            block.replace_by_position(result, std::move(col_res));
508
5.76k
        } else if (left_is_const && !right_is_const) {
509
312
            auto col_res = ColumnUInt8::create();
510
511
312
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
312
            vec_res.resize(col_right->size());
513
312
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
312
                              typename PrimitiveTypeTraits<PT>::CppType,
515
312
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
312
                                                       col_right->get_data(), vec_res);
517
518
312
            block.replace_by_position(result, std::move(col_res));
519
312
        }
520
6.30k
        return Status::OK();
521
6.30k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
430
                            const ColumnPtr& col_right_ptr) const {
478
430
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
430
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
430
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
430
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
430
        DCHECK(!(left_is_const && right_is_const));
485
486
430
        if (!left_is_const && !right_is_const) {
487
114
            auto col_res = ColumnUInt8::create();
488
489
114
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
114
            vec_res.resize(col_left->get_data().size());
491
114
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
114
                              typename PrimitiveTypeTraits<PT>::CppType,
493
114
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
114
                                                     vec_res);
495
496
114
            block.replace_by_position(result, std::move(col_res));
497
316
        } 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
47
            auto col_res = ColumnUInt8::create();
510
511
47
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
47
            vec_res.resize(col_right->size());
513
47
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
47
                              typename PrimitiveTypeTraits<PT>::CppType,
515
47
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
47
                                                       col_right->get_data(), vec_res);
517
518
47
            block.replace_by_position(result, std::move(col_res));
519
47
        }
520
430
        return Status::OK();
521
430
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
3.20k
                            const ColumnPtr& col_right_ptr) const {
478
3.20k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
3.20k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
3.20k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
3.20k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
3.20k
        DCHECK(!(left_is_const && right_is_const));
485
486
3.20k
        if (!left_is_const && !right_is_const) {
487
1.01k
            auto col_res = ColumnUInt8::create();
488
489
1.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1.01k
            vec_res.resize(col_left->get_data().size());
491
1.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1.01k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1.01k
                                                     vec_res);
495
496
1.01k
            block.replace_by_position(result, std::move(col_res));
497
2.19k
        } else if (!left_is_const && right_is_const) {
498
2.07k
            auto col_res = ColumnUInt8::create();
499
500
2.07k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
2.07k
            vec_res.resize(col_left->size());
502
2.07k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
2.07k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
2.07k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
2.07k
                                                       col_right->get_element(0), vec_res);
506
507
2.07k
            block.replace_by_position(result, std::move(col_res));
508
2.07k
        } else if (left_is_const && !right_is_const) {
509
115
            auto col_res = ColumnUInt8::create();
510
511
115
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
115
            vec_res.resize(col_right->size());
513
115
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
115
                              typename PrimitiveTypeTraits<PT>::CppType,
515
115
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
115
                                                       col_right->get_data(), vec_res);
517
518
115
            block.replace_by_position(result, std::move(col_res));
519
115
        }
520
3.20k
        return Status::OK();
521
3.20k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
3.18k
                            const ColumnPtr& col_right_ptr) const {
478
3.18k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
3.18k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
3.18k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
3.18k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
3.18k
        DCHECK(!(left_is_const && right_is_const));
485
486
3.18k
        if (!left_is_const && !right_is_const) {
487
187
            auto col_res = ColumnUInt8::create();
488
489
187
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
187
            vec_res.resize(col_left->get_data().size());
491
187
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
187
                              typename PrimitiveTypeTraits<PT>::CppType,
493
187
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
187
                                                     vec_res);
495
496
187
            block.replace_by_position(result, std::move(col_res));
497
2.99k
        } else if (!left_is_const && right_is_const) {
498
2.41k
            auto col_res = ColumnUInt8::create();
499
500
2.41k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
2.41k
            vec_res.resize(col_left->size());
502
2.41k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
2.41k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
2.41k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
2.41k
                                                       col_right->get_element(0), vec_res);
506
507
2.41k
            block.replace_by_position(result, std::move(col_res));
508
2.41k
        } else if (left_is_const && !right_is_const) {
509
588
            auto col_res = ColumnUInt8::create();
510
511
588
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
588
            vec_res.resize(col_right->size());
513
588
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
588
                              typename PrimitiveTypeTraits<PT>::CppType,
515
588
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
588
                                                       col_right->get_data(), vec_res);
517
518
588
            block.replace_by_position(result, std::move(col_res));
519
588
        }
520
3.18k
        return Status::OK();
521
3.18k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
110
                            const ColumnPtr& col_right_ptr) const {
478
110
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
110
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
110
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
110
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
110
        DCHECK(!(left_is_const && right_is_const));
485
486
110
        if (!left_is_const && !right_is_const) {
487
77
            auto col_res = ColumnUInt8::create();
488
489
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
77
            vec_res.resize(col_left->get_data().size());
491
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
77
                              typename PrimitiveTypeTraits<PT>::CppType,
493
77
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
77
                                                     vec_res);
495
496
77
            block.replace_by_position(result, std::move(col_res));
497
77
        } 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
4
            auto col_res = ColumnUInt8::create();
510
511
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
4
            vec_res.resize(col_right->size());
513
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
4
                              typename PrimitiveTypeTraits<PT>::CppType,
515
4
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
4
                                                       col_right->get_data(), vec_res);
517
518
4
            block.replace_by_position(result, std::move(col_res));
519
4
        }
520
110
        return Status::OK();
521
110
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
22
                            const ColumnPtr& col_right_ptr) const {
478
22
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
22
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
22
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
22
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
22
        DCHECK(!(left_is_const && right_is_const));
485
486
22
        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
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
22
        return Status::OK();
521
22
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_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
23
            auto col_res = ColumnUInt8::create();
488
489
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
23
            vec_res.resize(col_left->get_data().size());
491
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
23
                              typename PrimitiveTypeTraits<PT>::CppType,
493
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
23
                                                     vec_res);
495
496
23
            block.replace_by_position(result, std::move(col_res));
497
23
        } 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
27
        return Status::OK();
521
27
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2.79k
                            const ColumnPtr& col_right_ptr) const {
478
2.79k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.79k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.79k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.79k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.79k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.79k
        if (!left_is_const && !right_is_const) {
487
779
            auto col_res = ColumnUInt8::create();
488
489
779
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
779
            vec_res.resize(col_left->get_data().size());
491
779
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
779
                              typename PrimitiveTypeTraits<PT>::CppType,
493
779
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
779
                                                     vec_res);
495
496
779
            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.79k
        return Status::OK();
521
2.79k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
96
                            const ColumnPtr& col_right_ptr) const {
478
96
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
96
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
96
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
96
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
96
        DCHECK(!(left_is_const && right_is_const));
485
486
96
        if (!left_is_const && !right_is_const) {
487
96
            auto col_res = ColumnUInt8::create();
488
489
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
96
            vec_res.resize(col_left->get_data().size());
491
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
96
                              typename PrimitiveTypeTraits<PT>::CppType,
493
96
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
96
                                                     vec_res);
495
496
96
            block.replace_by_position(result, std::move(col_res));
497
96
        } 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
96
        return Status::OK();
521
96
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
957
                            const ColumnPtr& col_right_ptr) const {
478
957
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
957
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
957
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
957
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
957
        DCHECK(!(left_is_const && right_is_const));
485
486
957
        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
841
        } else if (!left_is_const && right_is_const) {
498
841
            auto col_res = ColumnUInt8::create();
499
500
841
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
841
            vec_res.resize(col_left->size());
502
841
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
841
                              typename PrimitiveTypeTraits<PT>::CppType,
504
841
                              Op<PT>>::vector_constant(col_left->get_data(),
505
841
                                                       col_right->get_element(0), vec_res);
506
507
841
            block.replace_by_position(result, std::move(col_res));
508
841
        } 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
957
        return Status::OK();
521
957
    }
_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.85k
                            const ColumnPtr& col_right_ptr) const {
478
1.85k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.85k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.85k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.85k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.85k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.85k
        if (!left_is_const && !right_is_const) {
487
1.60k
            auto col_res = ColumnUInt8::create();
488
489
1.60k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1.60k
            vec_res.resize(col_left->get_data().size());
491
1.60k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1.60k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1.60k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1.60k
                                                     vec_res);
495
496
1.60k
            block.replace_by_position(result, std::move(col_res));
497
1.60k
        } else if (!left_is_const && right_is_const) {
498
247
            auto col_res = ColumnUInt8::create();
499
500
247
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
247
            vec_res.resize(col_left->size());
502
247
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
247
                              typename PrimitiveTypeTraits<PT>::CppType,
504
247
                              Op<PT>>::vector_constant(col_left->get_data(),
505
247
                                                       col_right->get_element(0), vec_res);
506
507
247
            block.replace_by_position(result, std::move(col_res));
508
247
        } 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.85k
        return Status::OK();
521
1.85k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_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
351
            auto col_res = ColumnUInt8::create();
488
489
351
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
351
            vec_res.resize(col_left->get_data().size());
491
351
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
351
                              typename PrimitiveTypeTraits<PT>::CppType,
493
351
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
351
                                                     vec_res);
495
496
351
            block.replace_by_position(result, std::move(col_res));
497
812
        } else if (!left_is_const && right_is_const) {
498
30
            auto col_res = ColumnUInt8::create();
499
500
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
30
            vec_res.resize(col_left->size());
502
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
30
                              typename PrimitiveTypeTraits<PT>::CppType,
504
30
                              Op<PT>>::vector_constant(col_left->get_data(),
505
30
                                                       col_right->get_element(0), vec_res);
506
507
30
            block.replace_by_position(result, std::move(col_res));
508
782
        } else if (left_is_const && !right_is_const) {
509
782
            auto col_res = ColumnUInt8::create();
510
511
782
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
782
            vec_res.resize(col_right->size());
513
782
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
782
                              typename PrimitiveTypeTraits<PT>::CppType,
515
782
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
782
                                                       col_right->get_data(), vec_res);
517
518
782
            block.replace_by_position(result, std::move(col_res));
519
782
        }
520
1.16k
        return Status::OK();
521
1.16k
    }
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.05k
                            const ColumnPtr& col_right_ptr) const {
478
1.05k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.05k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.05k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.05k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.05k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.05k
        if (!left_is_const && !right_is_const) {
487
1.01k
            auto col_res = ColumnUInt8::create();
488
489
1.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1.01k
            vec_res.resize(col_left->get_data().size());
491
1.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1.01k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1.01k
                                                     vec_res);
495
496
1.01k
            block.replace_by_position(result, std::move(col_res));
497
1.01k
        } 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.05k
        return Status::OK();
521
1.05k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
3
                            const ColumnPtr& col_right_ptr) const {
478
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
3
        DCHECK(!(left_is_const && right_is_const));
485
486
3
        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
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
3
        return Status::OK();
521
3
    }
_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.25k
                            const ColumnPtr& col_right_ptr) const {
478
1.25k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.25k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.25k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.25k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.25k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.25k
        if (!left_is_const && !right_is_const) {
487
61
            auto col_res = ColumnUInt8::create();
488
489
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
61
            vec_res.resize(col_left->get_data().size());
491
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
61
                              typename PrimitiveTypeTraits<PT>::CppType,
493
61
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
61
                                                     vec_res);
495
496
61
            block.replace_by_position(result, std::move(col_res));
497
1.19k
        } else if (!left_is_const && right_is_const) {
498
962
            auto col_res = ColumnUInt8::create();
499
500
962
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
962
            vec_res.resize(col_left->size());
502
962
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
962
                              typename PrimitiveTypeTraits<PT>::CppType,
504
962
                              Op<PT>>::vector_constant(col_left->get_data(),
505
962
                                                       col_right->get_element(0), vec_res);
506
507
962
            block.replace_by_position(result, std::move(col_res));
508
962
        } 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.25k
        return Status::OK();
521
1.25k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2.37k
                            const ColumnPtr& col_right_ptr) const {
478
2.37k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.37k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.37k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.37k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.37k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.37k
        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
2.24k
        } else if (!left_is_const && right_is_const) {
498
2.00k
            auto col_res = ColumnUInt8::create();
499
500
2.00k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
2.00k
            vec_res.resize(col_left->size());
502
2.00k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
2.00k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
2.00k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
2.00k
                                                       col_right->get_element(0), vec_res);
506
507
2.00k
            block.replace_by_position(result, std::move(col_res));
508
2.00k
        } 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.37k
        return Status::OK();
521
2.37k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
13.6k
                            const ColumnPtr& col_right_ptr) const {
478
13.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
13.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
13.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
13.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
13.6k
        DCHECK(!(left_is_const && right_is_const));
485
486
13.6k
        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
13.5k
        } else if (!left_is_const && right_is_const) {
498
10.2k
            auto col_res = ColumnUInt8::create();
499
500
10.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
10.2k
            vec_res.resize(col_left->size());
502
10.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
10.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
10.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
10.2k
                                                       col_right->get_element(0), vec_res);
506
507
10.2k
            block.replace_by_position(result, std::move(col_res));
508
10.2k
        } 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.6k
        return Status::OK();
521
13.6k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
2.61k
                            const ColumnPtr& col_right_ptr) const {
478
2.61k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.61k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.61k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.61k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.61k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.61k
        if (!left_is_const && !right_is_const) {
487
181
            auto col_res = ColumnUInt8::create();
488
489
181
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
181
            vec_res.resize(col_left->get_data().size());
491
181
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
181
                              typename PrimitiveTypeTraits<PT>::CppType,
493
181
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
181
                                                     vec_res);
495
496
181
            block.replace_by_position(result, std::move(col_res));
497
2.43k
        } else if (!left_is_const && right_is_const) {
498
1.91k
            auto col_res = ColumnUInt8::create();
499
500
1.91k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1.91k
            vec_res.resize(col_left->size());
502
1.91k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1.91k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1.91k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1.91k
                                                       col_right->get_element(0), vec_res);
506
507
1.91k
            block.replace_by_position(result, std::move(col_res));
508
1.91k
        } else if (left_is_const && !right_is_const) {
509
517
            auto col_res = ColumnUInt8::create();
510
511
517
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
517
            vec_res.resize(col_right->size());
513
517
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
517
                              typename PrimitiveTypeTraits<PT>::CppType,
515
517
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
517
                                                       col_right->get_data(), vec_res);
517
518
517
            block.replace_by_position(result, std::move(col_res));
519
517
        }
520
2.61k
        return Status::OK();
521
2.61k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
221
                            const ColumnPtr& col_right_ptr) const {
478
221
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
221
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
221
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
221
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
221
        DCHECK(!(left_is_const && right_is_const));
485
486
221
        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
219
        } else if (!left_is_const && right_is_const) {
498
202
            auto col_res = ColumnUInt8::create();
499
500
202
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
202
            vec_res.resize(col_left->size());
502
202
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
202
                              typename PrimitiveTypeTraits<PT>::CppType,
504
202
                              Op<PT>>::vector_constant(col_left->get_data(),
505
202
                                                       col_right->get_element(0), vec_res);
506
507
202
            block.replace_by_position(result, std::move(col_res));
508
202
        } else if (left_is_const && !right_is_const) {
509
18
            auto col_res = ColumnUInt8::create();
510
511
18
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
18
            vec_res.resize(col_right->size());
513
18
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
18
                              typename PrimitiveTypeTraits<PT>::CppType,
515
18
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
18
                                                       col_right->get_data(), vec_res);
517
518
18
            block.replace_by_position(result, std::move(col_res));
519
18
        }
520
221
        return Status::OK();
521
221
    }
_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
220
                            const ColumnPtr& col_right_ptr) const {
478
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
220
        DCHECK(!(left_is_const && right_is_const));
485
486
220
        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
200
        } else if (!left_is_const && right_is_const) {
498
200
            auto col_res = ColumnUInt8::create();
499
500
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
200
            vec_res.resize(col_left->size());
502
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
200
                              typename PrimitiveTypeTraits<PT>::CppType,
504
200
                              Op<PT>>::vector_constant(col_left->get_data(),
505
200
                                                       col_right->get_element(0), vec_res);
506
507
200
            block.replace_by_position(result, std::move(col_res));
508
200
        } 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
220
        return Status::OK();
521
220
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_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
29
            auto col_res = ColumnUInt8::create();
488
489
29
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
29
            vec_res.resize(col_left->get_data().size());
491
29
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
29
                              typename PrimitiveTypeTraits<PT>::CppType,
493
29
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
29
                                                     vec_res);
495
496
29
            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
536
        return Status::OK();
521
536
    }
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
6
                            const ColumnPtr& col_right_ptr) const {
478
6
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
6
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
6
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
6
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
6
        DCHECK(!(left_is_const && right_is_const));
485
486
6
        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
6
        } else if (!left_is_const && right_is_const) {
498
6
            auto col_res = ColumnUInt8::create();
499
500
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
6
            vec_res.resize(col_left->size());
502
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
6
                              typename PrimitiveTypeTraits<PT>::CppType,
504
6
                              Op<PT>>::vector_constant(col_left->get_data(),
505
6
                                                       col_right->get_element(0), vec_res);
506
507
6
            block.replace_by_position(result, std::move(col_res));
508
6
        } 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
        return Status::OK();
521
6
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
436
                            const ColumnPtr& col_right_ptr) const {
478
436
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
436
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
436
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
436
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
436
        DCHECK(!(left_is_const && right_is_const));
485
486
436
        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
435
        } else if (!left_is_const && right_is_const) {
498
429
            auto col_res = ColumnUInt8::create();
499
500
429
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
429
            vec_res.resize(col_left->size());
502
429
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
429
                              typename PrimitiveTypeTraits<PT>::CppType,
504
429
                              Op<PT>>::vector_constant(col_left->get_data(),
505
429
                                                       col_right->get_element(0), vec_res);
506
507
429
            block.replace_by_position(result, std::move(col_res));
508
429
        } 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
436
        return Status::OK();
521
436
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
123
                            const ColumnPtr& col_right_ptr) const {
478
123
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
123
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
123
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
123
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
123
        DCHECK(!(left_is_const && right_is_const));
485
486
123
        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
117
        } else if (!left_is_const && right_is_const) {
498
117
            auto col_res = ColumnUInt8::create();
499
500
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
117
            vec_res.resize(col_left->size());
502
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
117
                              typename PrimitiveTypeTraits<PT>::CppType,
504
117
                              Op<PT>>::vector_constant(col_left->get_data(),
505
117
                                                       col_right->get_element(0), vec_res);
506
507
117
            block.replace_by_position(result, std::move(col_res));
508
117
        } 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
123
        return Status::OK();
521
123
    }
_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
63
                            const ColumnPtr& col_right_ptr) const {
478
63
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
63
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
63
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
63
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
63
        DCHECK(!(left_is_const && right_is_const));
485
486
63
        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
63
        } else if (!left_is_const && right_is_const) {
498
63
            auto col_res = ColumnUInt8::create();
499
500
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
63
            vec_res.resize(col_left->size());
502
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
63
                              typename PrimitiveTypeTraits<PT>::CppType,
504
63
                              Op<PT>>::vector_constant(col_left->get_data(),
505
63
                                                       col_right->get_element(0), vec_res);
506
507
63
            block.replace_by_position(result, std::move(col_res));
508
63
        } 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
63
        return Status::OK();
521
63
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
96
                            const ColumnPtr& col_right_ptr) const {
478
96
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
96
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
96
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
96
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
96
        DCHECK(!(left_is_const && right_is_const));
485
486
96
        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
96
        } else if (!left_is_const && right_is_const) {
498
96
            auto col_res = ColumnUInt8::create();
499
500
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
96
            vec_res.resize(col_left->size());
502
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
96
                              typename PrimitiveTypeTraits<PT>::CppType,
504
96
                              Op<PT>>::vector_constant(col_left->get_data(),
505
96
                                                       col_right->get_element(0), vec_res);
506
507
96
            block.replace_by_position(result, std::move(col_res));
508
96
        } 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
96
        return Status::OK();
521
96
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1.26k
                            const ColumnPtr& col_right_ptr) const {
478
1.26k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.26k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.26k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.26k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.26k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.26k
        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
1.24k
        } else if (!left_is_const && right_is_const) {
498
1.24k
            auto col_res = ColumnUInt8::create();
499
500
1.24k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1.24k
            vec_res.resize(col_left->size());
502
1.24k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1.24k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1.24k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1.24k
                                                       col_right->get_element(0), vec_res);
506
507
1.24k
            block.replace_by_position(result, std::move(col_res));
508
1.24k
        } 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.26k
        return Status::OK();
521
1.26k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
761
                            const ColumnPtr& col_right_ptr) const {
478
761
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
761
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
761
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
761
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
761
        DCHECK(!(left_is_const && right_is_const));
485
486
761
        if (!left_is_const && !right_is_const) {
487
17
            auto col_res = ColumnUInt8::create();
488
489
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
17
            vec_res.resize(col_left->get_data().size());
491
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
17
                              typename PrimitiveTypeTraits<PT>::CppType,
493
17
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
17
                                                     vec_res);
495
496
17
            block.replace_by_position(result, std::move(col_res));
497
744
        } else if (!left_is_const && right_is_const) {
498
744
            auto col_res = ColumnUInt8::create();
499
500
744
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
744
            vec_res.resize(col_left->size());
502
744
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
744
                              typename PrimitiveTypeTraits<PT>::CppType,
504
744
                              Op<PT>>::vector_constant(col_left->get_data(),
505
744
                                                       col_right->get_element(0), vec_res);
506
507
744
            block.replace_by_position(result, std::move(col_res));
508
744
        } 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
761
        return Status::OK();
521
761
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_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
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
8
        } else if (!left_is_const && right_is_const) {
498
8
            auto col_res = ColumnUInt8::create();
499
500
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
8
            vec_res.resize(col_left->size());
502
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
8
                              typename PrimitiveTypeTraits<PT>::CppType,
504
8
                              Op<PT>>::vector_constant(col_left->get_data(),
505
8
                                                       col_right->get_element(0), vec_res);
506
507
8
            block.replace_by_position(result, std::move(col_res));
508
8
        } 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
    }
_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
577
                            const ColumnPtr& col_right_ptr) const {
478
577
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
577
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
577
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
577
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
577
        DCHECK(!(left_is_const && right_is_const));
485
486
577
        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
469
        } else if (!left_is_const && right_is_const) {
498
469
            auto col_res = ColumnUInt8::create();
499
500
469
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
469
            vec_res.resize(col_left->size());
502
469
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
469
                              typename PrimitiveTypeTraits<PT>::CppType,
504
469
                              Op<PT>>::vector_constant(col_left->get_data(),
505
469
                                                       col_right->get_element(0), vec_res);
506
507
469
            block.replace_by_position(result, std::move(col_res));
508
469
        } 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
577
        return Status::OK();
521
577
    }
_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
127
                            const ColumnPtr& col_right_ptr) const {
478
127
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
127
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
127
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
127
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
127
        DCHECK(!(left_is_const && right_is_const));
485
486
127
        if (!left_is_const && !right_is_const) {
487
22
            auto col_res = ColumnUInt8::create();
488
489
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
22
            vec_res.resize(col_left->get_data().size());
491
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
22
                              typename PrimitiveTypeTraits<PT>::CppType,
493
22
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
22
                                                     vec_res);
495
496
22
            block.replace_by_position(result, std::move(col_res));
497
105
        } else if (!left_is_const && right_is_const) {
498
105
            auto col_res = ColumnUInt8::create();
499
500
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
105
            vec_res.resize(col_left->size());
502
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
105
                              typename PrimitiveTypeTraits<PT>::CppType,
504
105
                              Op<PT>>::vector_constant(col_left->get_data(),
505
105
                                                       col_right->get_element(0), vec_res);
506
507
105
            block.replace_by_position(result, std::move(col_res));
508
105
        } 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
127
        return Status::OK();
521
127
    }
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
1.95k
                            const ColumnPtr& col_right_ptr) const {
478
1.95k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.95k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.95k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.95k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.95k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.95k
        if (!left_is_const && !right_is_const) {
487
1.61k
            auto col_res = ColumnUInt8::create();
488
489
1.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
1.61k
            vec_res.resize(col_left->get_data().size());
491
1.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
1.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
493
1.61k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
1.61k
                                                     vec_res);
495
496
1.61k
            block.replace_by_position(result, std::move(col_res));
497
1.61k
        } else if (!left_is_const && right_is_const) {
498
337
            auto col_res = ColumnUInt8::create();
499
500
337
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
337
            vec_res.resize(col_left->size());
502
337
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
337
                              typename PrimitiveTypeTraits<PT>::CppType,
504
337
                              Op<PT>>::vector_constant(col_left->get_data(),
505
337
                                                       col_right->get_element(0), vec_res);
506
507
337
            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
1.95k
        return Status::OK();
521
1.95k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
296
                            const ColumnPtr& col_right_ptr) const {
478
296
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
296
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
296
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
296
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
296
        DCHECK(!(left_is_const && right_is_const));
485
486
296
        if (!left_is_const && !right_is_const) {
487
237
            auto col_res = ColumnUInt8::create();
488
489
237
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
237
            vec_res.resize(col_left->get_data().size());
491
237
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
237
                              typename PrimitiveTypeTraits<PT>::CppType,
493
237
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
237
                                                     vec_res);
495
496
237
            block.replace_by_position(result, std::move(col_res));
497
237
        } 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
296
        return Status::OK();
521
296
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
144
                            const ColumnPtr& col_right_ptr) const {
478
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
144
        DCHECK(!(left_is_const && right_is_const));
485
486
144
        if (!left_is_const && !right_is_const) {
487
105
            auto col_res = ColumnUInt8::create();
488
489
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
105
            vec_res.resize(col_left->get_data().size());
491
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
105
                              typename PrimitiveTypeTraits<PT>::CppType,
493
105
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
105
                                                     vec_res);
495
496
105
            block.replace_by_position(result, std::move(col_res));
497
105
        } 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
144
        return Status::OK();
521
144
    }
_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.38k
                            const ColumnPtr& col_right_ptr) const {
478
2.38k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
2.38k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
2.38k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
2.38k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
2.38k
        DCHECK(!(left_is_const && right_is_const));
485
486
2.38k
        if (!left_is_const && !right_is_const) {
487
212
            auto col_res = ColumnUInt8::create();
488
489
212
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
212
            vec_res.resize(col_left->get_data().size());
491
212
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
212
                              typename PrimitiveTypeTraits<PT>::CppType,
493
212
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
212
                                                     vec_res);
495
496
212
            block.replace_by_position(result, std::move(col_res));
497
2.17k
        } else if (!left_is_const && right_is_const) {
498
1.92k
            auto col_res = ColumnUInt8::create();
499
500
1.92k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
1.92k
            vec_res.resize(col_left->size());
502
1.92k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
1.92k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
1.92k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
1.92k
                                                       col_right->get_element(0), vec_res);
506
507
1.92k
            block.replace_by_position(result, std::move(col_res));
508
1.92k
        } else if (left_is_const && !right_is_const) {
509
252
            auto col_res = ColumnUInt8::create();
510
511
252
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
252
            vec_res.resize(col_right->size());
513
252
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
252
                              typename PrimitiveTypeTraits<PT>::CppType,
515
252
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
252
                                                       col_right->get_data(), vec_res);
517
518
252
            block.replace_by_position(result, std::move(col_res));
519
252
        }
520
2.38k
        return Status::OK();
521
2.38k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
169
                            const ColumnPtr& col_right_ptr) const {
478
169
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
169
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
169
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
169
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
169
        DCHECK(!(left_is_const && right_is_const));
485
486
169
        if (!left_is_const && !right_is_const) {
487
155
            auto col_res = ColumnUInt8::create();
488
489
155
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
155
            vec_res.resize(col_left->get_data().size());
491
155
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
155
                              typename PrimitiveTypeTraits<PT>::CppType,
493
155
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
155
                                                     vec_res);
495
496
155
            block.replace_by_position(result, std::move(col_res));
497
155
        } 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
169
        return Status::OK();
521
169
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
1.90k
                            const ColumnPtr& col_right_ptr) const {
478
1.90k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
1.90k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
1.90k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
1.90k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
1.90k
        DCHECK(!(left_is_const && right_is_const));
485
486
1.90k
        if (!left_is_const && !right_is_const) {
487
880
            auto col_res = ColumnUInt8::create();
488
489
880
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
880
            vec_res.resize(col_left->get_data().size());
491
880
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
880
                              typename PrimitiveTypeTraits<PT>::CppType,
493
880
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
880
                                                     vec_res);
495
496
880
            block.replace_by_position(result, std::move(col_res));
497
1.02k
        } else if (!left_is_const && right_is_const) {
498
909
            auto col_res = ColumnUInt8::create();
499
500
909
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
909
            vec_res.resize(col_left->size());
502
909
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
909
                              typename PrimitiveTypeTraits<PT>::CppType,
504
909
                              Op<PT>>::vector_constant(col_left->get_data(),
505
909
                                                       col_right->get_element(0), vec_res);
506
507
909
            block.replace_by_position(result, std::move(col_res));
508
909
        } else if (left_is_const && !right_is_const) {
509
119
            auto col_res = ColumnUInt8::create();
510
511
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
119
            vec_res.resize(col_right->size());
513
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
119
                              typename PrimitiveTypeTraits<PT>::CppType,
515
119
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
119
                                                       col_right->get_data(), vec_res);
517
518
119
            block.replace_by_position(result, std::move(col_res));
519
119
        }
520
1.90k
        return Status::OK();
521
1.90k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
876
                            const ColumnPtr& col_right_ptr) const {
478
876
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
876
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
876
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
876
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
876
        DCHECK(!(left_is_const && right_is_const));
485
486
876
        if (!left_is_const && !right_is_const) {
487
260
            auto col_res = ColumnUInt8::create();
488
489
260
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
260
            vec_res.resize(col_left->get_data().size());
491
260
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
260
                              typename PrimitiveTypeTraits<PT>::CppType,
493
260
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
260
                                                     vec_res);
495
496
260
            block.replace_by_position(result, std::move(col_res));
497
616
        } else if (!left_is_const && right_is_const) {
498
537
            auto col_res = ColumnUInt8::create();
499
500
537
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
537
            vec_res.resize(col_left->size());
502
537
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
537
                              typename PrimitiveTypeTraits<PT>::CppType,
504
537
                              Op<PT>>::vector_constant(col_left->get_data(),
505
537
                                                       col_right->get_element(0), vec_res);
506
507
537
            block.replace_by_position(result, std::move(col_res));
508
537
        } 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
876
        return Status::OK();
521
876
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
249
                            const ColumnPtr& col_right_ptr) const {
478
249
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
249
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
249
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
249
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
249
        DCHECK(!(left_is_const && right_is_const));
485
486
249
        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
135
        } else if (!left_is_const && right_is_const) {
498
42
            auto col_res = ColumnUInt8::create();
499
500
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
42
            vec_res.resize(col_left->size());
502
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
42
                              typename PrimitiveTypeTraits<PT>::CppType,
504
42
                              Op<PT>>::vector_constant(col_left->get_data(),
505
42
                                                       col_right->get_element(0), vec_res);
506
507
42
            block.replace_by_position(result, std::move(col_res));
508
72
        } else if (left_is_const && !right_is_const) {
509
72
            auto col_res = ColumnUInt8::create();
510
511
72
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
72
            vec_res.resize(col_right->size());
513
72
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
72
                              typename PrimitiveTypeTraits<PT>::CppType,
515
72
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
72
                                                       col_right->get_data(), vec_res);
517
518
72
            block.replace_by_position(result, std::move(col_res));
519
72
        }
520
249
        return Status::OK();
521
249
    }
_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
132
                            const ColumnPtr& col_right_ptr) const {
478
132
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
132
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
132
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
132
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
132
        DCHECK(!(left_is_const && right_is_const));
485
486
132
        if (!left_is_const && !right_is_const) {
487
132
            auto col_res = ColumnUInt8::create();
488
489
132
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
132
            vec_res.resize(col_left->get_data().size());
491
132
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
132
                              typename PrimitiveTypeTraits<PT>::CppType,
493
132
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
132
                                                     vec_res);
495
496
132
            block.replace_by_position(result, std::move(col_res));
497
132
        } 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
132
        return Status::OK();
521
132
    }
_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
139
            auto col_res = ColumnUInt8::create();
488
489
139
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
139
            vec_res.resize(col_left->get_data().size());
491
139
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
139
                              typename PrimitiveTypeTraits<PT>::CppType,
493
139
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
139
                                                     vec_res);
495
496
139
            block.replace_by_position(result, std::move(col_res));
497
955
        } else if (!left_is_const && right_is_const) {
498
955
            auto col_res = ColumnUInt8::create();
499
500
955
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
955
            vec_res.resize(col_left->size());
502
955
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
955
                              typename PrimitiveTypeTraits<PT>::CppType,
504
955
                              Op<PT>>::vector_constant(col_left->get_data(),
505
955
                                                       col_right->get_element(0), vec_res);
506
507
955
            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
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
14
                            const ColumnPtr& col_right_ptr) const {
478
14
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
14
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
14
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
14
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
14
        DCHECK(!(left_is_const && right_is_const));
485
486
14
        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
14
        } 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
14
        return Status::OK();
521
14
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
531
                            const ColumnPtr& col_right_ptr) const {
478
531
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
531
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
531
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
531
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
531
        DCHECK(!(left_is_const && right_is_const));
485
486
531
        if (!left_is_const && !right_is_const) {
487
389
            auto col_res = ColumnUInt8::create();
488
489
389
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
389
            vec_res.resize(col_left->get_data().size());
491
389
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
389
                              typename PrimitiveTypeTraits<PT>::CppType,
493
389
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
389
                                                     vec_res);
495
496
389
            block.replace_by_position(result, std::move(col_res));
497
389
        } else if (!left_is_const && right_is_const) {
498
136
            auto col_res = ColumnUInt8::create();
499
500
136
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
136
            vec_res.resize(col_left->size());
502
136
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
136
                              typename PrimitiveTypeTraits<PT>::CppType,
504
136
                              Op<PT>>::vector_constant(col_left->get_data(),
505
136
                                                       col_right->get_element(0), vec_res);
506
507
136
            block.replace_by_position(result, std::move(col_res));
508
136
        } 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
531
        return Status::OK();
521
531
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
57
                            const ColumnPtr& col_right_ptr) const {
478
57
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
57
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
57
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
57
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
57
        DCHECK(!(left_is_const && right_is_const));
485
486
57
        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
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
57
        return Status::OK();
521
57
    }
_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
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
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
85
        } else if (!left_is_const && right_is_const) {
498
85
            auto col_res = ColumnUInt8::create();
499
500
85
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
85
            vec_res.resize(col_left->size());
502
85
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
85
                              typename PrimitiveTypeTraits<PT>::CppType,
504
85
                              Op<PT>>::vector_constant(col_left->get_data(),
505
85
                                                       col_right->get_element(0), vec_res);
506
507
85
            block.replace_by_position(result, std::move(col_res));
508
85
        } 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
87
        return Status::OK();
521
87
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
141
                            const ColumnPtr& col_right_ptr) const {
478
141
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
141
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
141
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
141
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
141
        DCHECK(!(left_is_const && right_is_const));
485
486
141
        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
141
        } else if (!left_is_const && right_is_const) {
498
141
            auto col_res = ColumnUInt8::create();
499
500
141
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
141
            vec_res.resize(col_left->size());
502
141
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
141
                              typename PrimitiveTypeTraits<PT>::CppType,
504
141
                              Op<PT>>::vector_constant(col_left->get_data(),
505
141
                                                       col_right->get_element(0), vec_res);
506
507
141
            block.replace_by_position(result, std::move(col_res));
508
141
        } 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
141
        return Status::OK();
521
141
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
6.86k
                            const ColumnPtr& col_right_ptr) const {
478
6.86k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
6.86k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
6.86k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
6.86k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
6.86k
        DCHECK(!(left_is_const && right_is_const));
485
486
6.86k
        if (!left_is_const && !right_is_const) {
487
25
            auto col_res = ColumnUInt8::create();
488
489
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
25
            vec_res.resize(col_left->get_data().size());
491
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
25
                              typename PrimitiveTypeTraits<PT>::CppType,
493
25
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
25
                                                     vec_res);
495
496
25
            block.replace_by_position(result, std::move(col_res));
497
6.83k
        } else if (!left_is_const && right_is_const) {
498
6.80k
            auto col_res = ColumnUInt8::create();
499
500
6.80k
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
6.80k
            vec_res.resize(col_left->size());
502
6.80k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
6.80k
                              typename PrimitiveTypeTraits<PT>::CppType,
504
6.80k
                              Op<PT>>::vector_constant(col_left->get_data(),
505
6.80k
                                                       col_right->get_element(0), vec_res);
506
507
6.80k
            block.replace_by_position(result, std::move(col_res));
508
6.80k
        } else if (left_is_const && !right_is_const) {
509
35
            auto col_res = ColumnUInt8::create();
510
511
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
512
35
            vec_res.resize(col_right->size());
513
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
514
35
                              typename PrimitiveTypeTraits<PT>::CppType,
515
35
                              Op<PT>>::constant_vector(col_left->get_element(0),
516
35
                                                       col_right->get_data(), vec_res);
517
518
35
            block.replace_by_position(result, std::move(col_res));
519
35
        }
520
6.86k
        return Status::OK();
521
6.86k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
673
                            const ColumnPtr& col_right_ptr) const {
478
673
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
673
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
673
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
673
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
673
        DCHECK(!(left_is_const && right_is_const));
485
486
673
        if (!left_is_const && !right_is_const) {
487
72
            auto col_res = ColumnUInt8::create();
488
489
72
            ColumnUInt8::Container& vec_res = col_res->get_data();
490
72
            vec_res.resize(col_left->get_data().size());
491
72
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
492
72
                              typename PrimitiveTypeTraits<PT>::CppType,
493
72
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
494
72
                                                     vec_res);
495
496
72
            block.replace_by_position(result, std::move(col_res));
497
601
        } else if (!left_is_const && right_is_const) {
498
553
            auto col_res = ColumnUInt8::create();
499
500
553
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
553
            vec_res.resize(col_left->size());
502
553
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
553
                              typename PrimitiveTypeTraits<PT>::CppType,
504
553
                              Op<PT>>::vector_constant(col_left->get_data(),
505
553
                                                       col_right->get_element(0), vec_res);
506
507
553
            block.replace_by_position(result, std::move(col_res));
508
553
        } 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
673
        return Status::OK();
521
673
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
477
29
                            const ColumnPtr& col_right_ptr) const {
478
29
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
29
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
29
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
29
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
29
        DCHECK(!(left_is_const && right_is_const));
485
486
29
        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
29
        } 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
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
29
        return Status::OK();
521
29
    }
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
417
                            const ColumnPtr& col_right_ptr) const {
478
417
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
417
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
417
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
417
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
417
        DCHECK(!(left_is_const && right_is_const));
485
486
417
        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
313
        } else if (!left_is_const && right_is_const) {
498
313
            auto col_res = ColumnUInt8::create();
499
500
313
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
313
            vec_res.resize(col_left->size());
502
313
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
313
                              typename PrimitiveTypeTraits<PT>::CppType,
504
313
                              Op<PT>>::vector_constant(col_left->get_data(),
505
313
                                                       col_right->get_element(0), vec_res);
506
507
313
            block.replace_by_position(result, std::move(col_res));
508
313
        } 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
417
        return Status::OK();
521
417
    }
_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
114
                            const ColumnPtr& col_right_ptr) const {
478
114
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
479
114
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
480
481
114
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
482
114
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
483
484
114
        DCHECK(!(left_is_const && right_is_const));
485
486
114
        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
94
        } else if (!left_is_const && right_is_const) {
498
94
            auto col_res = ColumnUInt8::create();
499
500
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
501
94
            vec_res.resize(col_left->size());
502
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
503
94
                              typename PrimitiveTypeTraits<PT>::CppType,
504
94
                              Op<PT>>::vector_constant(col_left->get_data(),
505
94
                                                       col_right->get_element(0), vec_res);
506
507
94
            block.replace_by_position(result, std::move(col_res));
508
94
        } 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
114
        return Status::OK();
521
114
    }
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
131
        auto call = [&](const auto& type) -> bool {
526
131
            using DispatchType = std::decay_t<decltype(type)>;
527
131
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
131
                    block, result, col_left, col_right);
529
131
            return true;
530
131
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
525
136
        auto call = [&](const auto& type) -> bool {
526
136
            using DispatchType = std::decay_t<decltype(type)>;
527
136
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
136
                    block, result, col_left, col_right);
529
136
            return true;
530
136
        };
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
890
        auto call = [&](const auto& type) -> bool {
526
890
            using DispatchType = std::decay_t<decltype(type)>;
527
890
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
890
                    block, result, col_left, col_right);
529
890
            return true;
530
890
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
14
        auto call = [&](const auto& type) -> bool {
526
14
            using DispatchType = std::decay_t<decltype(type)>;
527
14
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
14
                    block, result, col_left, col_right);
529
14
            return true;
530
14
        };
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
64
        auto call = [&](const auto& type) -> bool {
526
64
            using DispatchType = std::decay_t<decltype(type)>;
527
64
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
64
                    block, result, col_left, col_right);
529
64
            return true;
530
64
        };
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
726
        auto call = [&](const auto& type) -> bool {
526
726
            using DispatchType = std::decay_t<decltype(type)>;
527
726
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
726
                    block, result, col_left, col_right);
529
726
            return true;
530
726
        };
_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
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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
525
55
        auto call = [&](const auto& type) -> bool {
526
55
            using DispatchType = std::decay_t<decltype(type)>;
527
55
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
55
                    block, result, col_left, col_right);
529
55
            return true;
530
55
        };
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
81
        auto call = [&](const auto& type) -> bool {
526
81
            using DispatchType = std::decay_t<decltype(type)>;
527
81
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
81
                    block, result, col_left, col_right);
529
81
            return true;
530
81
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
17
        auto call = [&](const auto& type) -> bool {
526
17
            using DispatchType = std::decay_t<decltype(type)>;
527
17
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
17
                    block, result, col_left, col_right);
529
17
            return true;
530
17
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
525
164
        auto call = [&](const auto& type) -> bool {
526
164
            using DispatchType = std::decay_t<decltype(type)>;
527
164
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
164
                    block, result, col_left, col_right);
529
164
            return true;
530
164
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
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
        };
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
494
        auto call = [&](const auto& type) -> bool {
526
494
            using DispatchType = std::decay_t<decltype(type)>;
527
494
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
494
                    block, result, col_left, col_right);
529
494
            return true;
530
494
        };
_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
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_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
525
72
        auto call = [&](const auto& type) -> bool {
526
72
            using DispatchType = std::decay_t<decltype(type)>;
527
72
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
72
                    block, result, col_left, col_right);
529
72
            return true;
530
72
        };
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
64
        auto call = [&](const auto& type) -> bool {
526
64
            using DispatchType = std::decay_t<decltype(type)>;
527
64
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
64
                    block, result, col_left, col_right);
529
64
            return true;
530
64
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
525
12
        auto call = [&](const auto& type) -> bool {
526
12
            using DispatchType = std::decay_t<decltype(type)>;
527
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
12
                    block, result, col_left, col_right);
529
12
            return true;
530
12
        };
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.17k
                           const ColumnWithTypeAndName& col_right) const {
525
1.17k
        auto call = [&](const auto& type) -> bool {
526
1.17k
            using DispatchType = std::decay_t<decltype(type)>;
527
1.17k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
1.17k
                    block, result, col_left, col_right);
529
1.17k
            return true;
530
1.17k
        };
531
532
1.17k
        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.17k
        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.17k
        return Status::OK();
543
1.17k
    }
_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
800
                           const ColumnWithTypeAndName& col_right) const {
525
800
        auto call = [&](const auto& type) -> bool {
526
800
            using DispatchType = std::decay_t<decltype(type)>;
527
800
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
800
                    block, result, col_left, col_right);
529
800
            return true;
530
800
        };
531
532
800
        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
800
        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
800
        return Status::OK();
543
800
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
154
                           const ColumnWithTypeAndName& col_right) const {
525
154
        auto call = [&](const auto& type) -> bool {
526
154
            using DispatchType = std::decay_t<decltype(type)>;
527
154
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
154
                    block, result, col_left, col_right);
529
154
            return true;
530
154
        };
531
532
154
        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
154
        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
154
        return Status::OK();
543
154
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
848
                           const ColumnWithTypeAndName& col_right) const {
525
848
        auto call = [&](const auto& type) -> bool {
526
848
            using DispatchType = std::decay_t<decltype(type)>;
527
848
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
848
                    block, result, col_left, col_right);
529
848
            return true;
530
848
        };
531
532
848
        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
848
        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
848
        return Status::OK();
543
848
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
524
152
                           const ColumnWithTypeAndName& col_right) const {
525
152
        auto call = [&](const auto& type) -> bool {
526
152
            using DispatchType = std::decay_t<decltype(type)>;
527
152
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
528
152
                    block, result, col_left, col_right);
529
152
            return true;
530
152
        };
531
532
152
        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
152
        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
152
        return Status::OK();
543
152
    }
544
545
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
546
22.3k
                          const IColumn* c1) const {
547
22.3k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
22.3k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
22.3k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
22.3k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
22.3k
        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
22.3k
        DCHECK(!(c0_const && c1_const));
556
22.3k
        const ColumnString::Chars* c0_const_chars = nullptr;
557
22.3k
        const ColumnString::Chars* c1_const_chars = nullptr;
558
22.3k
        ColumnString::Offset c0_const_size = 0;
559
22.3k
        ColumnString::Offset c1_const_size = 0;
560
561
22.3k
        if (c0_const) {
562
73
            const ColumnString* c0_const_string =
563
73
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
73
            if (c0_const_string) {
566
73
                c0_const_chars = &c0_const_string->get_chars();
567
73
                c0_const_size = c0_const_string->get_offsets()[0];
568
73
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
73
        }
573
574
22.3k
        if (c1_const) {
575
21.3k
            const ColumnString* c1_const_string =
576
21.3k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
21.3k
            if (c1_const_string) {
579
21.3k
                c1_const_chars = &c1_const_string->get_chars();
580
21.3k
                c1_const_size = c1_const_string->get_offsets()[0];
581
21.3k
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
21.3k
        }
586
587
22.3k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
22.3k
        auto c_res = ColumnUInt8::create();
590
22.3k
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
22.3k
        vec_res.resize(c0->size());
592
593
22.3k
        if (c0_string && c1_string) {
594
913
            StringImpl::string_vector_string_vector(
595
913
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
913
                    c1_string->get_offsets(), vec_res);
597
21.4k
        } else if (c0_string && c1_const) {
598
21.3k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
21.3k
                                               *c1_const_chars, c1_const_size, vec_res);
600
21.3k
        } else if (c0_const && c1_string) {
601
73
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
73
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
73
                                               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
22.3k
        block.replace_by_position(result, std::move(c_res));
609
22.3k
        return Status::OK();
610
22.3k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
21.0k
                          const IColumn* c1) const {
547
21.0k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
21.0k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
21.0k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
21.0k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
21.0k
        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.0k
        DCHECK(!(c0_const && c1_const));
556
21.0k
        const ColumnString::Chars* c0_const_chars = nullptr;
557
21.0k
        const ColumnString::Chars* c1_const_chars = nullptr;
558
21.0k
        ColumnString::Offset c0_const_size = 0;
559
21.0k
        ColumnString::Offset c1_const_size = 0;
560
561
21.0k
        if (c0_const) {
562
11
            const ColumnString* c0_const_string =
563
11
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
11
            if (c0_const_string) {
566
11
                c0_const_chars = &c0_const_string->get_chars();
567
11
                c0_const_size = c0_const_string->get_offsets()[0];
568
11
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
11
        }
573
574
21.0k
        if (c1_const) {
575
20.5k
            const ColumnString* c1_const_string =
576
20.5k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
20.5k
            if (c1_const_string) {
579
20.5k
                c1_const_chars = &c1_const_string->get_chars();
580
20.5k
                c1_const_size = c1_const_string->get_offsets()[0];
581
20.5k
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
20.5k
        }
586
587
21.0k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
21.0k
        auto c_res = ColumnUInt8::create();
590
21.0k
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
21.0k
        vec_res.resize(c0->size());
592
593
21.0k
        if (c0_string && c1_string) {
594
476
            StringImpl::string_vector_string_vector(
595
476
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
476
                    c1_string->get_offsets(), vec_res);
597
20.5k
        } else if (c0_string && c1_const) {
598
20.5k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
20.5k
                                               *c1_const_chars, c1_const_size, vec_res);
600
20.5k
        } else if (c0_const && c1_string) {
601
11
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
11
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
11
                                               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.0k
        block.replace_by_position(result, std::move(c_res));
609
21.0k
        return Status::OK();
610
21.0k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
128
                          const IColumn* c1) const {
547
128
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
128
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
128
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
128
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
128
        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
128
        DCHECK(!(c0_const && c1_const));
556
128
        const ColumnString::Chars* c0_const_chars = nullptr;
557
128
        const ColumnString::Chars* c1_const_chars = nullptr;
558
128
        ColumnString::Offset c0_const_size = 0;
559
128
        ColumnString::Offset c1_const_size = 0;
560
561
128
        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
128
        if (c1_const) {
575
118
            const ColumnString* c1_const_string =
576
118
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
118
            if (c1_const_string) {
579
118
                c1_const_chars = &c1_const_string->get_chars();
580
118
                c1_const_size = c1_const_string->get_offsets()[0];
581
118
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
118
        }
586
587
128
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
128
        auto c_res = ColumnUInt8::create();
590
128
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
128
        vec_res.resize(c0->size());
592
593
128
        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
118
        } else if (c0_string && c1_const) {
598
118
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
118
                                               *c1_const_chars, c1_const_size, vec_res);
600
118
        } 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
128
        block.replace_by_position(result, std::move(c_res));
609
128
        return Status::OK();
610
128
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
235
                          const IColumn* c1) const {
547
235
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
235
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
235
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
235
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
235
        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
235
        DCHECK(!(c0_const && c1_const));
556
235
        const ColumnString::Chars* c0_const_chars = nullptr;
557
235
        const ColumnString::Chars* c1_const_chars = nullptr;
558
235
        ColumnString::Offset c0_const_size = 0;
559
235
        ColumnString::Offset c1_const_size = 0;
560
561
235
        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
235
        if (c1_const) {
575
233
            const ColumnString* c1_const_string =
576
233
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
233
            if (c1_const_string) {
579
233
                c1_const_chars = &c1_const_string->get_chars();
580
233
                c1_const_size = c1_const_string->get_offsets()[0];
581
233
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
233
        }
586
587
235
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
235
        auto c_res = ColumnUInt8::create();
590
235
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
235
        vec_res.resize(c0->size());
592
593
235
        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
233
        } else if (c0_string && c1_const) {
598
233
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
233
                                               *c1_const_chars, c1_const_size, vec_res);
600
233
        } 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
235
        block.replace_by_position(result, std::move(c_res));
609
235
        return Status::OK();
610
235
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
263
                          const IColumn* c1) const {
547
263
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
263
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
263
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
263
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
263
        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
263
        DCHECK(!(c0_const && c1_const));
556
263
        const ColumnString::Chars* c0_const_chars = nullptr;
557
263
        const ColumnString::Chars* c1_const_chars = nullptr;
558
263
        ColumnString::Offset c0_const_size = 0;
559
263
        ColumnString::Offset c1_const_size = 0;
560
561
263
        if (c0_const) {
562
56
            const ColumnString* c0_const_string =
563
56
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
564
565
56
            if (c0_const_string) {
566
56
                c0_const_chars = &c0_const_string->get_chars();
567
56
                c0_const_size = c0_const_string->get_offsets()[0];
568
56
            } else {
569
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
570
0
                                            c0->get_name(), name);
571
0
            }
572
56
        }
573
574
263
        if (c1_const) {
575
171
            const ColumnString* c1_const_string =
576
171
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
171
            if (c1_const_string) {
579
171
                c1_const_chars = &c1_const_string->get_chars();
580
171
                c1_const_size = c1_const_string->get_offsets()[0];
581
171
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
171
        }
586
587
263
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
263
        auto c_res = ColumnUInt8::create();
590
263
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
263
        vec_res.resize(c0->size());
592
593
263
        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
227
        } else if (c0_string && c1_const) {
598
171
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
171
                                               *c1_const_chars, c1_const_size, vec_res);
600
171
        } else if (c0_const && c1_string) {
601
56
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
602
56
                                               c1_string->get_chars(), c1_string->get_offsets(),
603
56
                                               vec_res);
604
56
        } else {
605
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
606
0
                                        c0->get_name(), c1->get_name(), name);
607
0
        }
608
263
        block.replace_by_position(result, std::move(c_res));
609
263
        return Status::OK();
610
263
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
528
                          const IColumn* c1) const {
547
528
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
528
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
528
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
528
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
528
        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
528
        DCHECK(!(c0_const && c1_const));
556
528
        const ColumnString::Chars* c0_const_chars = nullptr;
557
528
        const ColumnString::Chars* c1_const_chars = nullptr;
558
528
        ColumnString::Offset c0_const_size = 0;
559
528
        ColumnString::Offset c1_const_size = 0;
560
561
528
        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
528
        if (c1_const) {
575
133
            const ColumnString* c1_const_string =
576
133
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
577
578
133
            if (c1_const_string) {
579
133
                c1_const_chars = &c1_const_string->get_chars();
580
133
                c1_const_size = c1_const_string->get_offsets()[0];
581
133
            } else {
582
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
583
0
                                            c1->get_name(), name);
584
0
            }
585
133
        }
586
587
528
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
528
        auto c_res = ColumnUInt8::create();
590
528
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
528
        vec_res.resize(c0->size());
592
593
528
        if (c0_string && c1_string) {
594
389
            StringImpl::string_vector_string_vector(
595
389
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
596
389
                    c1_string->get_offsets(), vec_res);
597
389
        } else if (c0_string && c1_const) {
598
133
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
599
133
                                               *c1_const_chars, c1_const_size, vec_res);
600
133
        } 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
528
        block.replace_by_position(result, std::move(c_res));
609
528
        return Status::OK();
610
528
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
546
197
                          const IColumn* c1) const {
547
197
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
548
197
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
549
197
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
550
197
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
551
197
        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
197
        DCHECK(!(c0_const && c1_const));
556
197
        const ColumnString::Chars* c0_const_chars = nullptr;
557
197
        const ColumnString::Chars* c1_const_chars = nullptr;
558
197
        ColumnString::Offset c0_const_size = 0;
559
197
        ColumnString::Offset c1_const_size = 0;
560
561
197
        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
197
        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
197
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
588
589
197
        auto c_res = ColumnUInt8::create();
590
197
        ColumnUInt8::Container& vec_res = c_res->get_data();
591
197
        vec_res.resize(c0->size());
592
593
197
        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
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
197
        block.replace_by_position(result, std::move(c_res));
609
197
        return Status::OK();
610
197
    }
611
612
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
613
116
                                         const IColumn* c1) const {
614
116
        bool c0_const = is_column_const(*c0);
615
116
        bool c1_const = is_column_const(*c1);
616
617
116
        DCHECK(!(c0_const && c1_const));
618
619
116
        auto c_res = ColumnUInt8::create();
620
116
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
116
        vec_res.resize(c0->size());
622
623
116
        if (c0_const) {
624
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
115
        } else if (c1_const) {
626
93
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
93
        } else {
628
22
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
22
        }
630
631
116
        block.replace_by_position(result, std::move(c_res));
632
116
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
613
34
                                         const IColumn* c1) const {
614
34
        bool c0_const = is_column_const(*c0);
615
34
        bool c1_const = is_column_const(*c1);
616
617
34
        DCHECK(!(c0_const && c1_const));
618
619
34
        auto c_res = ColumnUInt8::create();
620
34
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
34
        vec_res.resize(c0->size());
622
623
34
        if (c0_const) {
624
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
33
        } else if (c1_const) {
626
18
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
18
        } else {
628
15
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
15
        }
630
631
34
        block.replace_by_position(result, std::move(c_res));
632
34
    }
_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
17
                                         const IColumn* c1) const {
614
17
        bool c0_const = is_column_const(*c0);
615
17
        bool c1_const = is_column_const(*c1);
616
617
17
        DCHECK(!(c0_const && c1_const));
618
619
17
        auto c_res = ColumnUInt8::create();
620
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
17
        vec_res.resize(c0->size());
622
623
17
        if (c0_const) {
624
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
17
        } else if (c1_const) {
626
16
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
16
        } else {
628
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
1
        }
630
631
17
        block.replace_by_position(result, std::move(c_res));
632
17
    }
_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
35
                                         const IColumn* c1) const {
614
35
        bool c0_const = is_column_const(*c0);
615
35
        bool c1_const = is_column_const(*c1);
616
617
35
        DCHECK(!(c0_const && c1_const));
618
619
35
        auto c_res = ColumnUInt8::create();
620
35
        ColumnUInt8::Container& vec_res = c_res->get_data();
621
35
        vec_res.resize(c0->size());
622
623
35
        if (c0_const) {
624
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
625
35
        } else if (c1_const) {
626
35
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
627
35
        } else {
628
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
629
0
        }
630
631
35
        block.replace_by_position(result, std::move(c_res));
632
35
    }
633
634
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
635
116
                           const ColumnWithTypeAndName& c1) const {
636
116
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
116
        return Status::OK();
638
116
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
635
34
                           const ColumnWithTypeAndName& c1) const {
636
34
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
34
        return Status::OK();
638
34
    }
_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
17
                           const ColumnWithTypeAndName& c1) const {
636
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
17
        return Status::OK();
638
17
    }
_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
35
                           const ColumnWithTypeAndName& c1) const {
636
35
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
637
35
        return Status::OK();
638
35
    }
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
301k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
729
270k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
729
1.23k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
729
6.76k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
729
8.84k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
729
3.84k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
729
10.5k
    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.75k
                                                const VExprSPtrs& arguments) const override {
733
1.75k
        auto op = comparison_zonemap_detail::op_from_name(name);
734
1.75k
        DORIS_CHECK(op.has_value());
735
1.75k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
1.75k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
151
                                                const VExprSPtrs& arguments) const override {
733
151
        auto op = comparison_zonemap_detail::op_from_name(name);
734
151
        DORIS_CHECK(op.has_value());
735
151
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
151
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
283
                                                const VExprSPtrs& arguments) const override {
733
283
        auto op = comparison_zonemap_detail::op_from_name(name);
734
283
        DORIS_CHECK(op.has_value());
735
283
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
283
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
398
                                                const VExprSPtrs& arguments) const override {
733
398
        auto op = comparison_zonemap_detail::op_from_name(name);
734
398
        DORIS_CHECK(op.has_value());
735
398
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
398
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
482
                                                const VExprSPtrs& arguments) const override {
733
482
        auto op = comparison_zonemap_detail::op_from_name(name);
734
482
        DORIS_CHECK(op.has_value());
735
482
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
482
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
732
263
                                                const VExprSPtrs& arguments) const override {
733
263
        auto op = comparison_zonemap_detail::op_from_name(name);
734
263
        DORIS_CHECK(op.has_value());
735
263
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
736
263
    }
737
738
32.3k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
32.3k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
32.4k
               comparison_zonemap_detail::can_evaluate(arguments);
741
32.3k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
15.5k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
15.5k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
15.5k
               comparison_zonemap_detail::can_evaluate(arguments);
741
15.5k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
1.34k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
1.34k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
1.35k
               comparison_zonemap_detail::can_evaluate(arguments);
741
1.34k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
5.62k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
5.62k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
5.67k
               comparison_zonemap_detail::can_evaluate(arguments);
741
5.62k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
4.29k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
4.29k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
4.30k
               comparison_zonemap_detail::can_evaluate(arguments);
741
4.29k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
3.67k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
3.67k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
3.67k
               comparison_zonemap_detail::can_evaluate(arguments);
741
3.67k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
738
1.88k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
739
1.88k
        return comparison_zonemap_detail::op_from_name(name).has_value() &&
740
1.89k
               comparison_zonemap_detail::can_evaluate(arguments);
741
1.88k
    }
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
836
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
836
        auto op = comparison_zonemap_detail::op_from_name(name);
752
836
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
836
    }
_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
100
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
751
100
        auto op = comparison_zonemap_detail::op_from_name(name);
752
100
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
753
100
    }
_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
340
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
340
        auto op = comparison_zonemap_detail::op_from_name(name);
764
340
        return op == comparison_zonemap_detail::Op::EQ &&
765
340
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
340
    }
_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
30
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
763
30
        auto op = comparison_zonemap_detail::op_from_name(name);
764
30
        return op == comparison_zonemap_detail::Op::EQ &&
765
30
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
766
30
    }
_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
301k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
301k
        return std::make_shared<DataTypeUInt8>();
771
301k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
270k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
270k
        return std::make_shared<DataTypeUInt8>();
771
270k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
1.22k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
1.22k
        return std::make_shared<DataTypeUInt8>();
771
1.22k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
6.76k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
6.76k
        return std::make_shared<DataTypeUInt8>();
771
6.76k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
8.84k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
8.84k
        return std::make_shared<DataTypeUInt8>();
771
8.84k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
3.84k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
3.84k
        return std::make_shared<DataTypeUInt8>();
771
3.84k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
769
10.5k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
770
10.5k
        return std::make_shared<DataTypeUInt8>();
771
10.5k
    }
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.31k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
1.31k
        DCHECK(arguments.size() == 1);
780
1.31k
        DCHECK(data_type_with_names.size() == 1);
781
1.31k
        DCHECK(iterators.size() == 1);
782
1.31k
        auto* iter = iterators[0];
783
1.31k
        auto data_type_with_name = data_type_with_names[0];
784
1.31k
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
1.31k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
298
            return Status::OK();
789
298
        }
790
1.01k
        segment_v2::InvertedIndexQueryType query_type;
791
1.01k
        std::string_view name_view(name);
792
1.01k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
695
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
695
        } else if (name_view == NameLess::name) {
795
76
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
247
        } else if (name_view == NameLessOrEquals::name) {
797
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
166
        } 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
92
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
92
        } else {
803
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
1
        }
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
884
        Field param_value;
812
884
        arguments[0].column->get(0, param_value);
813
884
        if (param_value.is_null()) {
814
2
            return Status::OK();
815
2
        }
816
882
        segment_v2::InvertedIndexParam param;
817
882
        param.column_name = data_type_with_name.first;
818
882
        param.column_type = data_type_with_name.second;
819
882
        param.query_value = param_value;
820
882
        param.query_type = query_type;
821
882
        param.num_rows = num_rows;
822
882
        param.roaring = std::make_shared<roaring::Roaring>();
823
882
        param.analyzer_ctx = analyzer_ctx;
824
882
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
738
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
738
        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
738
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
738
        bitmap_result = result;
833
738
        bitmap_result.mask_out_null();
834
835
738
        if (name_view == NameNotEquals::name) {
836
58
            roaring::Roaring full_result;
837
58
            full_result.addRange(0, num_rows);
838
58
            bitmap_result.op_not(&full_result);
839
58
        }
840
841
738
        return Status::OK();
842
738
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
660
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
660
        DCHECK(arguments.size() == 1);
780
660
        DCHECK(data_type_with_names.size() == 1);
781
660
        DCHECK(iterators.size() == 1);
782
660
        auto* iter = iterators[0];
783
660
        auto data_type_with_name = data_type_with_names[0];
784
660
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
660
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
30
            return Status::OK();
789
30
        }
790
630
        segment_v2::InvertedIndexQueryType query_type;
791
630
        std::string_view name_view(name);
792
630
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
629
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
629
        } else if (name_view == NameLess::name) {
795
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
1
        } else if (name_view == NameLessOrEquals::name) {
797
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
1
        } else if (name_view == NameGreater::name) {
799
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
1
        } else if (name_view == NameGreaterOrEquals::name) {
801
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
1
        } else {
803
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
1
        }
805
806
629
        if (segment_v2::is_range_query(query_type) &&
807
629
            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
629
        Field param_value;
812
629
        arguments[0].column->get(0, param_value);
813
629
        if (param_value.is_null()) {
814
2
            return Status::OK();
815
2
        }
816
627
        segment_v2::InvertedIndexParam param;
817
627
        param.column_name = data_type_with_name.first;
818
627
        param.column_type = data_type_with_name.second;
819
627
        param.query_value = param_value;
820
627
        param.query_type = query_type;
821
627
        param.num_rows = num_rows;
822
627
        param.roaring = std::make_shared<roaring::Roaring>();
823
627
        param.analyzer_ctx = analyzer_ctx;
824
627
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
588
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
590
        if (iter->has_null()) {
827
590
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
590
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
590
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
590
        }
831
588
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
588
        bitmap_result = result;
833
588
        bitmap_result.mask_out_null();
834
835
588
        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
588
        return Status::OK();
842
588
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
72
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
72
        DCHECK(arguments.size() == 1);
780
72
        DCHECK(data_type_with_names.size() == 1);
781
72
        DCHECK(iterators.size() == 1);
782
72
        auto* iter = iterators[0];
783
72
        auto data_type_with_name = data_type_with_names[0];
784
72
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
72
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
6
            return Status::OK();
789
6
        }
790
66
        segment_v2::InvertedIndexQueryType query_type;
791
66
        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
66
        } else if (name_view == NameLess::name) {
795
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
0
        } 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
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
58
            roaring::Roaring full_result;
837
58
            full_result.addRange(0, num_rows);
838
58
            bitmap_result.op_not(&full_result);
839
58
        }
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
36
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
36
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
36
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
36
        }
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
178
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
178
        DCHECK(arguments.size() == 1);
780
178
        DCHECK(data_type_with_names.size() == 1);
781
178
        DCHECK(iterators.size() == 1);
782
178
        auto* iter = iterators[0];
783
178
        auto data_type_with_name = data_type_with_names[0];
784
178
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
178
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
86
            return Status::OK();
789
86
        }
790
92
        segment_v2::InvertedIndexQueryType query_type;
791
92
        std::string_view name_view(name);
792
92
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
92
        } else if (name_view == NameLess::name) {
795
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
92
        } else if (name_view == NameLessOrEquals::name) {
797
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
798
92
        } else if (name_view == NameGreater::name) {
799
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
800
92
        } else if (name_view == NameGreaterOrEquals::name) {
801
92
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
802
92
        } else {
803
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
804
0
        }
805
806
92
        if (segment_v2::is_range_query(query_type) &&
807
92
            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
45
        Field param_value;
812
45
        arguments[0].column->get(0, param_value);
813
45
        if (param_value.is_null()) {
814
0
            return Status::OK();
815
0
        }
816
45
        segment_v2::InvertedIndexParam param;
817
45
        param.column_name = data_type_with_name.first;
818
45
        param.column_type = data_type_with_name.second;
819
45
        param.query_value = param_value;
820
45
        param.query_type = query_type;
821
45
        param.num_rows = num_rows;
822
45
        param.roaring = std::make_shared<roaring::Roaring>();
823
45
        param.analyzer_ctx = analyzer_ctx;
824
45
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
4
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
4
        if (iter->has_null()) {
827
4
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
4
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
4
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
4
        }
831
4
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
4
        bitmap_result = result;
833
4
        bitmap_result.mask_out_null();
834
835
4
        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
4
        return Status::OK();
842
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
778
119
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
779
119
        DCHECK(arguments.size() == 1);
780
119
        DCHECK(data_type_with_names.size() == 1);
781
119
        DCHECK(iterators.size() == 1);
782
119
        auto* iter = iterators[0];
783
119
        auto data_type_with_name = data_type_with_names[0];
784
119
        if (iter == nullptr) {
785
0
            return Status::OK();
786
0
        }
787
119
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
788
43
            return Status::OK();
789
43
        }
790
76
        segment_v2::InvertedIndexQueryType query_type;
791
76
        std::string_view name_view(name);
792
76
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
793
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
794
76
        } else if (name_view == NameLess::name) {
795
76
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
796
76
        } 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
76
        if (segment_v2::is_range_query(query_type) &&
807
76
            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
58
        Field param_value;
812
58
        arguments[0].column->get(0, param_value);
813
58
        if (param_value.is_null()) {
814
0
            return Status::OK();
815
0
        }
816
58
        segment_v2::InvertedIndexParam param;
817
58
        param.column_name = data_type_with_name.first;
818
58
        param.column_type = data_type_with_name.second;
819
58
        param.query_value = param_value;
820
58
        param.query_type = query_type;
821
58
        param.num_rows = num_rows;
822
58
        param.roaring = std::make_shared<roaring::Roaring>();
823
58
        param.analyzer_ctx = analyzer_ctx;
824
58
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
825
41
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
826
41
        if (iter->has_null()) {
827
41
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
828
41
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
829
41
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
830
41
        }
831
41
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
832
41
        bitmap_result = result;
833
41
        bitmap_result.mask_out_null();
834
835
41
        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
41
        return Status::OK();
842
41
    }
_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
92.9k
                        uint32_t result, size_t input_rows_count) const override {
849
92.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
92.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
92.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
92.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
92.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
92.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
92.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
92.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
92.9k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
464k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
464k
        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
464k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
464k
        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
92.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
185k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
185k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
185k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
185k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
92.9k
#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
92.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
92.9k
            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
155k
        auto can_compare = [](PrimitiveType t) -> bool {
907
155k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
155k
                   is_timestamp_ns_type(t);
909
155k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
56.6k
        auto can_compare = [](PrimitiveType t) -> bool {
907
56.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
56.6k
                   is_timestamp_ns_type(t);
909
56.6k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
6.84k
        auto can_compare = [](PrimitiveType t) -> bool {
907
6.84k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
6.84k
                   is_timestamp_ns_type(t);
909
6.84k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
45.6k
        auto can_compare = [](PrimitiveType t) -> bool {
907
45.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
45.6k
                   is_timestamp_ns_type(t);
909
45.6k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
7.64k
        auto can_compare = [](PrimitiveType t) -> bool {
907
7.64k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
7.64k
                   is_timestamp_ns_type(t);
909
7.64k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
20.5k
        auto can_compare = [](PrimitiveType t) -> bool {
907
20.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
20.5k
                   is_timestamp_ns_type(t);
909
20.5k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
906
18.0k
        auto can_compare = [](PrimitiveType t) -> bool {
907
18.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
18.0k
                   is_timestamp_ns_type(t);
909
18.0k
        };
910
911
92.9k
        if (can_compare(left_type->get_primitive_type()) &&
912
92.9k
            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
62.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
62.3k
        }
920
921
92.9k
        auto compare_type = left_type->get_primitive_type();
922
92.9k
        switch (compare_type) {
923
205
        case TYPE_BOOLEAN:
924
205
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
4.73k
        case TYPE_DATEV2:
926
4.73k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
927
        case TYPE_DATETIMEV2:
928
927
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
899
        case TYPE_TIMESTAMP_NS:
930
899
            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.21k
        case TYPE_SMALLINT:
936
3.21k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
28.7k
        case TYPE_INT:
938
28.7k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
9.27k
        case TYPE_BIGINT:
940
9.27k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
617
        case TYPE_LARGEINT:
942
617
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
44
        case TYPE_IPV4:
944
44
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
44
        case TYPE_IPV6:
946
44
            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
540
        case TYPE_FLOAT:
950
540
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
2.88k
        case TYPE_DOUBLE:
952
2.88k
            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
308
        case TYPE_DECIMAL32:
957
891
        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
820
        case TYPE_CHAR:
963
7.65k
        case TYPE_VARCHAR:
964
22.3k
        case TYPE_STRING:
965
22.3k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
116
        default:
967
116
            return execute_generic(block, result, col_with_type_and_name_left,
968
116
                                   col_with_type_and_name_right);
969
92.9k
        }
970
0
        return Status::OK();
971
92.9k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
40.8k
                        uint32_t result, size_t input_rows_count) const override {
849
40.8k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
40.8k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
40.8k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
40.8k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
40.8k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
40.8k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
40.8k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
40.8k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
40.8k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
40.8k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
40.8k
        right_type->get_primitive_type() == TYPE) {                                             \
863
40.8k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
40.8k
                                                         col_right_ptr, input_rows_count);      \
865
40.8k
    }                                                                                           \
866
40.8k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
40.8k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
40.8k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
40.8k
                                                          col_right_ptr, input_rows_count);     \
870
40.8k
    }
871
872
40.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
81.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
81.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
81.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
81.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
40.8k
#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.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
40.8k
            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.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
40.8k
                   is_timestamp_ns_type(t);
909
40.8k
        };
910
911
40.8k
        if (can_compare(left_type->get_primitive_type()) &&
912
40.8k
            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
15.7k
            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
15.7k
        }
920
921
40.8k
        auto compare_type = left_type->get_primitive_type();
922
40.8k
        switch (compare_type) {
923
99
        case TYPE_BOOLEAN:
924
99
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
695
        case TYPE_DATEV2:
926
695
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
448
        case TYPE_DATETIMEV2:
928
448
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
219
        case TYPE_TIMESTAMP_NS:
930
219
            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
6.30k
        case TYPE_TINYINT:
934
6.30k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
431
        case TYPE_SMALLINT:
936
431
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
3.20k
        case TYPE_INT:
938
3.20k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
3.18k
        case TYPE_BIGINT:
940
3.18k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
110
        case TYPE_LARGEINT:
942
110
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
943
22
        case TYPE_IPV4:
944
22
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
945
27
        case TYPE_IPV6:
946
27
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
947
2.79k
        case TYPE_UUID:
948
2.79k
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
96
        case TYPE_FLOAT:
950
96
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
957
        case TYPE_DOUBLE:
952
957
            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
131
        case TYPE_DECIMAL32:
957
267
        case TYPE_DECIMAL64:
958
1.15k
        case TYPE_DECIMAL128I:
959
1.17k
        case TYPE_DECIMAL256:
960
1.17k
            return execute_decimal(block, result, col_with_type_and_name_left,
961
1.17k
                                   col_with_type_and_name_right);
962
607
        case TYPE_CHAR:
963
6.78k
        case TYPE_VARCHAR:
964
21.0k
        case TYPE_STRING:
965
21.0k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
34
        default:
967
34
            return execute_generic(block, result, col_with_type_and_name_left,
968
34
                                   col_with_type_and_name_right);
969
40.8k
        }
970
0
        return Status::OK();
971
40.8k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
3.55k
                        uint32_t result, size_t input_rows_count) const override {
849
3.55k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
3.55k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
3.55k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
3.55k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
3.55k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
3.55k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
3.55k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
3.55k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
3.55k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
3.55k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
3.55k
        right_type->get_primitive_type() == TYPE) {                                             \
863
3.55k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
3.55k
                                                         col_right_ptr, input_rows_count);      \
865
3.55k
    }                                                                                           \
866
3.55k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
3.55k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
3.55k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
3.55k
                                                          col_right_ptr, input_rows_count);     \
870
3.55k
    }
871
872
3.55k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
7.10k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
7.10k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
7.10k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
7.10k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
3.55k
#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.55k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
3.55k
            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
3.55k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
3.55k
                   is_timestamp_ns_type(t);
909
3.55k
        };
910
911
3.55k
        if (can_compare(left_type->get_primitive_type()) &&
912
3.55k
            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
3.28k
            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
3.28k
        }
920
921
3.55k
        auto compare_type = left_type->get_primitive_type();
922
3.55k
        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.85k
        case TYPE_INT:
938
1.85k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
1.16k
        case TYPE_BIGINT:
940
1.16k
            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
67
        case TYPE_DECIMAL64:
958
95
        case TYPE_DECIMAL128I:
959
125
        case TYPE_DECIMAL256:
960
125
            return execute_decimal(block, result, col_with_type_and_name_left,
961
125
                                   col_with_type_and_name_right);
962
1
        case TYPE_CHAR:
963
46
        case TYPE_VARCHAR:
964
128
        case TYPE_STRING:
965
128
            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
3.55k
        }
970
0
        return Status::OK();
971
3.55k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
23.6k
                        uint32_t result, size_t input_rows_count) const override {
849
23.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
23.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
23.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
23.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
23.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
23.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
23.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
23.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
23.6k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
23.6k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
23.6k
        right_type->get_primitive_type() == TYPE) {                                             \
863
23.6k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
23.6k
                                                         col_right_ptr, input_rows_count);      \
865
23.6k
    }                                                                                           \
866
23.6k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
23.6k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
23.6k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
23.6k
                                                          col_right_ptr, input_rows_count);     \
870
23.6k
    }
871
872
23.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
47.2k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
47.2k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
47.2k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
47.2k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
23.6k
#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
23.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
23.6k
            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
23.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
23.6k
                   is_timestamp_ns_type(t);
909
23.6k
        };
910
911
23.6k
        if (can_compare(left_type->get_primitive_type()) &&
912
23.6k
            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
21.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
21.9k
        }
920
921
23.6k
        auto compare_type = left_type->get_primitive_type();
922
23.6k
        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.05k
        case TYPE_DATEV2:
926
1.05k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
3
        case TYPE_DATETIMEV2:
928
3
            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.25k
        case TYPE_TINYINT:
934
1.25k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
2.37k
        case TYPE_SMALLINT:
936
2.37k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
13.6k
        case TYPE_INT:
938
13.6k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
2.61k
        case TYPE_BIGINT:
940
2.61k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
221
        case TYPE_LARGEINT:
942
221
            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
220
        case TYPE_FLOAT:
950
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
536
        case TYPE_DOUBLE:
952
536
            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
72
        case TYPE_DECIMAL64:
958
798
        case TYPE_DECIMAL128I:
959
800
        case TYPE_DECIMAL256:
960
800
            return execute_decimal(block, result, col_with_type_and_name_left,
961
800
                                   col_with_type_and_name_right);
962
14
        case TYPE_CHAR:
963
114
        case TYPE_VARCHAR:
964
235
        case TYPE_STRING:
965
235
            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
23.6k
        }
970
0
        return Status::OK();
971
23.6k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
4.32k
                        uint32_t result, size_t input_rows_count) const override {
849
4.32k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
4.32k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
4.32k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
4.32k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
4.32k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
4.32k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
4.32k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
4.32k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
4.32k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
4.32k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
4.32k
        right_type->get_primitive_type() == TYPE) {                                             \
863
4.32k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
4.32k
                                                         col_right_ptr, input_rows_count);      \
865
4.32k
    }                                                                                           \
866
4.32k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
4.32k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
4.32k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
4.32k
                                                          col_right_ptr, input_rows_count);     \
870
4.32k
    }
871
872
4.32k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
8.65k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
8.65k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
8.64k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
8.64k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
4.32k
#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
4.32k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
4.32k
            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
4.32k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
4.32k
                   is_timestamp_ns_type(t);
909
4.32k
        };
910
911
4.32k
        if (can_compare(left_type->get_primitive_type()) &&
912
4.32k
            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
3.32k
            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
3.32k
        }
920
921
4.32k
        auto compare_type = left_type->get_primitive_type();
922
4.32k
        switch (compare_type) {
923
6
        case TYPE_BOOLEAN:
924
6
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
436
        case TYPE_DATEV2:
926
436
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
123
        case TYPE_DATETIMEV2:
928
123
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
402
        case TYPE_TIMESTAMP_NS:
930
402
            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
63
        case TYPE_TINYINT:
934
63
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
96
        case TYPE_SMALLINT:
936
96
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
1.26k
        case TYPE_INT:
938
1.26k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
761
        case TYPE_BIGINT:
940
761
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
8
        case TYPE_LARGEINT:
942
8
            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
577
        case TYPE_UUID:
948
577
            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
127
        case TYPE_DOUBLE:
952
127
            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
1
        case TYPE_DECIMAL32:
957
56
        case TYPE_DECIMAL64:
958
137
        case TYPE_DECIMAL128I:
959
154
        case TYPE_DECIMAL256:
960
154
            return execute_decimal(block, result, col_with_type_and_name_left,
961
154
                                   col_with_type_and_name_right);
962
15
        case TYPE_CHAR:
963
217
        case TYPE_VARCHAR:
964
263
        case TYPE_STRING:
965
263
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
17
        default:
967
17
            return execute_generic(block, result, col_with_type_and_name_left,
968
17
                                   col_with_type_and_name_right);
969
4.32k
        }
970
0
        return Status::OK();
971
4.32k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
11.1k
                        uint32_t result, size_t input_rows_count) const override {
849
11.1k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
11.1k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
11.1k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
11.1k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
11.1k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
11.1k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
11.1k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
11.1k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
11.1k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
11.1k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
11.1k
        right_type->get_primitive_type() == TYPE) {                                             \
863
11.1k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
11.1k
                                                         col_right_ptr, input_rows_count);      \
865
11.1k
    }                                                                                           \
866
11.1k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
11.1k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
11.1k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
11.1k
                                                          col_right_ptr, input_rows_count);     \
870
11.1k
    }
871
872
11.1k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
22.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
22.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
22.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
22.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
11.1k
#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.1k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
11.1k
            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.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
11.1k
                   is_timestamp_ns_type(t);
909
11.1k
        };
910
911
11.1k
        if (can_compare(left_type->get_primitive_type()) &&
912
11.1k
            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.32k
            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.32k
        }
920
921
11.1k
        auto compare_type = left_type->get_primitive_type();
922
11.1k
        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
1.95k
        case TYPE_DATEV2:
926
1.95k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
296
        case TYPE_DATETIMEV2:
928
296
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
929
144
        case TYPE_TIMESTAMP_NS:
930
144
            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.38k
        case TYPE_TINYINT:
934
2.38k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
169
        case TYPE_SMALLINT:
936
169
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
1.90k
        case TYPE_INT:
938
1.90k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
876
        case TYPE_BIGINT:
940
876
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
249
        case TYPE_LARGEINT:
942
249
            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
132
        case TYPE_FLOAT:
950
132
            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
164
        case TYPE_DECIMAL32:
957
353
        case TYPE_DECIMAL64:
958
847
        case TYPE_DECIMAL128I:
959
848
        case TYPE_DECIMAL256:
960
848
            return execute_decimal(block, result, col_with_type_and_name_left,
961
848
                                   col_with_type_and_name_right);
962
169
        case TYPE_CHAR:
963
366
        case TYPE_VARCHAR:
964
528
        case TYPE_STRING:
965
528
            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.1k
        }
970
0
        return Status::OK();
971
11.1k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
848
9.39k
                        uint32_t result, size_t input_rows_count) const override {
849
9.39k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
850
9.39k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
851
852
9.39k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
853
9.39k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
854
9.39k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
855
9.39k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
856
857
9.39k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
858
9.39k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
859
860
9.39k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
861
9.39k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
862
9.39k
        right_type->get_primitive_type() == TYPE) {                                             \
863
9.39k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
864
9.39k
                                                         col_right_ptr, input_rows_count);      \
865
9.39k
    }                                                                                           \
866
9.39k
    if (left_type->get_primitive_type() == TYPE &&                                              \
867
9.39k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
868
9.39k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
869
9.39k
                                                          col_right_ptr, input_rows_count);     \
870
9.39k
    }
871
872
9.39k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
873
18.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
874
18.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
875
18.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
876
18.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
877
878
9.39k
#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
9.39k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
884
9.39k
            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
9.39k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
908
9.39k
                   is_timestamp_ns_type(t);
909
9.39k
        };
910
911
9.39k
        if (can_compare(left_type->get_primitive_type()) &&
912
9.39k
            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.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
8.62k
        }
920
921
9.39k
        auto compare_type = left_type->get_primitive_type();
922
9.39k
        switch (compare_type) {
923
14
        case TYPE_BOOLEAN:
924
14
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
925
528
        case TYPE_DATEV2:
926
528
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
927
57
        case TYPE_DATETIMEV2:
928
57
            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
87
        case TYPE_TINYINT:
934
87
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
935
141
        case TYPE_SMALLINT:
936
141
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
937
6.86k
        case TYPE_INT:
938
6.86k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
939
673
        case TYPE_BIGINT:
940
673
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
941
29
        case TYPE_LARGEINT:
942
29
            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
417
        case TYPE_UUID:
948
417
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
949
20
        case TYPE_FLOAT:
950
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
951
114
        case TYPE_DOUBLE:
952
114
            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
76
        case TYPE_DECIMAL64:
958
140
        case TYPE_DECIMAL128I:
959
152
        case TYPE_DECIMAL256:
960
152
            return execute_decimal(block, result, col_with_type_and_name_left,
961
152
                                   col_with_type_and_name_right);
962
14
        case TYPE_CHAR:
963
131
        case TYPE_VARCHAR:
964
197
        case TYPE_STRING:
965
197
            return execute_string(block, result, col_left_untyped, col_right_untyped);
966
35
        default:
967
35
            return execute_generic(block, result, col_with_type_and_name_left,
968
35
                                   col_with_type_and_name_right);
969
9.39k
        }
970
0
        return Status::OK();
971
9.39k
    }
972
};
973
974
} // namespace doris