Coverage Report

Created: 2026-10-20 21:52

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
#include "storage/olap_define.h"
54
55
namespace doris {
56
/** Comparison functions: ==, !=, <, >, <=, >=.
57
  * The comparison functions always return 0 or 1 (UInt8).
58
  *
59
  * You can compare the following types:
60
  * - numbers and decimals;
61
  * - strings and fixed strings;
62
  * - dates;
63
  * - datetimes;
64
  *   within each group, but not from different groups;
65
  * - tuples (lexicographic comparison).
66
  *
67
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
68
  */
69
70
template <typename A, typename B, typename Op>
71
struct NumComparisonImpl {
72
    /// 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.
73
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
74
12.5k
                                        PaddedPODArray<UInt8>& c) {
75
12.5k
        size_t size = a.size();
76
12.5k
        const A* __restrict a_pos = a.data();
77
12.5k
        const B* __restrict b_pos = b.data();
78
12.5k
        UInt8* __restrict c_pos = c.data();
79
12.5k
        const A* __restrict a_end = a_pos + size;
80
81
6.77M
        while (a_pos < a_end) {
82
6.76M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
6.76M
            ++a_pos;
84
6.76M
            ++b_pos;
85
6.76M
            ++c_pos;
86
6.76M
        }
87
12.5k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
74
71
                                        PaddedPODArray<UInt8>& c) {
75
71
        size_t size = a.size();
76
71
        const A* __restrict a_pos = a.data();
77
71
        const B* __restrict b_pos = b.data();
78
71
        UInt8* __restrict c_pos = c.data();
79
71
        const A* __restrict a_end = a_pos + size;
80
81
146
        while (a_pos < a_end) {
82
75
            *c_pos = Op::apply(*a_pos, *b_pos);
83
75
            ++a_pos;
84
75
            ++b_pos;
85
75
            ++c_pos;
86
75
        }
87
71
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
169
                                        PaddedPODArray<UInt8>& c) {
75
169
        size_t size = a.size();
76
169
        const A* __restrict a_pos = a.data();
77
169
        const B* __restrict b_pos = b.data();
78
169
        UInt8* __restrict c_pos = c.data();
79
169
        const A* __restrict a_end = a_pos + size;
80
81
344
        while (a_pos < a_end) {
82
175
            *c_pos = Op::apply(*a_pos, *b_pos);
83
175
            ++a_pos;
84
175
            ++b_pos;
85
175
            ++c_pos;
86
175
        }
87
169
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
206
                                        PaddedPODArray<UInt8>& c) {
75
206
        size_t size = a.size();
76
206
        const A* __restrict a_pos = a.data();
77
206
        const B* __restrict b_pos = b.data();
78
206
        UInt8* __restrict c_pos = c.data();
79
206
        const A* __restrict a_end = a_pos + size;
80
81
428
        while (a_pos < a_end) {
82
222
            *c_pos = Op::apply(*a_pos, *b_pos);
83
222
            ++a_pos;
84
222
            ++b_pos;
85
222
            ++c_pos;
86
222
        }
87
206
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
116
                                        PaddedPODArray<UInt8>& c) {
75
116
        size_t size = a.size();
76
116
        const A* __restrict a_pos = a.data();
77
116
        const B* __restrict b_pos = b.data();
78
116
        UInt8* __restrict c_pos = c.data();
79
116
        const A* __restrict a_end = a_pos + size;
80
81
291
        while (a_pos < a_end) {
82
175
            *c_pos = Op::apply(*a_pos, *b_pos);
83
175
            ++a_pos;
84
175
            ++b_pos;
85
175
            ++c_pos;
86
175
        }
87
116
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
3
                                        PaddedPODArray<UInt8>& c) {
75
3
        size_t size = a.size();
76
3
        const A* __restrict a_pos = a.data();
77
3
        const B* __restrict b_pos = b.data();
78
3
        UInt8* __restrict c_pos = c.data();
79
3
        const A* __restrict a_end = a_pos + size;
80
81
13
        while (a_pos < a_end) {
82
10
            *c_pos = Op::apply(*a_pos, *b_pos);
83
10
            ++a_pos;
84
10
            ++b_pos;
85
10
            ++c_pos;
86
10
        }
87
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
189
                                        PaddedPODArray<UInt8>& c) {
75
189
        size_t size = a.size();
76
189
        const A* __restrict a_pos = a.data();
77
189
        const B* __restrict b_pos = b.data();
78
189
        UInt8* __restrict c_pos = c.data();
79
189
        const A* __restrict a_end = a_pos + size;
80
81
520
        while (a_pos < a_end) {
82
331
            *c_pos = Op::apply(*a_pos, *b_pos);
83
331
            ++a_pos;
84
331
            ++b_pos;
85
331
            ++c_pos;
86
331
        }
87
189
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
92
                                        PaddedPODArray<UInt8>& c) {
75
92
        size_t size = a.size();
76
92
        const A* __restrict a_pos = a.data();
77
92
        const B* __restrict b_pos = b.data();
78
92
        UInt8* __restrict c_pos = c.data();
79
92
        const A* __restrict a_end = a_pos + size;
80
81
184
        while (a_pos < a_end) {
82
92
            *c_pos = Op::apply(*a_pos, *b_pos);
83
92
            ++a_pos;
84
92
            ++b_pos;
85
92
            ++c_pos;
86
92
        }
87
92
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
1.02k
                                        PaddedPODArray<UInt8>& c) {
75
1.02k
        size_t size = a.size();
76
1.02k
        const A* __restrict a_pos = a.data();
77
1.02k
        const B* __restrict b_pos = b.data();
78
1.02k
        UInt8* __restrict c_pos = c.data();
79
1.02k
        const A* __restrict a_end = a_pos + size;
80
81
19.6k
        while (a_pos < a_end) {
82
18.6k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
18.6k
            ++a_pos;
84
18.6k
            ++b_pos;
85
18.6k
            ++c_pos;
86
18.6k
        }
87
1.02k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
184
                                        PaddedPODArray<UInt8>& c) {
75
184
        size_t size = a.size();
76
184
        const A* __restrict a_pos = a.data();
77
184
        const B* __restrict b_pos = b.data();
78
184
        UInt8* __restrict c_pos = c.data();
79
184
        const A* __restrict a_end = a_pos + size;
80
81
1.61k
        while (a_pos < a_end) {
82
1.42k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.42k
            ++a_pos;
84
1.42k
            ++b_pos;
85
1.42k
            ++c_pos;
86
1.42k
        }
87
184
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
52
                                        PaddedPODArray<UInt8>& c) {
75
52
        size_t size = a.size();
76
52
        const A* __restrict a_pos = a.data();
77
52
        const B* __restrict b_pos = b.data();
78
52
        UInt8* __restrict c_pos = c.data();
79
52
        const A* __restrict a_end = a_pos + size;
80
81
104
        while (a_pos < a_end) {
82
52
            *c_pos = Op::apply(*a_pos, *b_pos);
83
52
            ++a_pos;
84
52
            ++b_pos;
85
52
            ++c_pos;
86
52
        }
87
52
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
5
                                        PaddedPODArray<UInt8>& c) {
75
5
        size_t size = a.size();
76
5
        const A* __restrict a_pos = a.data();
77
5
        const B* __restrict b_pos = b.data();
78
5
        UInt8* __restrict c_pos = c.data();
79
5
        const A* __restrict a_end = a_pos + size;
80
81
10
        while (a_pos < a_end) {
82
5
            *c_pos = Op::apply(*a_pos, *b_pos);
83
5
            ++a_pos;
84
5
            ++b_pos;
85
5
            ++c_pos;
86
5
        }
87
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
13
                                        PaddedPODArray<UInt8>& c) {
75
13
        size_t size = a.size();
76
13
        const A* __restrict a_pos = a.data();
77
13
        const B* __restrict b_pos = b.data();
78
13
        UInt8* __restrict c_pos = c.data();
79
13
        const A* __restrict a_end = a_pos + size;
80
81
26
        while (a_pos < a_end) {
82
13
            *c_pos = Op::apply(*a_pos, *b_pos);
83
13
            ++a_pos;
84
13
            ++b_pos;
85
13
            ++c_pos;
86
13
        }
87
13
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
779
                                        PaddedPODArray<UInt8>& c) {
75
779
        size_t size = a.size();
76
779
        const A* __restrict a_pos = a.data();
77
779
        const B* __restrict b_pos = b.data();
78
779
        UInt8* __restrict c_pos = c.data();
79
779
        const A* __restrict a_end = a_pos + size;
80
81
38.4k
        while (a_pos < a_end) {
82
37.6k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
37.6k
            ++a_pos;
84
37.6k
            ++b_pos;
85
37.6k
            ++c_pos;
86
37.6k
        }
87
779
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
71
                                        PaddedPODArray<UInt8>& c) {
75
71
        size_t size = a.size();
76
71
        const A* __restrict a_pos = a.data();
77
71
        const B* __restrict b_pos = b.data();
78
71
        UInt8* __restrict c_pos = c.data();
79
71
        const A* __restrict a_end = a_pos + size;
80
81
161
        while (a_pos < a_end) {
82
90
            *c_pos = Op::apply(*a_pos, *b_pos);
83
90
            ++a_pos;
84
90
            ++b_pos;
85
90
            ++c_pos;
86
90
        }
87
71
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
85
                                        PaddedPODArray<UInt8>& c) {
75
85
        size_t size = a.size();
76
85
        const A* __restrict a_pos = a.data();
77
85
        const B* __restrict b_pos = b.data();
78
85
        UInt8* __restrict c_pos = c.data();
79
85
        const A* __restrict a_end = a_pos + size;
80
81
241
        while (a_pos < a_end) {
82
156
            *c_pos = Op::apply(*a_pos, *b_pos);
83
156
            ++a_pos;
84
156
            ++b_pos;
85
156
            ++c_pos;
86
156
        }
87
85
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
4
                                        PaddedPODArray<UInt8>& c) {
75
4
        size_t size = a.size();
76
4
        const A* __restrict a_pos = a.data();
77
4
        const B* __restrict b_pos = b.data();
78
4
        UInt8* __restrict c_pos = c.data();
79
4
        const A* __restrict a_end = a_pos + size;
80
81
8
        while (a_pos < a_end) {
82
4
            *c_pos = Op::apply(*a_pos, *b_pos);
83
4
            ++a_pos;
84
4
            ++b_pos;
85
4
            ++c_pos;
86
4
        }
87
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
74
39
                                        PaddedPODArray<UInt8>& c) {
75
39
        size_t size = a.size();
76
39
        const A* __restrict a_pos = a.data();
77
39
        const B* __restrict b_pos = b.data();
78
39
        UInt8* __restrict c_pos = c.data();
79
39
        const A* __restrict a_end = a_pos + size;
80
81
108
        while (a_pos < a_end) {
82
69
            *c_pos = Op::apply(*a_pos, *b_pos);
83
69
            ++a_pos;
84
69
            ++b_pos;
85
69
            ++c_pos;
86
69
        }
87
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
74
8
                                        PaddedPODArray<UInt8>& c) {
75
8
        size_t size = a.size();
76
8
        const A* __restrict a_pos = a.data();
77
8
        const B* __restrict b_pos = b.data();
78
8
        UInt8* __restrict c_pos = c.data();
79
8
        const A* __restrict a_end = a_pos + size;
80
81
16
        while (a_pos < a_end) {
82
8
            *c_pos = Op::apply(*a_pos, *b_pos);
83
8
            ++a_pos;
84
8
            ++b_pos;
85
8
            ++c_pos;
86
8
        }
87
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
74
56
                                        PaddedPODArray<UInt8>& c) {
75
56
        size_t size = a.size();
76
56
        const A* __restrict a_pos = a.data();
77
56
        const B* __restrict b_pos = b.data();
78
56
        UInt8* __restrict c_pos = c.data();
79
56
        const A* __restrict a_end = a_pos + size;
80
81
252
        while (a_pos < a_end) {
82
196
            *c_pos = Op::apply(*a_pos, *b_pos);
83
196
            ++a_pos;
84
196
            ++b_pos;
85
196
            ++c_pos;
86
196
        }
87
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
74
1.31k
                                        PaddedPODArray<UInt8>& c) {
75
1.31k
        size_t size = a.size();
76
1.31k
        const A* __restrict a_pos = a.data();
77
1.31k
        const B* __restrict b_pos = b.data();
78
1.31k
        UInt8* __restrict c_pos = c.data();
79
1.31k
        const A* __restrict a_end = a_pos + size;
80
81
378k
        while (a_pos < a_end) {
82
376k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
376k
            ++a_pos;
84
376k
            ++b_pos;
85
376k
            ++c_pos;
86
376k
        }
87
1.31k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
399
                                        PaddedPODArray<UInt8>& c) {
75
399
        size_t size = a.size();
76
399
        const A* __restrict a_pos = a.data();
77
399
        const B* __restrict b_pos = b.data();
78
399
        UInt8* __restrict c_pos = c.data();
79
399
        const A* __restrict a_end = a_pos + size;
80
81
7.62k
        while (a_pos < a_end) {
82
7.22k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
7.22k
            ++a_pos;
84
7.22k
            ++b_pos;
85
7.22k
            ++c_pos;
86
7.22k
        }
87
399
    }
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
74
20
                                        PaddedPODArray<UInt8>& c) {
75
20
        size_t size = a.size();
76
20
        const A* __restrict a_pos = a.data();
77
20
        const B* __restrict b_pos = b.data();
78
20
        UInt8* __restrict c_pos = c.data();
79
20
        const A* __restrict a_end = a_pos + size;
80
81
59
        while (a_pos < a_end) {
82
39
            *c_pos = Op::apply(*a_pos, *b_pos);
83
39
            ++a_pos;
84
39
            ++b_pos;
85
39
            ++c_pos;
86
39
        }
87
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
23
                                        PaddedPODArray<UInt8>& c) {
75
23
        size_t size = a.size();
76
23
        const A* __restrict a_pos = a.data();
77
23
        const B* __restrict b_pos = b.data();
78
23
        UInt8* __restrict c_pos = c.data();
79
23
        const A* __restrict a_end = a_pos + size;
80
81
80
        while (a_pos < a_end) {
82
57
            *c_pos = Op::apply(*a_pos, *b_pos);
83
57
            ++a_pos;
84
57
            ++b_pos;
85
57
            ++c_pos;
86
57
        }
87
23
    }
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
74
1.41k
                                        PaddedPODArray<UInt8>& c) {
75
1.41k
        size_t size = a.size();
76
1.41k
        const A* __restrict a_pos = a.data();
77
1.41k
        const B* __restrict b_pos = b.data();
78
1.41k
        UInt8* __restrict c_pos = c.data();
79
1.41k
        const A* __restrict a_end = a_pos + size;
80
81
3.87M
        while (a_pos < a_end) {
82
3.87M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
3.87M
            ++a_pos;
84
3.87M
            ++b_pos;
85
3.87M
            ++c_pos;
86
3.87M
        }
87
1.41k
    }
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
74
33
                                        PaddedPODArray<UInt8>& c) {
75
33
        size_t size = a.size();
76
33
        const A* __restrict a_pos = a.data();
77
33
        const B* __restrict b_pos = b.data();
78
33
        UInt8* __restrict c_pos = c.data();
79
33
        const A* __restrict a_end = a_pos + size;
80
81
80
        while (a_pos < a_end) {
82
47
            *c_pos = Op::apply(*a_pos, *b_pos);
83
47
            ++a_pos;
84
47
            ++b_pos;
85
47
            ++c_pos;
86
47
        }
87
33
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
2
                                        PaddedPODArray<UInt8>& c) {
75
2
        size_t size = a.size();
76
2
        const A* __restrict a_pos = a.data();
77
2
        const B* __restrict b_pos = b.data();
78
2
        UInt8* __restrict c_pos = c.data();
79
2
        const A* __restrict a_end = a_pos + size;
80
81
11
        while (a_pos < a_end) {
82
9
            *c_pos = Op::apply(*a_pos, *b_pos);
83
9
            ++a_pos;
84
9
            ++b_pos;
85
9
            ++c_pos;
86
9
        }
87
2
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
76
                                        PaddedPODArray<UInt8>& c) {
75
76
        size_t size = a.size();
76
76
        const A* __restrict a_pos = a.data();
77
76
        const B* __restrict b_pos = b.data();
78
76
        UInt8* __restrict c_pos = c.data();
79
76
        const A* __restrict a_end = a_pos + size;
80
81
398
        while (a_pos < a_end) {
82
322
            *c_pos = Op::apply(*a_pos, *b_pos);
83
322
            ++a_pos;
84
322
            ++b_pos;
85
322
            ++c_pos;
86
322
        }
87
76
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
112
                                        PaddedPODArray<UInt8>& c) {
75
112
        size_t size = a.size();
76
112
        const A* __restrict a_pos = a.data();
77
112
        const B* __restrict b_pos = b.data();
78
112
        UInt8* __restrict c_pos = c.data();
79
112
        const A* __restrict a_end = a_pos + size;
80
81
376
        while (a_pos < a_end) {
82
264
            *c_pos = Op::apply(*a_pos, *b_pos);
83
264
            ++a_pos;
84
264
            ++b_pos;
85
264
            ++c_pos;
86
264
        }
87
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
74
                                        PaddedPODArray<UInt8>& c) {
75
74
        size_t size = a.size();
76
74
        const A* __restrict a_pos = a.data();
77
74
        const B* __restrict b_pos = b.data();
78
74
        UInt8* __restrict c_pos = c.data();
79
74
        const A* __restrict a_end = a_pos + size;
80
81
8.58k
        while (a_pos < a_end) {
82
8.50k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
8.50k
            ++a_pos;
84
8.50k
            ++b_pos;
85
8.50k
            ++c_pos;
86
8.50k
        }
87
74
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
183
                                        PaddedPODArray<UInt8>& c) {
75
183
        size_t size = a.size();
76
183
        const A* __restrict a_pos = a.data();
77
183
        const B* __restrict b_pos = b.data();
78
183
        UInt8* __restrict c_pos = c.data();
79
183
        const A* __restrict a_end = a_pos + size;
80
81
800k
        while (a_pos < a_end) {
82
800k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
800k
            ++a_pos;
84
800k
            ++b_pos;
85
800k
            ++c_pos;
86
800k
        }
87
183
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
3
                                        PaddedPODArray<UInt8>& c) {
75
3
        size_t size = a.size();
76
3
        const A* __restrict a_pos = a.data();
77
3
        const B* __restrict b_pos = b.data();
78
3
        UInt8* __restrict c_pos = c.data();
79
3
        const A* __restrict a_end = a_pos + size;
80
81
9
        while (a_pos < a_end) {
82
6
            *c_pos = Op::apply(*a_pos, *b_pos);
83
6
            ++a_pos;
84
6
            ++b_pos;
85
6
            ++c_pos;
86
6
        }
87
3
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
1
                                        PaddedPODArray<UInt8>& c) {
75
1
        size_t size = a.size();
76
1
        const A* __restrict a_pos = a.data();
77
1
        const B* __restrict b_pos = b.data();
78
1
        UInt8* __restrict c_pos = c.data();
79
1
        const A* __restrict a_end = a_pos + size;
80
81
2
        while (a_pos < a_end) {
82
1
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1
            ++a_pos;
84
1
            ++b_pos;
85
1
            ++c_pos;
86
1
        }
87
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
1
                                        PaddedPODArray<UInt8>& c) {
75
1
        size_t size = a.size();
76
1
        const A* __restrict a_pos = a.data();
77
1
        const B* __restrict b_pos = b.data();
78
1
        UInt8* __restrict c_pos = c.data();
79
1
        const A* __restrict a_end = a_pos + size;
80
81
2
        while (a_pos < a_end) {
82
1
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1
            ++a_pos;
84
1
            ++b_pos;
85
1
            ++c_pos;
86
1
        }
87
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
104
                                        PaddedPODArray<UInt8>& c) {
75
104
        size_t size = a.size();
76
104
        const A* __restrict a_pos = a.data();
77
104
        const B* __restrict b_pos = b.data();
78
104
        UInt8* __restrict c_pos = c.data();
79
104
        const A* __restrict a_end = a_pos + size;
80
81
856
        while (a_pos < a_end) {
82
752
            *c_pos = Op::apply(*a_pos, *b_pos);
83
752
            ++a_pos;
84
752
            ++b_pos;
85
752
            ++c_pos;
86
752
        }
87
104
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
20
                                        PaddedPODArray<UInt8>& c) {
75
20
        size_t size = a.size();
76
20
        const A* __restrict a_pos = a.data();
77
20
        const B* __restrict b_pos = b.data();
78
20
        UInt8* __restrict c_pos = c.data();
79
20
        const A* __restrict a_end = a_pos + size;
80
81
59
        while (a_pos < a_end) {
82
39
            *c_pos = Op::apply(*a_pos, *b_pos);
83
39
            ++a_pos;
84
39
            ++b_pos;
85
39
            ++c_pos;
86
39
        }
87
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
33
                                        PaddedPODArray<UInt8>& c) {
75
33
        size_t size = a.size();
76
33
        const A* __restrict a_pos = a.data();
77
33
        const B* __restrict b_pos = b.data();
78
33
        UInt8* __restrict c_pos = c.data();
79
33
        const A* __restrict a_end = a_pos + size;
80
81
122
        while (a_pos < a_end) {
82
89
            *c_pos = Op::apply(*a_pos, *b_pos);
83
89
            ++a_pos;
84
89
            ++b_pos;
85
89
            ++c_pos;
86
89
        }
87
33
    }
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
74
1
                                        PaddedPODArray<UInt8>& c) {
75
1
        size_t size = a.size();
76
1
        const A* __restrict a_pos = a.data();
77
1
        const B* __restrict b_pos = b.data();
78
1
        UInt8* __restrict c_pos = c.data();
79
1
        const A* __restrict a_end = a_pos + size;
80
81
2
        while (a_pos < a_end) {
82
1
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1
            ++a_pos;
84
1
            ++b_pos;
85
1
            ++c_pos;
86
1
        }
87
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
7
                                        PaddedPODArray<UInt8>& c) {
75
7
        size_t size = a.size();
76
7
        const A* __restrict a_pos = a.data();
77
7
        const B* __restrict b_pos = b.data();
78
7
        UInt8* __restrict c_pos = c.data();
79
7
        const A* __restrict a_end = a_pos + size;
80
81
66
        while (a_pos < a_end) {
82
59
            *c_pos = Op::apply(*a_pos, *b_pos);
83
59
            ++a_pos;
84
59
            ++b_pos;
85
59
            ++c_pos;
86
59
        }
87
7
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
359
                                        PaddedPODArray<UInt8>& c) {
75
359
        size_t size = a.size();
76
359
        const A* __restrict a_pos = a.data();
77
359
        const B* __restrict b_pos = b.data();
78
359
        UInt8* __restrict c_pos = c.data();
79
359
        const A* __restrict a_end = a_pos + size;
80
81
1.45k
        while (a_pos < a_end) {
82
1.09k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.09k
            ++a_pos;
84
1.09k
            ++b_pos;
85
1.09k
            ++c_pos;
86
1.09k
        }
87
359
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
2
                                        PaddedPODArray<UInt8>& c) {
75
2
        size_t size = a.size();
76
2
        const A* __restrict a_pos = a.data();
77
2
        const B* __restrict b_pos = b.data();
78
2
        UInt8* __restrict c_pos = c.data();
79
2
        const A* __restrict a_end = a_pos + size;
80
81
11
        while (a_pos < a_end) {
82
9
            *c_pos = Op::apply(*a_pos, *b_pos);
83
9
            ++a_pos;
84
9
            ++b_pos;
85
9
            ++c_pos;
86
9
        }
87
2
    }
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
74
18
                                        PaddedPODArray<UInt8>& c) {
75
18
        size_t size = a.size();
76
18
        const A* __restrict a_pos = a.data();
77
18
        const B* __restrict b_pos = b.data();
78
18
        UInt8* __restrict c_pos = c.data();
79
18
        const A* __restrict a_end = a_pos + size;
80
81
4.15k
        while (a_pos < a_end) {
82
4.13k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
4.13k
            ++a_pos;
84
4.13k
            ++b_pos;
85
4.13k
            ++c_pos;
86
4.13k
        }
87
18
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
33
                                        PaddedPODArray<UInt8>& c) {
75
33
        size_t size = a.size();
76
33
        const A* __restrict a_pos = a.data();
77
33
        const B* __restrict b_pos = b.data();
78
33
        UInt8* __restrict c_pos = c.data();
79
33
        const A* __restrict a_end = a_pos + size;
80
81
12.3k
        while (a_pos < a_end) {
82
12.3k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
12.3k
            ++a_pos;
84
12.3k
            ++b_pos;
85
12.3k
            ++c_pos;
86
12.3k
        }
87
33
    }
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
74
1
                                        PaddedPODArray<UInt8>& c) {
75
1
        size_t size = a.size();
76
1
        const A* __restrict a_pos = a.data();
77
1
        const B* __restrict b_pos = b.data();
78
1
        UInt8* __restrict c_pos = c.data();
79
1
        const A* __restrict a_end = a_pos + size;
80
81
2
        while (a_pos < a_end) {
82
1
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1
            ++a_pos;
84
1
            ++b_pos;
85
1
            ++c_pos;
86
1
        }
87
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
1
                                        PaddedPODArray<UInt8>& c) {
75
1
        size_t size = a.size();
76
1
        const A* __restrict a_pos = a.data();
77
1
        const B* __restrict b_pos = b.data();
78
1
        UInt8* __restrict c_pos = c.data();
79
1
        const A* __restrict a_end = a_pos + size;
80
81
2
        while (a_pos < a_end) {
82
1
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1
            ++a_pos;
84
1
            ++b_pos;
85
1
            ++c_pos;
86
1
        }
87
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
108
                                        PaddedPODArray<UInt8>& c) {
75
108
        size_t size = a.size();
76
108
        const A* __restrict a_pos = a.data();
77
108
        const B* __restrict b_pos = b.data();
78
108
        UInt8* __restrict c_pos = c.data();
79
108
        const A* __restrict a_end = a_pos + size;
80
81
864
        while (a_pos < a_end) {
82
756
            *c_pos = Op::apply(*a_pos, *b_pos);
83
756
            ++a_pos;
84
756
            ++b_pos;
85
756
            ++c_pos;
86
756
        }
87
108
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
20
                                        PaddedPODArray<UInt8>& c) {
75
20
        size_t size = a.size();
76
20
        const A* __restrict a_pos = a.data();
77
20
        const B* __restrict b_pos = b.data();
78
20
        UInt8* __restrict c_pos = c.data();
79
20
        const A* __restrict a_end = a_pos + size;
80
81
59
        while (a_pos < a_end) {
82
39
            *c_pos = Op::apply(*a_pos, *b_pos);
83
39
            ++a_pos;
84
39
            ++b_pos;
85
39
            ++c_pos;
86
39
        }
87
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
24
                                        PaddedPODArray<UInt8>& c) {
75
24
        size_t size = a.size();
76
24
        const A* __restrict a_pos = a.data();
77
24
        const B* __restrict b_pos = b.data();
78
24
        UInt8* __restrict c_pos = c.data();
79
24
        const A* __restrict a_end = a_pos + size;
80
81
68
        while (a_pos < a_end) {
82
44
            *c_pos = Op::apply(*a_pos, *b_pos);
83
44
            ++a_pos;
84
44
            ++b_pos;
85
44
            ++c_pos;
86
44
        }
87
24
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
74
91
                                        PaddedPODArray<UInt8>& c) {
75
91
        size_t size = a.size();
76
91
        const A* __restrict a_pos = a.data();
77
91
        const B* __restrict b_pos = b.data();
78
91
        UInt8* __restrict c_pos = c.data();
79
91
        const A* __restrict a_end = a_pos + size;
80
81
356
        while (a_pos < a_end) {
82
265
            *c_pos = Op::apply(*a_pos, *b_pos);
83
265
            ++a_pos;
84
265
            ++b_pos;
85
265
            ++c_pos;
86
265
        }
87
91
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
1.75k
                                        PaddedPODArray<UInt8>& c) {
75
1.75k
        size_t size = a.size();
76
1.75k
        const A* __restrict a_pos = a.data();
77
1.75k
        const B* __restrict b_pos = b.data();
78
1.75k
        UInt8* __restrict c_pos = c.data();
79
1.75k
        const A* __restrict a_end = a_pos + size;
80
81
1.22M
        while (a_pos < a_end) {
82
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.22M
            ++a_pos;
84
1.22M
            ++b_pos;
85
1.22M
            ++c_pos;
86
1.22M
        }
87
1.75k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
236
                                        PaddedPODArray<UInt8>& c) {
75
236
        size_t size = a.size();
76
236
        const A* __restrict a_pos = a.data();
77
236
        const B* __restrict b_pos = b.data();
78
236
        UInt8* __restrict c_pos = c.data();
79
236
        const A* __restrict a_end = a_pos + size;
80
81
820
        while (a_pos < a_end) {
82
584
            *c_pos = Op::apply(*a_pos, *b_pos);
83
584
            ++a_pos;
84
584
            ++b_pos;
85
584
            ++c_pos;
86
584
        }
87
236
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
110
                                        PaddedPODArray<UInt8>& c) {
75
110
        size_t size = a.size();
76
110
        const A* __restrict a_pos = a.data();
77
110
        const B* __restrict b_pos = b.data();
78
110
        UInt8* __restrict c_pos = c.data();
79
110
        const A* __restrict a_end = a_pos + size;
80
81
231
        while (a_pos < a_end) {
82
121
            *c_pos = Op::apply(*a_pos, *b_pos);
83
121
            ++a_pos;
84
121
            ++b_pos;
85
121
            ++c_pos;
86
121
        }
87
110
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
2
                                        PaddedPODArray<UInt8>& c) {
75
2
        size_t size = a.size();
76
2
        const A* __restrict a_pos = a.data();
77
2
        const B* __restrict b_pos = b.data();
78
2
        UInt8* __restrict c_pos = c.data();
79
2
        const A* __restrict a_end = a_pos + size;
80
81
11
        while (a_pos < a_end) {
82
9
            *c_pos = Op::apply(*a_pos, *b_pos);
83
9
            ++a_pos;
84
9
            ++b_pos;
85
9
            ++c_pos;
86
9
        }
87
2
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
226
                                        PaddedPODArray<UInt8>& c) {
75
226
        size_t size = a.size();
76
226
        const A* __restrict a_pos = a.data();
77
226
        const B* __restrict b_pos = b.data();
78
226
        UInt8* __restrict c_pos = c.data();
79
226
        const A* __restrict a_end = a_pos + size;
80
81
626
        while (a_pos < a_end) {
82
400
            *c_pos = Op::apply(*a_pos, *b_pos);
83
400
            ++a_pos;
84
400
            ++b_pos;
85
400
            ++c_pos;
86
400
        }
87
226
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
156
                                        PaddedPODArray<UInt8>& c) {
75
156
        size_t size = a.size();
76
156
        const A* __restrict a_pos = a.data();
77
156
        const B* __restrict b_pos = b.data();
78
156
        UInt8* __restrict c_pos = c.data();
79
156
        const A* __restrict a_end = a_pos + size;
80
81
488
        while (a_pos < a_end) {
82
332
            *c_pos = Op::apply(*a_pos, *b_pos);
83
332
            ++a_pos;
84
332
            ++b_pos;
85
332
            ++c_pos;
86
332
        }
87
156
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
905
                                        PaddedPODArray<UInt8>& c) {
75
905
        size_t size = a.size();
76
905
        const A* __restrict a_pos = a.data();
77
905
        const B* __restrict b_pos = b.data();
78
905
        UInt8* __restrict c_pos = c.data();
79
905
        const A* __restrict a_end = a_pos + size;
80
81
18.9k
        while (a_pos < a_end) {
82
17.9k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
17.9k
            ++a_pos;
84
17.9k
            ++b_pos;
85
17.9k
            ++c_pos;
86
17.9k
        }
87
905
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
271
                                        PaddedPODArray<UInt8>& c) {
75
271
        size_t size = a.size();
76
271
        const A* __restrict a_pos = a.data();
77
271
        const B* __restrict b_pos = b.data();
78
271
        UInt8* __restrict c_pos = c.data();
79
271
        const A* __restrict a_end = a_pos + size;
80
81
349k
        while (a_pos < a_end) {
82
349k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
349k
            ++a_pos;
84
349k
            ++b_pos;
85
349k
            ++c_pos;
86
349k
        }
87
271
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
136
                                        PaddedPODArray<UInt8>& c) {
75
136
        size_t size = a.size();
76
136
        const A* __restrict a_pos = a.data();
77
136
        const B* __restrict b_pos = b.data();
78
136
        UInt8* __restrict c_pos = c.data();
79
136
        const A* __restrict a_end = a_pos + size;
80
81
446
        while (a_pos < a_end) {
82
310
            *c_pos = Op::apply(*a_pos, *b_pos);
83
310
            ++a_pos;
84
310
            ++b_pos;
85
310
            ++c_pos;
86
310
        }
87
136
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
15
                                        PaddedPODArray<UInt8>& c) {
75
15
        size_t size = a.size();
76
15
        const A* __restrict a_pos = a.data();
77
15
        const B* __restrict b_pos = b.data();
78
15
        UInt8* __restrict c_pos = c.data();
79
15
        const A* __restrict a_end = a_pos + size;
80
81
30
        while (a_pos < a_end) {
82
15
            *c_pos = Op::apply(*a_pos, *b_pos);
83
15
            ++a_pos;
84
15
            ++b_pos;
85
15
            ++c_pos;
86
15
        }
87
15
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
15
                                        PaddedPODArray<UInt8>& c) {
75
15
        size_t size = a.size();
76
15
        const A* __restrict a_pos = a.data();
77
15
        const B* __restrict b_pos = b.data();
78
15
        UInt8* __restrict c_pos = c.data();
79
15
        const A* __restrict a_end = a_pos + size;
80
81
30
        while (a_pos < a_end) {
82
15
            *c_pos = Op::apply(*a_pos, *b_pos);
83
15
            ++a_pos;
84
15
            ++b_pos;
85
15
            ++c_pos;
86
15
        }
87
15
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE44EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
110
                                        PaddedPODArray<UInt8>& c) {
75
110
        size_t size = a.size();
76
110
        const A* __restrict a_pos = a.data();
77
110
        const B* __restrict b_pos = b.data();
78
110
        UInt8* __restrict c_pos = c.data();
79
110
        const A* __restrict a_end = a_pos + size;
80
81
868
        while (a_pos < a_end) {
82
758
            *c_pos = Op::apply(*a_pos, *b_pos);
83
758
            ++a_pos;
84
758
            ++b_pos;
85
758
            ++c_pos;
86
758
        }
87
110
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
130
                                        PaddedPODArray<UInt8>& c) {
75
130
        size_t size = a.size();
76
130
        const A* __restrict a_pos = a.data();
77
130
        const B* __restrict b_pos = b.data();
78
130
        UInt8* __restrict c_pos = c.data();
79
130
        const A* __restrict a_end = a_pos + size;
80
81
453
        while (a_pos < a_end) {
82
323
            *c_pos = Op::apply(*a_pos, *b_pos);
83
323
            ++a_pos;
84
323
            ++b_pos;
85
323
            ++c_pos;
86
323
        }
87
130
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
137
                                        PaddedPODArray<UInt8>& c) {
75
137
        size_t size = a.size();
76
137
        const A* __restrict a_pos = a.data();
77
137
        const B* __restrict b_pos = b.data();
78
137
        UInt8* __restrict c_pos = c.data();
79
137
        const A* __restrict a_end = a_pos + size;
80
81
490
        while (a_pos < a_end) {
82
353
            *c_pos = Op::apply(*a_pos, *b_pos);
83
353
            ++a_pos;
84
353
            ++b_pos;
85
353
            ++c_pos;
86
353
        }
87
137
    }
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
74
374
                                        PaddedPODArray<UInt8>& c) {
75
374
        size_t size = a.size();
76
374
        const A* __restrict a_pos = a.data();
77
374
        const B* __restrict b_pos = b.data();
78
374
        UInt8* __restrict c_pos = c.data();
79
374
        const A* __restrict a_end = a_pos + size;
80
81
6.04k
        while (a_pos < a_end) {
82
5.66k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
5.66k
            ++a_pos;
84
5.66k
            ++b_pos;
85
5.66k
            ++c_pos;
86
5.66k
        }
87
374
    }
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
74
24
                                        PaddedPODArray<UInt8>& c) {
75
24
        size_t size = a.size();
76
24
        const A* __restrict a_pos = a.data();
77
24
        const B* __restrict b_pos = b.data();
78
24
        UInt8* __restrict c_pos = c.data();
79
24
        const A* __restrict a_end = a_pos + size;
80
81
62
        while (a_pos < a_end) {
82
38
            *c_pos = Op::apply(*a_pos, *b_pos);
83
38
            ++a_pos;
84
38
            ++b_pos;
85
38
            ++c_pos;
86
38
        }
87
24
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
2
                                        PaddedPODArray<UInt8>& c) {
75
2
        size_t size = a.size();
76
2
        const A* __restrict a_pos = a.data();
77
2
        const B* __restrict b_pos = b.data();
78
2
        UInt8* __restrict c_pos = c.data();
79
2
        const A* __restrict a_end = a_pos + size;
80
81
11
        while (a_pos < a_end) {
82
9
            *c_pos = Op::apply(*a_pos, *b_pos);
83
9
            ++a_pos;
84
9
            ++b_pos;
85
9
            ++c_pos;
86
9
        }
87
2
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
1
                                        PaddedPODArray<UInt8>& c) {
75
1
        size_t size = a.size();
76
1
        const A* __restrict a_pos = a.data();
77
1
        const B* __restrict b_pos = b.data();
78
1
        UInt8* __restrict c_pos = c.data();
79
1
        const A* __restrict a_end = a_pos + size;
80
81
5
        while (a_pos < a_end) {
82
4
            *c_pos = Op::apply(*a_pos, *b_pos);
83
4
            ++a_pos;
84
4
            ++b_pos;
85
4
            ++c_pos;
86
4
        }
87
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
47
                                        PaddedPODArray<UInt8>& c) {
75
47
        size_t size = a.size();
76
47
        const A* __restrict a_pos = a.data();
77
47
        const B* __restrict b_pos = b.data();
78
47
        UInt8* __restrict c_pos = c.data();
79
47
        const A* __restrict a_end = a_pos + size;
80
81
16.5k
        while (a_pos < a_end) {
82
16.4k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
16.4k
            ++a_pos;
84
16.4k
            ++b_pos;
85
16.4k
            ++c_pos;
86
16.4k
        }
87
47
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
75
                                        PaddedPODArray<UInt8>& c) {
75
75
        size_t size = a.size();
76
75
        const A* __restrict a_pos = a.data();
77
75
        const B* __restrict b_pos = b.data();
78
75
        UInt8* __restrict c_pos = c.data();
79
75
        const A* __restrict a_end = a_pos + size;
80
81
201
        while (a_pos < a_end) {
82
126
            *c_pos = Op::apply(*a_pos, *b_pos);
83
126
            ++a_pos;
84
126
            ++b_pos;
85
126
            ++c_pos;
86
126
        }
87
75
    }
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
74
104
                                        PaddedPODArray<UInt8>& c) {
75
104
        size_t size = a.size();
76
104
        const A* __restrict a_pos = a.data();
77
104
        const B* __restrict b_pos = b.data();
78
104
        UInt8* __restrict c_pos = c.data();
79
104
        const A* __restrict a_end = a_pos + size;
80
81
856
        while (a_pos < a_end) {
82
752
            *c_pos = Op::apply(*a_pos, *b_pos);
83
752
            ++a_pos;
84
752
            ++b_pos;
85
752
            ++c_pos;
86
752
        }
87
104
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
20
                                        PaddedPODArray<UInt8>& c) {
75
20
        size_t size = a.size();
76
20
        const A* __restrict a_pos = a.data();
77
20
        const B* __restrict b_pos = b.data();
78
20
        UInt8* __restrict c_pos = c.data();
79
20
        const A* __restrict a_end = a_pos + size;
80
81
59
        while (a_pos < a_end) {
82
39
            *c_pos = Op::apply(*a_pos, *b_pos);
83
39
            ++a_pos;
84
39
            ++b_pos;
85
39
            ++c_pos;
86
39
        }
87
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
20
                                        PaddedPODArray<UInt8>& c) {
75
20
        size_t size = a.size();
76
20
        const A* __restrict a_pos = a.data();
77
20
        const B* __restrict b_pos = b.data();
78
20
        UInt8* __restrict c_pos = c.data();
79
20
        const A* __restrict a_end = a_pos + size;
80
81
59
        while (a_pos < a_end) {
82
39
            *c_pos = Op::apply(*a_pos, *b_pos);
83
39
            ++a_pos;
84
39
            ++b_pos;
85
39
            ++c_pos;
86
39
        }
87
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
88
89
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
90
114k
                                          PaddedPODArray<UInt8>& c) {
91
114k
        size_t size = a.size();
92
114k
        const A* __restrict a_pos = a.data();
93
114k
        UInt8* __restrict c_pos = c.data();
94
114k
        const A* __restrict a_end = a_pos + size;
95
96
38.9M
        while (a_pos < a_end) {
97
38.8M
            *c_pos = Op::apply(*a_pos, b);
98
38.8M
            ++a_pos;
99
38.8M
            ++c_pos;
100
38.8M
        }
101
114k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
90
30
                                          PaddedPODArray<UInt8>& c) {
91
30
        size_t size = a.size();
92
30
        const A* __restrict a_pos = a.data();
93
30
        UInt8* __restrict c_pos = c.data();
94
30
        const A* __restrict a_end = a_pos + size;
95
96
179
        while (a_pos < a_end) {
97
149
            *c_pos = Op::apply(*a_pos, b);
98
149
            ++a_pos;
99
149
            ++c_pos;
100
149
        }
101
30
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
391
                                          PaddedPODArray<UInt8>& c) {
91
391
        size_t size = a.size();
92
391
        const A* __restrict a_pos = a.data();
93
391
        UInt8* __restrict c_pos = c.data();
94
391
        const A* __restrict a_end = a_pos + size;
95
96
202k
        while (a_pos < a_end) {
97
202k
            *c_pos = Op::apply(*a_pos, b);
98
202k
            ++a_pos;
99
202k
            ++c_pos;
100
202k
        }
101
391
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
191
                                          PaddedPODArray<UInt8>& c) {
91
191
        size_t size = a.size();
92
191
        const A* __restrict a_pos = a.data();
93
191
        UInt8* __restrict c_pos = c.data();
94
191
        const A* __restrict a_end = a_pos + size;
95
96
125k
        while (a_pos < a_end) {
97
125k
            *c_pos = Op::apply(*a_pos, b);
98
125k
            ++a_pos;
99
125k
            ++c_pos;
100
125k
        }
101
191
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
86
                                          PaddedPODArray<UInt8>& c) {
91
86
        size_t size = a.size();
92
86
        const A* __restrict a_pos = a.data();
93
86
        UInt8* __restrict c_pos = c.data();
94
86
        const A* __restrict a_end = a_pos + size;
95
96
178
        while (a_pos < a_end) {
97
92
            *c_pos = Op::apply(*a_pos, b);
98
92
            ++a_pos;
99
92
            ++c_pos;
100
92
        }
101
86
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
10
                                          PaddedPODArray<UInt8>& c) {
91
10
        size_t size = a.size();
92
10
        const A* __restrict a_pos = a.data();
93
10
        UInt8* __restrict c_pos = c.data();
94
10
        const A* __restrict a_end = a_pos + size;
95
96
20
        while (a_pos < a_end) {
97
10
            *c_pos = Op::apply(*a_pos, b);
98
10
            ++a_pos;
99
10
            ++c_pos;
100
10
        }
101
10
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
5.99k
                                          PaddedPODArray<UInt8>& c) {
91
5.99k
        size_t size = a.size();
92
5.99k
        const A* __restrict a_pos = a.data();
93
5.99k
        UInt8* __restrict c_pos = c.data();
94
5.99k
        const A* __restrict a_end = a_pos + size;
95
96
9.15M
        while (a_pos < a_end) {
97
9.15M
            *c_pos = Op::apply(*a_pos, b);
98
9.15M
            ++a_pos;
99
9.15M
            ++c_pos;
100
9.15M
        }
101
5.99k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
305
                                          PaddedPODArray<UInt8>& c) {
91
305
        size_t size = a.size();
92
305
        const A* __restrict a_pos = a.data();
93
305
        UInt8* __restrict c_pos = c.data();
94
305
        const A* __restrict a_end = a_pos + size;
95
96
101k
        while (a_pos < a_end) {
97
100k
            *c_pos = Op::apply(*a_pos, b);
98
100k
            ++a_pos;
99
100k
            ++c_pos;
100
100k
        }
101
305
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
3.06k
                                          PaddedPODArray<UInt8>& c) {
91
3.06k
        size_t size = a.size();
92
3.06k
        const A* __restrict a_pos = a.data();
93
3.06k
        UInt8* __restrict c_pos = c.data();
94
3.06k
        const A* __restrict a_end = a_pos + size;
95
96
204k
        while (a_pos < a_end) {
97
201k
            *c_pos = Op::apply(*a_pos, b);
98
201k
            ++a_pos;
99
201k
            ++c_pos;
100
201k
        }
101
3.06k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
7.24k
                                          PaddedPODArray<UInt8>& c) {
91
7.24k
        size_t size = a.size();
92
7.24k
        const A* __restrict a_pos = a.data();
93
7.24k
        UInt8* __restrict c_pos = c.data();
94
7.24k
        const A* __restrict a_end = a_pos + size;
95
96
5.05M
        while (a_pos < a_end) {
97
5.05M
            *c_pos = Op::apply(*a_pos, b);
98
5.05M
            ++a_pos;
99
5.05M
            ++c_pos;
100
5.05M
        }
101
7.24k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
33
                                          PaddedPODArray<UInt8>& c) {
91
33
        size_t size = a.size();
92
33
        const A* __restrict a_pos = a.data();
93
33
        UInt8* __restrict c_pos = c.data();
94
33
        const A* __restrict a_end = a_pos + size;
95
96
100k
        while (a_pos < a_end) {
97
100k
            *c_pos = Op::apply(*a_pos, b);
98
100k
            ++a_pos;
99
100k
            ++c_pos;
100
100k
        }
101
33
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
7
                                          PaddedPODArray<UInt8>& c) {
91
7
        size_t size = a.size();
92
7
        const A* __restrict a_pos = a.data();
93
7
        UInt8* __restrict c_pos = c.data();
94
7
        const A* __restrict a_end = a_pos + size;
95
96
21
        while (a_pos < a_end) {
97
14
            *c_pos = Op::apply(*a_pos, b);
98
14
            ++a_pos;
99
14
            ++c_pos;
100
14
        }
101
7
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
4
                                          PaddedPODArray<UInt8>& c) {
91
4
        size_t size = a.size();
92
4
        const A* __restrict a_pos = a.data();
93
4
        UInt8* __restrict c_pos = c.data();
94
4
        const A* __restrict a_end = a_pos + size;
95
96
8
        while (a_pos < a_end) {
97
4
            *c_pos = Op::apply(*a_pos, b);
98
4
            ++a_pos;
99
4
            ++c_pos;
100
4
        }
101
4
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2.02k
                                          PaddedPODArray<UInt8>& c) {
91
2.02k
        size_t size = a.size();
92
2.02k
        const A* __restrict a_pos = a.data();
93
2.02k
        UInt8* __restrict c_pos = c.data();
94
2.02k
        const A* __restrict a_end = a_pos + size;
95
96
68.5k
        while (a_pos < a_end) {
97
66.5k
            *c_pos = Op::apply(*a_pos, b);
98
66.5k
            ++a_pos;
99
66.5k
            ++c_pos;
100
66.5k
        }
101
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
90
766
                                          PaddedPODArray<UInt8>& c) {
91
766
        size_t size = a.size();
92
766
        const A* __restrict a_pos = a.data();
93
766
        UInt8* __restrict c_pos = c.data();
94
766
        const A* __restrict a_end = a_pos + size;
95
96
719k
        while (a_pos < a_end) {
97
718k
            *c_pos = Op::apply(*a_pos, b);
98
718k
            ++a_pos;
99
718k
            ++c_pos;
100
718k
        }
101
766
    }
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
90
31
                                          PaddedPODArray<UInt8>& c) {
91
31
        size_t size = a.size();
92
31
        const A* __restrict a_pos = a.data();
93
31
        UInt8* __restrict c_pos = c.data();
94
31
        const A* __restrict a_end = a_pos + size;
95
96
82
        while (a_pos < a_end) {
97
51
            *c_pos = Op::apply(*a_pos, b);
98
51
            ++a_pos;
99
51
            ++c_pos;
100
51
        }
101
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
90
28
                                          PaddedPODArray<UInt8>& c) {
91
28
        size_t size = a.size();
92
28
        const A* __restrict a_pos = a.data();
93
28
        UInt8* __restrict c_pos = c.data();
94
28
        const A* __restrict a_end = a_pos + size;
95
96
78
        while (a_pos < a_end) {
97
50
            *c_pos = Op::apply(*a_pos, b);
98
50
            ++a_pos;
99
50
            ++c_pos;
100
50
        }
101
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
226
                                          PaddedPODArray<UInt8>& c) {
91
226
        size_t size = a.size();
92
226
        const A* __restrict a_pos = a.data();
93
226
        UInt8* __restrict c_pos = c.data();
94
226
        const A* __restrict a_end = a_pos + size;
95
96
1.94k
        while (a_pos < a_end) {
97
1.72k
            *c_pos = Op::apply(*a_pos, b);
98
1.72k
            ++a_pos;
99
1.72k
            ++c_pos;
100
1.72k
        }
101
226
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
795
                                          PaddedPODArray<UInt8>& c) {
91
795
        size_t size = a.size();
92
795
        const A* __restrict a_pos = a.data();
93
795
        UInt8* __restrict c_pos = c.data();
94
795
        const A* __restrict a_end = a_pos + size;
95
96
5.97k
        while (a_pos < a_end) {
97
5.17k
            *c_pos = Op::apply(*a_pos, b);
98
5.17k
            ++a_pos;
99
5.17k
            ++c_pos;
100
5.17k
        }
101
795
    }
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
90
28
                                          PaddedPODArray<UInt8>& c) {
91
28
        size_t size = a.size();
92
28
        const A* __restrict a_pos = a.data();
93
28
        UInt8* __restrict c_pos = c.data();
94
28
        const A* __restrict a_end = a_pos + size;
95
96
70
        while (a_pos < a_end) {
97
42
            *c_pos = Op::apply(*a_pos, b);
98
42
            ++a_pos;
99
42
            ++c_pos;
100
42
        }
101
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
40
                                          PaddedPODArray<UInt8>& c) {
91
40
        size_t size = a.size();
92
40
        const A* __restrict a_pos = a.data();
93
40
        UInt8* __restrict c_pos = c.data();
94
40
        const A* __restrict a_end = a_pos + size;
95
96
282
        while (a_pos < a_end) {
97
242
            *c_pos = Op::apply(*a_pos, b);
98
242
            ++a_pos;
99
242
            ++c_pos;
100
242
        }
101
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
90
41
                                          PaddedPODArray<UInt8>& c) {
91
41
        size_t size = a.size();
92
41
        const A* __restrict a_pos = a.data();
93
41
        UInt8* __restrict c_pos = c.data();
94
41
        const A* __restrict a_end = a_pos + size;
95
96
149
        while (a_pos < a_end) {
97
108
            *c_pos = Op::apply(*a_pos, b);
98
108
            ++a_pos;
99
108
            ++c_pos;
100
108
        }
101
41
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
359
                                          PaddedPODArray<UInt8>& c) {
91
359
        size_t size = a.size();
92
359
        const A* __restrict a_pos = a.data();
93
359
        UInt8* __restrict c_pos = c.data();
94
359
        const A* __restrict a_end = a_pos + size;
95
96
1.67M
        while (a_pos < a_end) {
97
1.67M
            *c_pos = Op::apply(*a_pos, b);
98
1.67M
            ++a_pos;
99
1.67M
            ++c_pos;
100
1.67M
        }
101
359
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
3
                                          PaddedPODArray<UInt8>& c) {
91
3
        size_t size = a.size();
92
3
        const A* __restrict a_pos = a.data();
93
3
        UInt8* __restrict c_pos = c.data();
94
3
        const A* __restrict a_end = a_pos + size;
95
96
8
        while (a_pos < a_end) {
97
5
            *c_pos = Op::apply(*a_pos, b);
98
5
            ++a_pos;
99
5
            ++c_pos;
100
5
        }
101
3
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
59
                                          PaddedPODArray<UInt8>& c) {
91
59
        size_t size = a.size();
92
59
        const A* __restrict a_pos = a.data();
93
59
        UInt8* __restrict c_pos = c.data();
94
59
        const A* __restrict a_end = a_pos + size;
95
96
263
        while (a_pos < a_end) {
97
204
            *c_pos = Op::apply(*a_pos, b);
98
204
            ++a_pos;
99
204
            ++c_pos;
100
204
        }
101
59
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
34
                                          PaddedPODArray<UInt8>& c) {
91
34
        size_t size = a.size();
92
34
        const A* __restrict a_pos = a.data();
93
34
        UInt8* __restrict c_pos = c.data();
94
34
        const A* __restrict a_end = a_pos + size;
95
96
74
        while (a_pos < a_end) {
97
40
            *c_pos = Op::apply(*a_pos, b);
98
40
            ++a_pos;
99
40
            ++c_pos;
100
40
        }
101
34
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
39
                                          PaddedPODArray<UInt8>& c) {
91
39
        size_t size = a.size();
92
39
        const A* __restrict a_pos = a.data();
93
39
        UInt8* __restrict c_pos = c.data();
94
39
        const A* __restrict a_end = a_pos + size;
95
96
84
        while (a_pos < a_end) {
97
45
            *c_pos = Op::apply(*a_pos, b);
98
45
            ++a_pos;
99
45
            ++c_pos;
100
45
        }
101
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
90
1
                                          PaddedPODArray<UInt8>& c) {
91
1
        size_t size = a.size();
92
1
        const A* __restrict a_pos = a.data();
93
1
        UInt8* __restrict c_pos = c.data();
94
1
        const A* __restrict a_end = a_pos + size;
95
96
8
        while (a_pos < a_end) {
97
7
            *c_pos = Op::apply(*a_pos, b);
98
7
            ++a_pos;
99
7
            ++c_pos;
100
7
        }
101
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.47k
                                          PaddedPODArray<UInt8>& c) {
91
1.47k
        size_t size = a.size();
92
1.47k
        const A* __restrict a_pos = a.data();
93
1.47k
        UInt8* __restrict c_pos = c.data();
94
1.47k
        const A* __restrict a_end = a_pos + size;
95
96
13.7k
        while (a_pos < a_end) {
97
12.2k
            *c_pos = Op::apply(*a_pos, b);
98
12.2k
            ++a_pos;
99
12.2k
            ++c_pos;
100
12.2k
        }
101
1.47k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2.15k
                                          PaddedPODArray<UInt8>& c) {
91
2.15k
        size_t size = a.size();
92
2.15k
        const A* __restrict a_pos = a.data();
93
2.15k
        UInt8* __restrict c_pos = c.data();
94
2.15k
        const A* __restrict a_end = a_pos + size;
95
96
5.95k
        while (a_pos < a_end) {
97
3.80k
            *c_pos = Op::apply(*a_pos, b);
98
3.80k
            ++a_pos;
99
3.80k
            ++c_pos;
100
3.80k
        }
101
2.15k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2.01k
                                          PaddedPODArray<UInt8>& c) {
91
2.01k
        size_t size = a.size();
92
2.01k
        const A* __restrict a_pos = a.data();
93
2.01k
        UInt8* __restrict c_pos = c.data();
94
2.01k
        const A* __restrict a_end = a_pos + size;
95
96
7.38k
        while (a_pos < a_end) {
97
5.37k
            *c_pos = Op::apply(*a_pos, b);
98
5.37k
            ++a_pos;
99
5.37k
            ++c_pos;
100
5.37k
        }
101
2.01k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
242
                                          PaddedPODArray<UInt8>& c) {
91
242
        size_t size = a.size();
92
242
        const A* __restrict a_pos = a.data();
93
242
        UInt8* __restrict c_pos = c.data();
94
242
        const A* __restrict a_end = a_pos + size;
95
96
1.20k
        while (a_pos < a_end) {
97
959
            *c_pos = Op::apply(*a_pos, b);
98
959
            ++a_pos;
99
959
            ++c_pos;
100
959
        }
101
242
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
5.56k
                                          PaddedPODArray<UInt8>& c) {
91
5.56k
        size_t size = a.size();
92
5.56k
        const A* __restrict a_pos = a.data();
93
5.56k
        UInt8* __restrict c_pos = c.data();
94
5.56k
        const A* __restrict a_end = a_pos + size;
95
96
960k
        while (a_pos < a_end) {
97
955k
            *c_pos = Op::apply(*a_pos, b);
98
955k
            ++a_pos;
99
955k
            ++c_pos;
100
955k
        }
101
5.56k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
63.4k
                                          PaddedPODArray<UInt8>& c) {
91
63.4k
        size_t size = a.size();
92
63.4k
        const A* __restrict a_pos = a.data();
93
63.4k
        UInt8* __restrict c_pos = c.data();
94
63.4k
        const A* __restrict a_end = a_pos + size;
95
96
5.34M
        while (a_pos < a_end) {
97
5.28M
            *c_pos = Op::apply(*a_pos, b);
98
5.28M
            ++a_pos;
99
5.28M
            ++c_pos;
100
5.28M
        }
101
63.4k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.83k
                                          PaddedPODArray<UInt8>& c) {
91
1.83k
        size_t size = a.size();
92
1.83k
        const A* __restrict a_pos = a.data();
93
1.83k
        UInt8* __restrict c_pos = c.data();
94
1.83k
        const A* __restrict a_end = a_pos + size;
95
96
99.1k
        while (a_pos < a_end) {
97
97.3k
            *c_pos = Op::apply(*a_pos, b);
98
97.3k
            ++a_pos;
99
97.3k
            ++c_pos;
100
97.3k
        }
101
1.83k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.08k
                                          PaddedPODArray<UInt8>& c) {
91
1.08k
        size_t size = a.size();
92
1.08k
        const A* __restrict a_pos = a.data();
93
1.08k
        UInt8* __restrict c_pos = c.data();
94
1.08k
        const A* __restrict a_end = a_pos + size;
95
96
32.8k
        while (a_pos < a_end) {
97
31.7k
            *c_pos = Op::apply(*a_pos, b);
98
31.7k
            ++a_pos;
99
31.7k
            ++c_pos;
100
31.7k
        }
101
1.08k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
294
                                          PaddedPODArray<UInt8>& c) {
91
294
        size_t size = a.size();
92
294
        const A* __restrict a_pos = a.data();
93
294
        UInt8* __restrict c_pos = c.data();
94
294
        const A* __restrict a_end = a_pos + size;
95
96
1.93k
        while (a_pos < a_end) {
97
1.63k
            *c_pos = Op::apply(*a_pos, b);
98
1.63k
            ++a_pos;
99
1.63k
            ++c_pos;
100
1.63k
        }
101
294
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
64
                                          PaddedPODArray<UInt8>& c) {
91
64
        size_t size = a.size();
92
64
        const A* __restrict a_pos = a.data();
93
64
        UInt8* __restrict c_pos = c.data();
94
64
        const A* __restrict a_end = a_pos + size;
95
96
86.2k
        while (a_pos < a_end) {
97
86.1k
            *c_pos = Op::apply(*a_pos, b);
98
86.1k
            ++a_pos;
99
86.1k
            ++c_pos;
100
86.1k
        }
101
64
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
3
                                          PaddedPODArray<UInt8>& c) {
91
3
        size_t size = a.size();
92
3
        const A* __restrict a_pos = a.data();
93
3
        UInt8* __restrict c_pos = c.data();
94
3
        const A* __restrict a_end = a_pos + size;
95
96
31
        while (a_pos < a_end) {
97
28
            *c_pos = Op::apply(*a_pos, b);
98
28
            ++a_pos;
99
28
            ++c_pos;
100
28
        }
101
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2
                                          PaddedPODArray<UInt8>& c) {
91
2
        size_t size = a.size();
92
2
        const A* __restrict a_pos = a.data();
93
2
        UInt8* __restrict c_pos = c.data();
94
2
        const A* __restrict a_end = a_pos + size;
95
96
22
        while (a_pos < a_end) {
97
20
            *c_pos = Op::apply(*a_pos, b);
98
20
            ++a_pos;
99
20
            ++c_pos;
100
20
        }
101
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
90
507
                                          PaddedPODArray<UInt8>& c) {
91
507
        size_t size = a.size();
92
507
        const A* __restrict a_pos = a.data();
93
507
        UInt8* __restrict c_pos = c.data();
94
507
        const A* __restrict a_end = a_pos + size;
95
96
4.12k
        while (a_pos < a_end) {
97
3.61k
            *c_pos = Op::apply(*a_pos, b);
98
3.61k
            ++a_pos;
99
3.61k
            ++c_pos;
100
3.61k
        }
101
507
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
347
                                          PaddedPODArray<UInt8>& c) {
91
347
        size_t size = a.size();
92
347
        const A* __restrict a_pos = a.data();
93
347
        UInt8* __restrict c_pos = c.data();
94
347
        const A* __restrict a_end = a_pos + size;
95
96
7.02k
        while (a_pos < a_end) {
97
6.67k
            *c_pos = Op::apply(*a_pos, b);
98
6.67k
            ++a_pos;
99
6.67k
            ++c_pos;
100
6.67k
        }
101
347
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
305
                                          PaddedPODArray<UInt8>& c) {
91
305
        size_t size = a.size();
92
305
        const A* __restrict a_pos = a.data();
93
305
        UInt8* __restrict c_pos = c.data();
94
305
        const A* __restrict a_end = a_pos + size;
95
96
2.92k
        while (a_pos < a_end) {
97
2.61k
            *c_pos = Op::apply(*a_pos, b);
98
2.61k
            ++a_pos;
99
2.61k
            ++c_pos;
100
2.61k
        }
101
305
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
512
                                          PaddedPODArray<UInt8>& c) {
91
512
        size_t size = a.size();
92
512
        const A* __restrict a_pos = a.data();
93
512
        UInt8* __restrict c_pos = c.data();
94
512
        const A* __restrict a_end = a_pos + size;
95
96
7.46k
        while (a_pos < a_end) {
97
6.95k
            *c_pos = Op::apply(*a_pos, b);
98
6.95k
            ++a_pos;
99
6.95k
            ++c_pos;
100
6.95k
        }
101
512
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.08k
                                          PaddedPODArray<UInt8>& c) {
91
1.08k
        size_t size = a.size();
92
1.08k
        const A* __restrict a_pos = a.data();
93
1.08k
        UInt8* __restrict c_pos = c.data();
94
1.08k
        const A* __restrict a_end = a_pos + size;
95
96
609k
        while (a_pos < a_end) {
97
608k
            *c_pos = Op::apply(*a_pos, b);
98
608k
            ++a_pos;
99
608k
            ++c_pos;
100
608k
        }
101
1.08k
    }
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
90
34
                                          PaddedPODArray<UInt8>& c) {
91
34
        size_t size = a.size();
92
34
        const A* __restrict a_pos = a.data();
93
34
        UInt8* __restrict c_pos = c.data();
94
34
        const A* __restrict a_end = a_pos + size;
95
96
170k
        while (a_pos < a_end) {
97
170k
            *c_pos = Op::apply(*a_pos, b);
98
170k
            ++a_pos;
99
170k
            ++c_pos;
100
170k
        }
101
34
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
90
33
                                          PaddedPODArray<UInt8>& c) {
91
33
        size_t size = a.size();
92
33
        const A* __restrict a_pos = a.data();
93
33
        UInt8* __restrict c_pos = c.data();
94
33
        const A* __restrict a_end = a_pos + size;
95
96
103k
        while (a_pos < a_end) {
97
103k
            *c_pos = Op::apply(*a_pos, b);
98
103k
            ++a_pos;
99
103k
            ++c_pos;
100
103k
        }
101
33
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
459
                                          PaddedPODArray<UInt8>& c) {
91
459
        size_t size = a.size();
92
459
        const A* __restrict a_pos = a.data();
93
459
        UInt8* __restrict c_pos = c.data();
94
459
        const A* __restrict a_end = a_pos + size;
95
96
1.82M
        while (a_pos < a_end) {
97
1.82M
            *c_pos = Op::apply(*a_pos, b);
98
1.82M
            ++a_pos;
99
1.82M
            ++c_pos;
100
1.82M
        }
101
459
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
167
                                          PaddedPODArray<UInt8>& c) {
91
167
        size_t size = a.size();
92
167
        const A* __restrict a_pos = a.data();
93
167
        UInt8* __restrict c_pos = c.data();
94
167
        const A* __restrict a_end = a_pos + size;
95
96
710k
        while (a_pos < a_end) {
97
710k
            *c_pos = Op::apply(*a_pos, b);
98
710k
            ++a_pos;
99
710k
            ++c_pos;
100
710k
        }
101
167
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
116
                                          PaddedPODArray<UInt8>& c) {
91
116
        size_t size = a.size();
92
116
        const A* __restrict a_pos = a.data();
93
116
        UInt8* __restrict c_pos = c.data();
94
116
        const A* __restrict a_end = a_pos + size;
95
96
423
        while (a_pos < a_end) {
97
307
            *c_pos = Op::apply(*a_pos, b);
98
307
            ++a_pos;
99
307
            ++c_pos;
100
307
        }
101
116
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
82
                                          PaddedPODArray<UInt8>& c) {
91
82
        size_t size = a.size();
92
82
        const A* __restrict a_pos = a.data();
93
82
        UInt8* __restrict c_pos = c.data();
94
82
        const A* __restrict a_end = a_pos + size;
95
96
450
        while (a_pos < a_end) {
97
368
            *c_pos = Op::apply(*a_pos, b);
98
368
            ++a_pos;
99
368
            ++c_pos;
100
368
        }
101
82
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
43
                                          PaddedPODArray<UInt8>& c) {
91
43
        size_t size = a.size();
92
43
        const A* __restrict a_pos = a.data();
93
43
        UInt8* __restrict c_pos = c.data();
94
43
        const A* __restrict a_end = a_pos + size;
95
96
101
        while (a_pos < a_end) {
97
58
            *c_pos = Op::apply(*a_pos, b);
98
58
            ++a_pos;
99
58
            ++c_pos;
100
58
        }
101
43
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
35
                                          PaddedPODArray<UInt8>& c) {
91
35
        size_t size = a.size();
92
35
        const A* __restrict a_pos = a.data();
93
35
        UInt8* __restrict c_pos = c.data();
94
35
        const A* __restrict a_end = a_pos + size;
95
96
79
        while (a_pos < a_end) {
97
44
            *c_pos = Op::apply(*a_pos, b);
98
44
            ++a_pos;
99
44
            ++c_pos;
100
44
        }
101
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
90
60
                                          PaddedPODArray<UInt8>& c) {
91
60
        size_t size = a.size();
92
60
        const A* __restrict a_pos = a.data();
93
60
        UInt8* __restrict c_pos = c.data();
94
60
        const A* __restrict a_end = a_pos + size;
95
96
170k
        while (a_pos < a_end) {
97
170k
            *c_pos = Op::apply(*a_pos, b);
98
170k
            ++a_pos;
99
170k
            ++c_pos;
100
170k
        }
101
60
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
70
                                          PaddedPODArray<UInt8>& c) {
91
70
        size_t size = a.size();
92
70
        const A* __restrict a_pos = a.data();
93
70
        UInt8* __restrict c_pos = c.data();
94
70
        const A* __restrict a_end = a_pos + size;
95
96
155k
        while (a_pos < a_end) {
97
155k
            *c_pos = Op::apply(*a_pos, b);
98
155k
            ++a_pos;
99
155k
            ++c_pos;
100
155k
        }
101
70
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
57
                                          PaddedPODArray<UInt8>& c) {
91
57
        size_t size = a.size();
92
57
        const A* __restrict a_pos = a.data();
93
57
        UInt8* __restrict c_pos = c.data();
94
57
        const A* __restrict a_end = a_pos + size;
95
96
99.8k
        while (a_pos < a_end) {
97
99.7k
            *c_pos = Op::apply(*a_pos, b);
98
99.7k
            ++a_pos;
99
99.7k
            ++c_pos;
100
99.7k
        }
101
57
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
89
                                          PaddedPODArray<UInt8>& c) {
91
89
        size_t size = a.size();
92
89
        const A* __restrict a_pos = a.data();
93
89
        UInt8* __restrict c_pos = c.data();
94
89
        const A* __restrict a_end = a_pos + size;
95
96
142k
        while (a_pos < a_end) {
97
142k
            *c_pos = Op::apply(*a_pos, b);
98
142k
            ++a_pos;
99
142k
            ++c_pos;
100
142k
        }
101
89
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.14k
                                          PaddedPODArray<UInt8>& c) {
91
1.14k
        size_t size = a.size();
92
1.14k
        const A* __restrict a_pos = a.data();
93
1.14k
        UInt8* __restrict c_pos = c.data();
94
1.14k
        const A* __restrict a_end = a_pos + size;
95
96
2.67M
        while (a_pos < a_end) {
97
2.67M
            *c_pos = Op::apply(*a_pos, b);
98
2.67M
            ++a_pos;
99
2.67M
            ++c_pos;
100
2.67M
        }
101
1.14k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
6.42k
                                          PaddedPODArray<UInt8>& c) {
91
6.42k
        size_t size = a.size();
92
6.42k
        const A* __restrict a_pos = a.data();
93
6.42k
        UInt8* __restrict c_pos = c.data();
94
6.42k
        const A* __restrict a_end = a_pos + size;
95
96
6.68M
        while (a_pos < a_end) {
97
6.67M
            *c_pos = Op::apply(*a_pos, b);
98
6.67M
            ++a_pos;
99
6.67M
            ++c_pos;
100
6.67M
        }
101
6.42k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
779
                                          PaddedPODArray<UInt8>& c) {
91
779
        size_t size = a.size();
92
779
        const A* __restrict a_pos = a.data();
93
779
        UInt8* __restrict c_pos = c.data();
94
779
        const A* __restrict a_end = a_pos + size;
95
96
4.16k
        while (a_pos < a_end) {
97
3.38k
            *c_pos = Op::apply(*a_pos, b);
98
3.38k
            ++a_pos;
99
3.38k
            ++c_pos;
100
3.38k
        }
101
779
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
629
                                          PaddedPODArray<UInt8>& c) {
91
629
        size_t size = a.size();
92
629
        const A* __restrict a_pos = a.data();
93
629
        UInt8* __restrict c_pos = c.data();
94
629
        const A* __restrict a_end = a_pos + size;
95
96
46.4k
        while (a_pos < a_end) {
97
45.8k
            *c_pos = Op::apply(*a_pos, b);
98
45.8k
            ++a_pos;
99
45.8k
            ++c_pos;
100
45.8k
        }
101
629
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
27
                                          PaddedPODArray<UInt8>& c) {
91
27
        size_t size = a.size();
92
27
        const A* __restrict a_pos = a.data();
93
27
        UInt8* __restrict c_pos = c.data();
94
27
        const A* __restrict a_end = a_pos + size;
95
96
108k
        while (a_pos < a_end) {
97
107k
            *c_pos = Op::apply(*a_pos, b);
98
107k
            ++a_pos;
99
107k
            ++c_pos;
100
107k
        }
101
27
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
55
                                          PaddedPODArray<UInt8>& c) {
91
55
        size_t size = a.size();
92
55
        const A* __restrict a_pos = a.data();
93
55
        UInt8* __restrict c_pos = c.data();
94
55
        const A* __restrict a_end = a_pos + size;
95
96
180k
        while (a_pos < a_end) {
97
180k
            *c_pos = Op::apply(*a_pos, b);
98
180k
            ++a_pos;
99
180k
            ++c_pos;
100
180k
        }
101
55
    }
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
90
469
                                          PaddedPODArray<UInt8>& c) {
91
469
        size_t size = a.size();
92
469
        const A* __restrict a_pos = a.data();
93
469
        UInt8* __restrict c_pos = c.data();
94
469
        const A* __restrict a_end = a_pos + size;
95
96
49.6k
        while (a_pos < a_end) {
97
49.1k
            *c_pos = Op::apply(*a_pos, b);
98
49.1k
            ++a_pos;
99
49.1k
            ++c_pos;
100
49.1k
        }
101
469
    }
_ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
313
                                          PaddedPODArray<UInt8>& c) {
91
313
        size_t size = a.size();
92
313
        const A* __restrict a_pos = a.data();
93
313
        UInt8* __restrict c_pos = c.data();
94
313
        const A* __restrict a_end = a_pos + size;
95
96
3.40k
        while (a_pos < a_end) {
97
3.09k
            *c_pos = Op::apply(*a_pos, b);
98
3.09k
            ++a_pos;
99
3.09k
            ++c_pos;
100
3.09k
        }
101
313
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
4
                                          PaddedPODArray<UInt8>& c) {
91
4
        size_t size = a.size();
92
4
        const A* __restrict a_pos = a.data();
93
4
        UInt8* __restrict c_pos = c.data();
94
4
        const A* __restrict a_end = a_pos + size;
95
96
10
        while (a_pos < a_end) {
97
6
            *c_pos = Op::apply(*a_pos, b);
98
6
            ++a_pos;
99
6
            ++c_pos;
100
6
        }
101
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
121
                                          PaddedPODArray<UInt8>& c) {
91
121
        size_t size = a.size();
92
121
        const A* __restrict a_pos = a.data();
93
121
        UInt8* __restrict c_pos = c.data();
94
121
        const A* __restrict a_end = a_pos + size;
95
96
600k
        while (a_pos < a_end) {
97
600k
            *c_pos = Op::apply(*a_pos, b);
98
600k
            ++a_pos;
99
600k
            ++c_pos;
100
600k
        }
101
121
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
113
                                          PaddedPODArray<UInt8>& c) {
91
113
        size_t size = a.size();
92
113
        const A* __restrict a_pos = a.data();
93
113
        UInt8* __restrict c_pos = c.data();
94
113
        const A* __restrict a_end = a_pos + size;
95
96
600k
        while (a_pos < a_end) {
97
600k
            *c_pos = Op::apply(*a_pos, b);
98
600k
            ++a_pos;
99
600k
            ++c_pos;
100
600k
        }
101
113
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
102
103
67.0k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
67.0k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
67.0k
    }
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
103
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
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
103
276
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
276
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
276
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
36
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
36
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
36
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
490
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
490
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
490
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
1.19k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
1.19k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
1.19k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
4
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
4
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
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
103
54
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
54
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
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
103
758
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
758
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
758
    }
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
103
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
228
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
228
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
62.5k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
62.5k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
62.5k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
521
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
521
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
521
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
18
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
18
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
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
103
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
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
103
240
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
240
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
240
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
193
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
193
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
193
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
80
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
80
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
80
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
92
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
92
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
92
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE44EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
103
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
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
103
63
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
63
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
63
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
12
    }
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
106
};
107
108
/// Generic version, implemented for columns of same type.
109
template <typename Op>
110
struct GenericComparisonImpl {
111
20
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
71
        for (size_t i = 0, size = a.size(); i < size; ++i) {
113
51
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
114
51
        }
115
20
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
111
12
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
42
        for (size_t i = 0, size = a.size(); i < size; ++i) {
113
30
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
114
30
        }
115
12
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
111
2
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
12
        for (size_t i = 0, size = a.size(); i < size; ++i) {
113
10
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
114
10
        }
115
2
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
111
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
113
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
114
1
        }
115
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
111
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
113
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
114
1
        }
115
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
111
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
13
        for (size_t i = 0, size = a.size(); i < size; ++i) {
113
9
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
114
9
        }
115
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
116
117
158
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
158
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
520k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
519k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
519k
        }
122
158
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
117
19
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
19
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
60
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
41
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
41
        }
122
19
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
117
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
8
        }
122
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
117
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
8
        }
122
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
117
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
8
        }
122
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
117
62
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
62
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
281k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
281k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
281k
        }
122
62
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
117
53
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
53
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
238k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
238k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
238k
        }
122
53
    }
123
124
1
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
125
1
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
126
1
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
124
1
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
125
1
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
126
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
127
};
128
129
template <typename Op>
130
struct StringComparisonImpl {
131
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
132
                                                      const ColumnString::Offsets& a_offsets,
133
                                                      const ColumnString::Chars& b_data,
134
                                                      const ColumnString::Offsets& b_offsets,
135
416
                                                      PaddedPODArray<UInt8>& c) {
136
416
        size_t size = a_offsets.size();
137
416
        ColumnString::Offset prev_a_offset = 0;
138
416
        ColumnString::Offset prev_b_offset = 0;
139
416
        const auto* a_pos = a_data.data();
140
416
        const auto* b_pos = b_data.data();
141
142
1.55k
        for (size_t i = 0; i < size; ++i) {
143
1.14k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
144
1.14k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
145
1.14k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
146
1.14k
                             0);
147
148
1.14k
            prev_a_offset = a_offsets[i];
149
1.14k
            prev_b_offset = b_offsets[i];
150
1.14k
        }
151
416
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
135
2
                                                      PaddedPODArray<UInt8>& c) {
136
2
        size_t size = a_offsets.size();
137
2
        ColumnString::Offset prev_a_offset = 0;
138
2
        ColumnString::Offset prev_b_offset = 0;
139
2
        const auto* a_pos = a_data.data();
140
2
        const auto* b_pos = b_data.data();
141
142
49
        for (size_t i = 0; i < size; ++i) {
143
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
144
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
145
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
146
47
                             0);
147
148
47
            prev_a_offset = a_offsets[i];
149
47
            prev_b_offset = b_offsets[i];
150
47
        }
151
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
135
31
                                                      PaddedPODArray<UInt8>& c) {
136
31
        size_t size = a_offsets.size();
137
31
        ColumnString::Offset prev_a_offset = 0;
138
31
        ColumnString::Offset prev_b_offset = 0;
139
31
        const auto* a_pos = a_data.data();
140
31
        const auto* b_pos = b_data.data();
141
142
218
        for (size_t i = 0; i < size; ++i) {
143
187
            c[i] = Op::apply(memcmp_small_allow_overflow15(
144
187
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
145
187
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
146
187
                             0);
147
148
187
            prev_a_offset = a_offsets[i];
149
187
            prev_b_offset = b_offsets[i];
150
187
        }
151
31
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
135
383
                                                      PaddedPODArray<UInt8>& c) {
136
383
        size_t size = a_offsets.size();
137
383
        ColumnString::Offset prev_a_offset = 0;
138
383
        ColumnString::Offset prev_b_offset = 0;
139
383
        const auto* a_pos = a_data.data();
140
383
        const auto* b_pos = b_data.data();
141
142
1.29k
        for (size_t i = 0; i < size; ++i) {
143
909
            c[i] = Op::apply(memcmp_small_allow_overflow15(
144
909
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
145
909
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
146
909
                             0);
147
148
909
            prev_a_offset = a_offsets[i];
149
909
            prev_b_offset = b_offsets[i];
150
909
        }
151
383
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
152
153
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
154
                                                 const ColumnString::Offsets& a_offsets,
155
                                                 const ColumnString::Chars& b_data,
156
                                                 ColumnString::Offset b_size,
157
979
                                                 PaddedPODArray<UInt8>& c) {
158
979
        size_t size = a_offsets.size();
159
979
        ColumnString::Offset prev_a_offset = 0;
160
979
        const auto* a_pos = a_data.data();
161
979
        const auto* b_pos = b_data.data();
162
163
1.95M
        for (size_t i = 0; i < size; ++i) {
164
1.95M
            c[i] = Op::apply(
165
1.95M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
1.95M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
1.95M
                    0);
168
169
1.95M
            prev_a_offset = a_offsets[i];
170
1.95M
        }
171
979
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
235
                                                 PaddedPODArray<UInt8>& c) {
158
235
        size_t size = a_offsets.size();
159
235
        ColumnString::Offset prev_a_offset = 0;
160
235
        const auto* a_pos = a_data.data();
161
235
        const auto* b_pos = b_data.data();
162
163
634k
        for (size_t i = 0; i < size; ++i) {
164
634k
            c[i] = Op::apply(
165
634k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
634k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
634k
                    0);
168
169
634k
            prev_a_offset = a_offsets[i];
170
634k
        }
171
235
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
133
                                                 PaddedPODArray<UInt8>& c) {
158
133
        size_t size = a_offsets.size();
159
133
        ColumnString::Offset prev_a_offset = 0;
160
133
        const auto* a_pos = a_data.data();
161
133
        const auto* b_pos = b_data.data();
162
163
105k
        for (size_t i = 0; i < size; ++i) {
164
105k
            c[i] = Op::apply(
165
105k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
105k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
105k
                    0);
168
169
105k
            prev_a_offset = a_offsets[i];
170
105k
        }
171
133
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
250
                                                 PaddedPODArray<UInt8>& c) {
158
250
        size_t size = a_offsets.size();
159
250
        ColumnString::Offset prev_a_offset = 0;
160
250
        const auto* a_pos = a_data.data();
161
250
        const auto* b_pos = b_data.data();
162
163
617k
        for (size_t i = 0; i < size; ++i) {
164
617k
            c[i] = Op::apply(
165
617k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
617k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
617k
                    0);
168
169
617k
            prev_a_offset = a_offsets[i];
170
617k
        }
171
250
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
361
                                                 PaddedPODArray<UInt8>& c) {
158
361
        size_t size = a_offsets.size();
159
361
        ColumnString::Offset prev_a_offset = 0;
160
361
        const auto* a_pos = a_data.data();
161
361
        const auto* b_pos = b_data.data();
162
163
598k
        for (size_t i = 0; i < size; ++i) {
164
598k
            c[i] = Op::apply(
165
598k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
598k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
598k
                    0);
168
169
598k
            prev_a_offset = a_offsets[i];
170
598k
        }
171
361
    }
172
173
    static void constant_string_vector(const ColumnString::Chars& a_data,
174
                                       ColumnString::Offset a_size,
175
                                       const ColumnString::Chars& b_data,
176
                                       const ColumnString::Offsets& b_offsets,
177
58
                                       PaddedPODArray<UInt8>& c) {
178
58
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
58
                                                                               a_data, a_size, c);
180
58
    }
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
177
56
                                       PaddedPODArray<UInt8>& c) {
178
56
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
56
                                                                               a_data, a_size, c);
180
56
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
177
2
                                       PaddedPODArray<UInt8>& c) {
178
2
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
2
                                                                               a_data, a_size, c);
180
2
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
181
};
182
183
template <bool positive>
184
struct StringEqualsImpl {
185
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
186
                                                      const ColumnString::Offsets& a_offsets,
187
                                                      const ColumnString::Chars& b_data,
188
                                                      const ColumnString::Offsets& b_offsets,
189
438
                                                      PaddedPODArray<UInt8>& c) {
190
438
        size_t size = a_offsets.size();
191
438
        ColumnString::Offset prev_a_offset = 0;
192
438
        ColumnString::Offset prev_b_offset = 0;
193
438
        const auto* a_pos = a_data.data();
194
438
        const auto* b_pos = b_data.data();
195
196
13.5k
        for (size_t i = 0; i < size; ++i) {
197
13.0k
            auto a_size = a_offsets[i] - prev_a_offset;
198
13.0k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
13.0k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
13.0k
                                                               b_pos + prev_b_offset, b_size);
202
203
13.0k
            prev_a_offset = a_offsets[i];
204
13.0k
            prev_b_offset = b_offsets[i];
205
13.0k
        }
206
438
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
189
421
                                                      PaddedPODArray<UInt8>& c) {
190
421
        size_t size = a_offsets.size();
191
421
        ColumnString::Offset prev_a_offset = 0;
192
421
        ColumnString::Offset prev_b_offset = 0;
193
421
        const auto* a_pos = a_data.data();
194
421
        const auto* b_pos = b_data.data();
195
196
8.37k
        for (size_t i = 0; i < size; ++i) {
197
7.95k
            auto a_size = a_offsets[i] - prev_a_offset;
198
7.95k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
7.95k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
7.95k
                                                               b_pos + prev_b_offset, b_size);
202
203
7.95k
            prev_a_offset = a_offsets[i];
204
7.95k
            prev_b_offset = b_offsets[i];
205
7.95k
        }
206
421
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
189
17
                                                      PaddedPODArray<UInt8>& c) {
190
17
        size_t size = a_offsets.size();
191
17
        ColumnString::Offset prev_a_offset = 0;
192
17
        ColumnString::Offset prev_b_offset = 0;
193
17
        const auto* a_pos = a_data.data();
194
17
        const auto* b_pos = b_data.data();
195
196
5.16k
        for (size_t i = 0; i < size; ++i) {
197
5.14k
            auto a_size = a_offsets[i] - prev_a_offset;
198
5.14k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
5.14k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
5.14k
                                                               b_pos + prev_b_offset, b_size);
202
203
5.14k
            prev_a_offset = a_offsets[i];
204
5.14k
            prev_b_offset = b_offsets[i];
205
5.14k
        }
206
17
    }
207
208
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
209
                                                 const ColumnString::Offsets& a_offsets,
210
                                                 const ColumnString::Chars& b_data,
211
                                                 ColumnString::Offset b_size,
212
20.0k
                                                 PaddedPODArray<UInt8>& c) {
213
20.0k
        size_t size = a_offsets.size();
214
20.0k
        if (b_size == 0) {
215
1
            auto* __restrict data = c.data();
216
1
            auto* __restrict offsets = a_offsets.data();
217
218
1
            ColumnString::Offset prev_a_offset = 0;
219
4
            for (size_t i = 0; i < size; ++i) {
220
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
221
3
                prev_a_offset = offsets[i];
222
3
            }
223
20.0k
        } else {
224
20.0k
            ColumnString::Offset prev_a_offset = 0;
225
20.0k
            const auto* a_pos = a_data.data();
226
20.0k
            const auto* b_pos = b_data.data();
227
9.39M
            for (size_t i = 0; i < size; ++i) {
228
9.37M
                auto a_size = a_offsets[i] - prev_a_offset;
229
9.37M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
9.37M
                                                                   b_pos, b_size);
231
9.37M
                prev_a_offset = a_offsets[i];
232
9.37M
            }
233
20.0k
        }
234
20.0k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
212
19.9k
                                                 PaddedPODArray<UInt8>& c) {
213
19.9k
        size_t size = a_offsets.size();
214
19.9k
        if (b_size == 0) {
215
0
            auto* __restrict data = c.data();
216
0
            auto* __restrict offsets = a_offsets.data();
217
218
0
            ColumnString::Offset prev_a_offset = 0;
219
0
            for (size_t i = 0; i < size; ++i) {
220
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
221
0
                prev_a_offset = offsets[i];
222
0
            }
223
19.9k
        } else {
224
19.9k
            ColumnString::Offset prev_a_offset = 0;
225
19.9k
            const auto* a_pos = a_data.data();
226
19.9k
            const auto* b_pos = b_data.data();
227
9.33M
            for (size_t i = 0; i < size; ++i) {
228
9.31M
                auto a_size = a_offsets[i] - prev_a_offset;
229
9.31M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
9.31M
                                                                   b_pos, b_size);
231
9.31M
                prev_a_offset = a_offsets[i];
232
9.31M
            }
233
19.9k
        }
234
19.9k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
212
116
                                                 PaddedPODArray<UInt8>& c) {
213
116
        size_t size = a_offsets.size();
214
116
        if (b_size == 0) {
215
1
            auto* __restrict data = c.data();
216
1
            auto* __restrict offsets = a_offsets.data();
217
218
1
            ColumnString::Offset prev_a_offset = 0;
219
4
            for (size_t i = 0; i < size; ++i) {
220
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
221
3
                prev_a_offset = offsets[i];
222
3
            }
223
115
        } else {
224
115
            ColumnString::Offset prev_a_offset = 0;
225
115
            const auto* a_pos = a_data.data();
226
115
            const auto* b_pos = b_data.data();
227
61.6k
            for (size_t i = 0; i < size; ++i) {
228
61.4k
                auto a_size = a_offsets[i] - prev_a_offset;
229
61.4k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
61.4k
                                                                   b_pos, b_size);
231
61.4k
                prev_a_offset = a_offsets[i];
232
61.4k
            }
233
115
        }
234
116
    }
235
236
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
237
                                                 ColumnString::Offset a_size,
238
                                                 const ColumnString::Chars& b_data,
239
                                                 const ColumnString::Offsets& b_offsets,
240
16
                                                 PaddedPODArray<UInt8>& c) {
241
16
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
242
16
    }
_ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Line
Count
Source
240
16
                                                 PaddedPODArray<UInt8>& c) {
241
16
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
242
16
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
243
};
244
245
template <PrimitiveType PT>
246
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
247
248
template <PrimitiveType PT>
249
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
250
251
struct NameEquals {
252
    static constexpr auto name = "eq";
253
};
254
struct NameNotEquals {
255
    static constexpr auto name = "ne";
256
};
257
struct NameLess {
258
    static constexpr auto name = "lt";
259
};
260
struct NameGreater {
261
    static constexpr auto name = "gt";
262
};
263
struct NameLessOrEquals {
264
    static constexpr auto name = "le";
265
};
266
struct NameGreaterOrEquals {
267
    static constexpr auto name = "ge";
268
};
269
270
namespace comparison_zonemap_detail {
271
enum class Op {
272
    EQ,
273
    NE,
274
    LT,
275
    LE,
276
    GT,
277
    GE,
278
};
279
280
19
inline Op symmetric_op(Op op) {
281
19
    switch (op) {
282
0
    case Op::EQ:
283
0
    case Op::NE:
284
0
        return op;
285
11
    case Op::LT:
286
11
        return Op::GT;
287
6
    case Op::LE:
288
6
        return Op::GE;
289
0
    case Op::GT:
290
0
        return Op::LT;
291
2
    case Op::GE:
292
2
        return Op::LE;
293
19
    }
294
0
    __builtin_unreachable();
295
19
}
296
297
// Return true when `L <op> R` cannot be TRUE for any row, given that every non-null value of the
298
// left operand lies in [lmin, lmax] and every non-null value of the right operand lies in
299
// [rmin, rmax]. This only compares the four bounds: callers must already have rejected zone maps
300
// whose bounds are unusable and columns that hold no non-null value at all.
301
//
302
// The slot-vs-literal path passes the literal as the degenerate range [literal, literal], which
303
// reduces every branch below to the plain slot-vs-literal test it replaced.
304
inline bool range_vs_range_no_match(const Field& lmin, const Field& lmax, const Field& rmin,
305
3.95k
                                    const Field& rmax, Op op) {
306
3.95k
    switch (op) {
307
1.91k
    case Op::EQ:
308
        // Disjoint ranges cannot share a value.
309
1.91k
        return lmin > rmax || rmin > lmax;
310
174
    case Op::NE:
311
        // Only provable when both sides collapse to the same single value.
312
174
        return lmin == lmax && rmin == rmax && lmin == rmin;
313
579
    case Op::LT:
314
579
        return lmin >= rmax;
315
310
    case Op::LE:
316
310
        return lmin > rmax;
317
647
    case Op::GT:
318
647
        return rmin >= lmax;
319
324
    case Op::GE:
320
324
        return rmin > lmax;
321
3.95k
    }
322
0
    __builtin_unreachable();
323
3.95k
}
324
325
inline ZoneMapFilterResult evaluate_slot_literal(const ZoneMapEvalContext& ctx,
326
                                                 const expr_zonemap::SlotLiteral& slot_literal,
327
3.39k
                                                 Op op) {
328
3.39k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal.slot_index,
329
3.39k
                                                              slot_literal.slot_type);
330
3.39k
    if (slot_type == nullptr) {
331
293
        return unsupported_zonemap_filter(ctx);
332
293
    }
333
3.10k
    auto zone_map_ptr = ctx.zone_map(slot_literal.slot_index);
334
3.10k
    if (zone_map_ptr == nullptr) {
335
46
        return unsupported_zonemap_filter(ctx);
336
46
    }
337
3.05k
    const auto& zone_map = *zone_map_ptr;
338
3.05k
    if (!zone_map.has_not_null) {
339
52
        return ZoneMapFilterResult::kNoMatch;
340
52
    }
341
3.00k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
342
108
        return unsupported_zonemap_filter(ctx);
343
108
    }
344
345
2.89k
    const auto effective_op = slot_literal.literal_on_left ? symmetric_op(op) : op;
346
2.89k
    const auto& literal = slot_literal.literal;
347
2.89k
    const bool literal_is_nan = literal.is_nan();
348
2.89k
    const bool hidden_nan_can_match = (effective_op == Op::EQ && literal_is_nan) ||
349
2.89k
                                      (effective_op == Op::NE && !literal_is_nan) ||
350
2.89k
                                      (effective_op == Op::GT && !literal_is_nan) ||
351
2.89k
                                      effective_op == Op::GE;
352
2.89k
    if (ctx.floating_nan_count_unknown(slot_literal.slot_index) && hidden_nan_can_match) {
353
        // Parquet bounds omit NaNs, so only operators that cannot match a hidden NaN may prune.
354
52
        return unsupported_zonemap_filter(ctx);
355
52
    }
356
2.84k
    return range_vs_range_no_match(zone_map.min_value, zone_map.max_value, literal, literal,
357
2.84k
                                   effective_op)
358
2.84k
                   ? ZoneMapFilterResult::kNoMatch
359
2.84k
                   : ZoneMapFilterResult::kMayMatch;
360
2.89k
}
361
362
inline ZoneMapFilterResult evaluate_slot_slot(const ZoneMapEvalContext& ctx,
363
1.16k
                                              const expr_zonemap::SlotSlot& slot_slot, Op op) {
364
1.16k
    const auto left_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_slot.left_slot_index,
365
1.16k
                                                                    slot_slot.left_type);
366
1.16k
    const auto right_type = expr_zonemap::fetch_compatible_slot_type(
367
1.16k
            ctx, slot_slot.right_slot_index, slot_slot.right_type);
368
1.17k
    if (left_type == nullptr || right_type == nullptr) {
369
        // The context skips a slot entirely when the segment cannot apply predicates on it.
370
1
        return unsupported_zonemap_filter(ctx);
371
1
    }
372
1.16k
    const auto left_zone_map = ctx.zone_map(slot_slot.left_slot_index);
373
1.16k
    const auto right_zone_map = ctx.zone_map(slot_slot.right_slot_index);
374
1.16k
    if (left_zone_map == nullptr || right_zone_map == nullptr) {
375
        // A slot can be present with a data type but no zone map, so this is a separate check.
376
9
        return unsupported_zonemap_filter(ctx);
377
9
    }
378
    // A column holding no non-null value makes the comparison NULL on every row, which never
379
    // satisfies a WHERE conjunct. This must run before the range checks below: an all-null zone map
380
    // leaves min/max default-constructed as TYPE_NULL, which the range checks would fatal on.
381
1.15k
    if (!left_zone_map->has_not_null || !right_zone_map->has_not_null) {
382
30
        return ZoneMapFilterResult::kNoMatch;
383
30
    }
384
1.12k
    if (!expr_zonemap::range_stats_usable_for_zonemap(*left_zone_map, left_type) ||
385
1.12k
        !expr_zonemap::range_stats_usable_for_zonemap(*right_zone_map, right_type)) {
386
9
        return unsupported_zonemap_filter(ctx);
387
9
    }
388
    // A native string zone-map max of exactly MAX_ZONE_MAP_INDEX_SIZE bytes was bumped upward,
389
    // and may also have been truncated (segments written before the carry fix may hold a bump
390
    // that wrapped on 0xff), so a bound of that length is not a reliable fence for a two-sided
391
    // proof. A shorter bound is the exact value; the bump never changes the length, so this also
392
    // rejects those wrapped bounds.
393
    // The test only decides whether to trust the bound as a fence. A Parquet-sourced string bound
394
    // shorter than the cap is not necessarily exact, but it is a spec-conservative min/max, which
395
    // is all a range proof needs; do not tighten this to assume exactness below the cap.
396
    // data_types_compatible pairs strings only with strings, so checking one side's type is enough
397
    // to know all four bounds are strings.
398
1.11k
    if (is_string_type(remove_nullable(left_type)->get_primitive_type())) {
399
343
        auto is_untruncated = [](const Field& f) {
400
343
            return f.get<TYPE_STRING>().size() < MAX_ZONE_MAP_INDEX_SIZE;
401
343
        };
402
93
        if (!is_untruncated(left_zone_map->min_value) ||
403
93
            !is_untruncated(left_zone_map->max_value) ||
404
93
            !is_untruncated(right_zone_map->min_value) ||
405
93
            !is_untruncated(right_zone_map->max_value)) {
406
3
            return unsupported_zonemap_filter(ctx);
407
3
        }
408
93
    }
409
    // Parquet bounds omit NaN without recording how many were skipped, so a zone map that looks
410
    // like a single point may still hide one, which would flip the NE rule from false to true. The
411
    // slot-vs-literal path can reason per operator because it knows whether the literal is NaN;
412
    // with two slots there is no literal, so bail out for every operator instead.
413
1.11k
    if (ctx.floating_nan_count_unknown(slot_slot.left_slot_index) ||
414
1.11k
        ctx.floating_nan_count_unknown(slot_slot.right_slot_index)) {
415
12
        return unsupported_zonemap_filter(ctx);
416
12
    }
417
1.10k
    return range_vs_range_no_match(left_zone_map->min_value, left_zone_map->max_value,
418
1.10k
                                   right_zone_map->min_value, right_zone_map->max_value, op)
419
1.10k
                   ? ZoneMapFilterResult::kNoMatch
420
1.10k
                   : ZoneMapFilterResult::kMayMatch;
421
1.11k
}
422
423
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
424
4.55k
                                    Op op) {
425
4.55k
    if (auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
426
4.55k
        slot_literal.has_value()) {
427
3.40k
        return evaluate_slot_literal(ctx, *slot_literal, op);
428
3.40k
    }
429
1.14k
    auto slot_slot = expr_zonemap::extract_slot_and_slot(arguments);
430
    // can_evaluate_zonemap_filter accepts exactly the two shapes handled above, so reaching this
431
    // point means the capability gate and this evaluator went out of sync.
432
1.14k
    DORIS_CHECK(slot_slot.has_value());
433
1.14k
    return evaluate_slot_slot(ctx, *slot_slot, op);
434
4.55k
}
435
436
33.7k
inline bool can_evaluate(const VExprSPtrs& arguments) {
437
33.7k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
438
33.7k
    if (!slot_literal.has_value()) {
439
19.1k
        return false;
440
19.1k
    }
441
442
    // A NULL literal makes the comparison evaluate to NULL instead of a byte range predicate on
443
    // the slot. This zonemap evaluator only derives bounds from non-NULL literals, so reject this
444
    // shape here before evaluate_zonemap_filter is called.
445
14.6k
    if (slot_literal->literal.is_null()) {
446
4
        return false;
447
4
    }
448
449
14.6k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
450
14.6k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
451
14.6k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
452
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
453
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
454
        // values without running expression casts, so conservatively skip this optimization.
455
1
        return false;
456
1
    }
457
458
14.6k
    return true;
459
14.6k
}
460
461
// Accept a comparison whose both operands are slot references. Kept separate from can_evaluate on
462
// purpose: can_evaluate also gates dictionary filtering and can_evaluate_equality, and both of
463
// those dereference extract_slot_and_literal behind a DORIS_CHECK, so widening it would abort on a
464
// slot-vs-slot expression. Only can_evaluate_zonemap_filter ORs this in.
465
18.8k
inline bool can_evaluate_slot_slot(const VExprSPtrs& arguments) {
466
18.8k
    auto slot_slot = expr_zonemap::extract_slot_and_slot(arguments);
467
18.8k
    if (!slot_slot.has_value()) {
468
15.7k
        return false;
469
15.7k
    }
470
3.04k
    DORIS_CHECK(slot_slot->left_type != nullptr);
471
3.04k
    DORIS_CHECK(slot_slot->right_type != nullptr);
472
    // Reject types whose slot-slot bounds cannot be compared safely:
473
    // - VARBINARY: v1 Parquet produces a TYPE_STRING bound for it, which
474
    //   range_stats_usable_for_zonemap aborts on instead of falling back.
475
    // - VARIANT: a segment types a path slot by its inferred leaf type (a typed `v.a` is INT), so
476
    //   fetch_compatible_slot_type's check against the VARIANT expression type would fail.
477
    // - ARRAY/MAP/STRUCT, JSONB, aggregate states: Field orders every pair of them as equal.
478
    // A truncated string bound is rejected later, in evaluate_slot_slot, by its length.
479
6.36k
    const auto excluded = [](const DataTypePtr& type) {
480
6.36k
        const auto primitive_type = remove_nullable(type)->get_primitive_type();
481
6.41k
        return is_varbinary(primitive_type) || primitive_type == TYPE_VARIANT ||
482
6.41k
               primitive_type == TYPE_JSONB || is_complex_type(primitive_type) ||
483
6.39k
               is_var_len_object(primitive_type);
484
6.36k
    };
485
3.19k
    if (excluded(slot_slot->left_type) || excluded(slot_slot->right_type)) {
486
15
        return false;
487
15
    }
488
    // The two zone maps' Fields are compared directly and Field comparison throws on mismatched
489
    // non-string types, so reject incompatible column pairs here. A pair differing only by width or
490
    // decimal scale never reaches this point anyway, because the optimizer inserts a cast and a
491
    // cast is not a VSlotRef.
492
3.03k
    return expr_zonemap::data_types_compatible(slot_slot->left_type, slot_slot->right_type);
493
3.04k
}
494
495
0
inline bool can_evaluate_equality(const VExprSPtrs& arguments, Op op) {
496
0
    if (op != Op::EQ || !can_evaluate(arguments)) {
497
0
        return false;
498
0
    }
499
0
    const auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
500
0
    DORIS_CHECK(slot_literal.has_value());
501
0
    // Bloom membership cannot disprove Doris NaN equality across different physical encodings.
502
0
    return !slot_literal->literal.is_nan();
503
0
}
504
505
27
inline bool dictionary_value_matches(const Field& value, const Field& literal, Op op) {
506
27
    switch (op) {
507
8
    case Op::EQ:
508
8
        return value == literal;
509
0
    case Op::NE:
510
0
        return value != literal;
511
5
    case Op::LT:
512
5
        return value < literal;
513
0
    case Op::LE:
514
0
        return value <= literal;
515
14
    case Op::GT:
516
14
        return value > literal;
517
0
    case Op::GE:
518
0
        return value >= literal;
519
27
    }
520
0
    __builtin_unreachable();
521
27
}
522
523
inline ZoneMapFilterResult evaluate_dictionary(const DictionaryEvalContext& ctx,
524
14
                                               const VExprSPtrs& arguments, Op op) {
525
14
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
526
14
    DORIS_CHECK(slot_literal.has_value());
527
14
    const auto* dictionary = ctx.slot(slot_literal->slot_index);
528
14
    if (dictionary == nullptr || dictionary->data_type == nullptr) {
529
0
        return ZoneMapFilterResult::kUnsupported;
530
0
    }
531
14
    DORIS_CHECK(
532
14
            expr_zonemap::data_types_compatible(dictionary->data_type, slot_literal->slot_type));
533
14
    if (slot_literal->literal.is_null()) {
534
0
        return ZoneMapFilterResult::kUnsupported;
535
0
    }
536
14
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
537
    // Compare typed Fields so dictionary filtering preserves the regular expression semantics for
538
    // strings, dates, decimals, floating-point edge cases, and every other supported logical type.
539
14
    return std::ranges::any_of(dictionary->values,
540
27
                               [&](const Field& value) {
541
27
                                   return dictionary_value_matches(value, slot_literal->literal,
542
27
                                                                   effective_op);
543
27
                               })
544
14
                   ? ZoneMapFilterResult::kMayMatch
545
14
                   : ZoneMapFilterResult::kNoMatch;
546
14
}
547
548
inline ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
549
19
                                                 const VExprSPtrs& arguments, Op op) {
550
19
    DORIS_CHECK(op == Op::EQ);
551
19
    auto slot_literal = expr_zonemap::extract_bloom_filter_slot_and_literal(arguments);
552
19
    DORIS_CHECK(slot_literal.has_value());
553
19
    return expr_zonemap::eval_eq_bloom_filter(ctx, *slot_literal);
554
19
}
555
556
38.7k
inline std::optional<Op> op_from_name(std::string_view name) {
557
38.7k
    if (name == NameEquals::name) {
558
18.0k
        return Op::EQ;
559
18.0k
    }
560
20.7k
    if (name == NameNotEquals::name) {
561
1.61k
        return Op::NE;
562
1.61k
    }
563
19.1k
    if (name == NameLess::name) {
564
5.22k
        return Op::LT;
565
5.22k
    }
566
13.9k
    if (name == NameLessOrEquals::name) {
567
2.14k
        return Op::LE;
568
2.14k
    }
569
11.8k
    if (name == NameGreater::name) {
570
7.08k
        return Op::GT;
571
7.08k
    }
572
4.95k
    if (name == NameGreaterOrEquals::name) {
573
4.95k
        return Op::GE;
574
4.95k
    }
575
18.4E
    return std::nullopt;
576
4.71k
}
577
} // namespace comparison_zonemap_detail
578
579
template <template <PrimitiveType> class Op, typename Name>
580
class FunctionComparison : public IFunction {
581
public:
582
    static constexpr auto name = Name::name;
583
305k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
583
271k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
583
1.27k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
583
7.14k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
583
9.85k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
583
4.06k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
583
11.2k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
584
585
305k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
585
271k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
585
1.28k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
585
7.15k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
585
9.85k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
585
4.07k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
585
11.2k
    FunctionComparison() = default;
586
587
686k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
587
679k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
587
604
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
587
2.20k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
587
2.41k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
587
1.27k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
587
1.17k
    double execute_cost() const override { return 0.5; }
588
589
private:
590
    template <PrimitiveType PT>
591
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
592
126k
                            const ColumnPtr& col_right_ptr) const {
593
126k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
126k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
126k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
126k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
126k
        DCHECK(!(left_is_const && right_is_const));
600
601
126k
        if (!left_is_const && !right_is_const) {
602
12.5k
            auto col_res = ColumnUInt8::create();
603
604
12.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
12.5k
            vec_res.resize(col_left->get_data().size());
606
12.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
12.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
12.5k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
12.5k
                                                     vec_res);
610
611
12.5k
            block.replace_by_position(result, std::move(col_res));
612
114k
        } else if (!left_is_const && right_is_const) {
613
47.0k
            auto col_res = ColumnUInt8::create();
614
615
47.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
47.0k
            vec_res.resize(col_left->size());
617
47.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
47.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
47.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
47.0k
                                                       col_right->get_element(0), vec_res);
621
622
47.0k
            block.replace_by_position(result, std::move(col_res));
623
67.0k
        } else if (left_is_const && !right_is_const) {
624
67.0k
            auto col_res = ColumnUInt8::create();
625
626
67.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
67.0k
            vec_res.resize(col_right->size());
628
67.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
67.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
630
67.0k
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
67.0k
                                                       col_right->get_data(), vec_res);
632
633
67.0k
            block.replace_by_position(result, std::move(col_res));
634
67.0k
        }
635
126k
        return Status::OK();
636
126k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
101
                            const ColumnPtr& col_right_ptr) const {
593
101
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
101
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
101
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
101
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
101
        DCHECK(!(left_is_const && right_is_const));
600
601
101
        if (!left_is_const && !right_is_const) {
602
71
            auto col_res = ColumnUInt8::create();
603
604
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
71
            vec_res.resize(col_left->get_data().size());
606
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
71
                              typename PrimitiveTypeTraits<PT>::CppType,
608
71
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
71
                                                     vec_res);
610
611
71
            block.replace_by_position(result, std::move(col_res));
612
71
        } else if (!left_is_const && right_is_const) {
613
30
            auto col_res = ColumnUInt8::create();
614
615
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
30
            vec_res.resize(col_left->size());
617
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
30
                              typename PrimitiveTypeTraits<PT>::CppType,
619
30
                              Op<PT>>::vector_constant(col_left->get_data(),
620
30
                                                       col_right->get_element(0), vec_res);
621
622
30
            block.replace_by_position(result, std::move(col_res));
623
30
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
101
        return Status::OK();
636
101
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
559
                            const ColumnPtr& col_right_ptr) const {
593
559
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
559
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
559
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
559
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
559
        DCHECK(!(left_is_const && right_is_const));
600
601
559
        if (!left_is_const && !right_is_const) {
602
169
            auto col_res = ColumnUInt8::create();
603
604
169
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
169
            vec_res.resize(col_left->get_data().size());
606
169
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
169
                              typename PrimitiveTypeTraits<PT>::CppType,
608
169
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
169
                                                     vec_res);
610
611
169
            block.replace_by_position(result, std::move(col_res));
612
390
        } else if (!left_is_const && right_is_const) {
613
390
            auto col_res = ColumnUInt8::create();
614
615
390
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
390
            vec_res.resize(col_left->size());
617
390
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
390
                              typename PrimitiveTypeTraits<PT>::CppType,
619
390
                              Op<PT>>::vector_constant(col_left->get_data(),
620
390
                                                       col_right->get_element(0), vec_res);
621
622
390
            block.replace_by_position(result, std::move(col_res));
623
390
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
559
        return Status::OK();
636
559
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
397
                            const ColumnPtr& col_right_ptr) const {
593
397
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
397
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
397
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
397
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
397
        DCHECK(!(left_is_const && right_is_const));
600
601
397
        if (!left_is_const && !right_is_const) {
602
206
            auto col_res = ColumnUInt8::create();
603
604
206
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
206
            vec_res.resize(col_left->get_data().size());
606
206
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
206
                              typename PrimitiveTypeTraits<PT>::CppType,
608
206
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
206
                                                     vec_res);
610
611
206
            block.replace_by_position(result, std::move(col_res));
612
206
        } else if (!left_is_const && right_is_const) {
613
191
            auto col_res = ColumnUInt8::create();
614
615
191
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
191
            vec_res.resize(col_left->size());
617
191
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
191
                              typename PrimitiveTypeTraits<PT>::CppType,
619
191
                              Op<PT>>::vector_constant(col_left->get_data(),
620
191
                                                       col_right->get_element(0), vec_res);
621
622
191
            block.replace_by_position(result, std::move(col_res));
623
191
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
397
        return Status::OK();
636
397
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
201
                            const ColumnPtr& col_right_ptr) const {
593
201
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
201
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
201
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
201
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
201
        DCHECK(!(left_is_const && right_is_const));
600
601
201
        if (!left_is_const && !right_is_const) {
602
116
            auto col_res = ColumnUInt8::create();
603
604
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
116
            vec_res.resize(col_left->get_data().size());
606
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
116
                              typename PrimitiveTypeTraits<PT>::CppType,
608
116
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
116
                                                     vec_res);
610
611
116
            block.replace_by_position(result, std::move(col_res));
612
116
        } else if (!left_is_const && right_is_const) {
613
74
            auto col_res = ColumnUInt8::create();
614
615
74
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
74
            vec_res.resize(col_left->size());
617
74
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
74
                              typename PrimitiveTypeTraits<PT>::CppType,
619
74
                              Op<PT>>::vector_constant(col_left->get_data(),
620
74
                                                       col_right->get_element(0), vec_res);
621
622
74
            block.replace_by_position(result, std::move(col_res));
623
74
        } else if (left_is_const && !right_is_const) {
624
12
            auto col_res = ColumnUInt8::create();
625
626
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
12
            vec_res.resize(col_right->size());
628
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
12
                              typename PrimitiveTypeTraits<PT>::CppType,
630
12
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
12
                                                       col_right->get_data(), vec_res);
632
633
12
            block.replace_by_position(result, std::move(col_res));
634
12
        }
635
201
        return Status::OK();
636
201
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
13
                            const ColumnPtr& col_right_ptr) const {
593
13
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
13
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
13
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
13
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
13
        DCHECK(!(left_is_const && right_is_const));
600
601
13
        if (!left_is_const && !right_is_const) {
602
3
            auto col_res = ColumnUInt8::create();
603
604
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
3
            vec_res.resize(col_left->get_data().size());
606
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
3
                              typename PrimitiveTypeTraits<PT>::CppType,
608
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
3
                                                     vec_res);
610
611
3
            block.replace_by_position(result, std::move(col_res));
612
10
        } else if (!left_is_const && right_is_const) {
613
10
            auto col_res = ColumnUInt8::create();
614
615
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
10
            vec_res.resize(col_left->size());
617
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
10
                              typename PrimitiveTypeTraits<PT>::CppType,
619
10
                              Op<PT>>::vector_constant(col_left->get_data(),
620
10
                                                       col_right->get_element(0), vec_res);
621
622
10
            block.replace_by_position(result, std::move(col_res));
623
10
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
13
        return Status::OK();
636
13
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
6.18k
                            const ColumnPtr& col_right_ptr) const {
593
6.18k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
6.18k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
6.18k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
6.18k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
6.18k
        DCHECK(!(left_is_const && right_is_const));
600
601
6.18k
        if (!left_is_const && !right_is_const) {
602
188
            auto col_res = ColumnUInt8::create();
603
604
188
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
188
            vec_res.resize(col_left->get_data().size());
606
188
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
188
                              typename PrimitiveTypeTraits<PT>::CppType,
608
188
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
188
                                                     vec_res);
610
611
188
            block.replace_by_position(result, std::move(col_res));
612
5.99k
        } else if (!left_is_const && right_is_const) {
613
5.71k
            auto col_res = ColumnUInt8::create();
614
615
5.71k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
5.71k
            vec_res.resize(col_left->size());
617
5.71k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
5.71k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
5.71k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
5.71k
                                                       col_right->get_element(0), vec_res);
621
622
5.71k
            block.replace_by_position(result, std::move(col_res));
623
5.71k
        } else if (left_is_const && !right_is_const) {
624
276
            auto col_res = ColumnUInt8::create();
625
626
276
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
276
            vec_res.resize(col_right->size());
628
276
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
276
                              typename PrimitiveTypeTraits<PT>::CppType,
630
276
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
276
                                                       col_right->get_data(), vec_res);
632
633
276
            block.replace_by_position(result, std::move(col_res));
634
276
        }
635
6.18k
        return Status::OK();
636
6.18k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
396
                            const ColumnPtr& col_right_ptr) const {
593
396
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
396
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
396
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
396
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
396
        DCHECK(!(left_is_const && right_is_const));
600
601
396
        if (!left_is_const && !right_is_const) {
602
92
            auto col_res = ColumnUInt8::create();
603
604
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
92
            vec_res.resize(col_left->get_data().size());
606
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
92
                              typename PrimitiveTypeTraits<PT>::CppType,
608
92
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
92
                                                     vec_res);
610
611
92
            block.replace_by_position(result, std::move(col_res));
612
304
        } else if (!left_is_const && right_is_const) {
613
269
            auto col_res = ColumnUInt8::create();
614
615
269
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
269
            vec_res.resize(col_left->size());
617
269
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
269
                              typename PrimitiveTypeTraits<PT>::CppType,
619
269
                              Op<PT>>::vector_constant(col_left->get_data(),
620
269
                                                       col_right->get_element(0), vec_res);
621
622
269
            block.replace_by_position(result, std::move(col_res));
623
269
        } else if (left_is_const && !right_is_const) {
624
36
            auto col_res = ColumnUInt8::create();
625
626
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
36
            vec_res.resize(col_right->size());
628
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
36
                              typename PrimitiveTypeTraits<PT>::CppType,
630
36
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
36
                                                       col_right->get_data(), vec_res);
632
633
36
            block.replace_by_position(result, std::move(col_res));
634
36
        }
635
396
        return Status::OK();
636
396
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
4.08k
                            const ColumnPtr& col_right_ptr) const {
593
4.08k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
4.08k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
4.08k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
4.08k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
4.08k
        DCHECK(!(left_is_const && right_is_const));
600
601
4.08k
        if (!left_is_const && !right_is_const) {
602
1.02k
            auto col_res = ColumnUInt8::create();
603
604
1.02k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1.02k
            vec_res.resize(col_left->get_data().size());
606
1.02k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1.02k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1.02k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1.02k
                                                     vec_res);
610
611
1.02k
            block.replace_by_position(result, std::move(col_res));
612
3.05k
        } else if (!left_is_const && right_is_const) {
613
2.57k
            auto col_res = ColumnUInt8::create();
614
615
2.57k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
2.57k
            vec_res.resize(col_left->size());
617
2.57k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
2.57k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
2.57k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
2.57k
                                                       col_right->get_element(0), vec_res);
621
622
2.57k
            block.replace_by_position(result, std::move(col_res));
623
2.57k
        } else if (left_is_const && !right_is_const) {
624
490
            auto col_res = ColumnUInt8::create();
625
626
490
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
490
            vec_res.resize(col_right->size());
628
490
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
490
                              typename PrimitiveTypeTraits<PT>::CppType,
630
490
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
490
                                                       col_right->get_data(), vec_res);
632
633
490
            block.replace_by_position(result, std::move(col_res));
634
490
        }
635
4.08k
        return Status::OK();
636
4.08k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
7.43k
                            const ColumnPtr& col_right_ptr) const {
593
7.43k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
7.43k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
7.43k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
7.43k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
7.43k
        DCHECK(!(left_is_const && right_is_const));
600
601
7.43k
        if (!left_is_const && !right_is_const) {
602
184
            auto col_res = ColumnUInt8::create();
603
604
184
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
184
            vec_res.resize(col_left->get_data().size());
606
184
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
184
                              typename PrimitiveTypeTraits<PT>::CppType,
608
184
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
184
                                                     vec_res);
610
611
184
            block.replace_by_position(result, std::move(col_res));
612
7.24k
        } else if (!left_is_const && right_is_const) {
613
6.05k
            auto col_res = ColumnUInt8::create();
614
615
6.05k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
6.05k
            vec_res.resize(col_left->size());
617
6.05k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
6.05k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
6.05k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
6.05k
                                                       col_right->get_element(0), vec_res);
621
622
6.05k
            block.replace_by_position(result, std::move(col_res));
623
6.05k
        } else if (left_is_const && !right_is_const) {
624
1.19k
            auto col_res = ColumnUInt8::create();
625
626
1.19k
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
1.19k
            vec_res.resize(col_right->size());
628
1.19k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
1.19k
                              typename PrimitiveTypeTraits<PT>::CppType,
630
1.19k
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
1.19k
                                                       col_right->get_data(), vec_res);
632
633
1.19k
            block.replace_by_position(result, std::move(col_res));
634
1.19k
        }
635
7.43k
        return Status::OK();
636
7.43k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
85
                            const ColumnPtr& col_right_ptr) const {
593
85
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
85
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
85
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
85
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
85
        DCHECK(!(left_is_const && right_is_const));
600
601
85
        if (!left_is_const && !right_is_const) {
602
52
            auto col_res = ColumnUInt8::create();
603
604
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
52
            vec_res.resize(col_left->get_data().size());
606
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
52
                              typename PrimitiveTypeTraits<PT>::CppType,
608
52
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
52
                                                     vec_res);
610
611
52
            block.replace_by_position(result, std::move(col_res));
612
52
        } else if (!left_is_const && right_is_const) {
613
29
            auto col_res = ColumnUInt8::create();
614
615
29
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
29
            vec_res.resize(col_left->size());
617
29
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
29
                              typename PrimitiveTypeTraits<PT>::CppType,
619
29
                              Op<PT>>::vector_constant(col_left->get_data(),
620
29
                                                       col_right->get_element(0), vec_res);
621
622
29
            block.replace_by_position(result, std::move(col_res));
623
29
        } else if (left_is_const && !right_is_const) {
624
4
            auto col_res = ColumnUInt8::create();
625
626
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
4
            vec_res.resize(col_right->size());
628
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
4
                              typename PrimitiveTypeTraits<PT>::CppType,
630
4
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
4
                                                       col_right->get_data(), vec_res);
632
633
4
            block.replace_by_position(result, std::move(col_res));
634
4
        }
635
85
        return Status::OK();
636
85
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
12
                            const ColumnPtr& col_right_ptr) const {
593
12
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
12
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
12
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
12
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
12
        DCHECK(!(left_is_const && right_is_const));
600
601
12
        if (!left_is_const && !right_is_const) {
602
5
            auto col_res = ColumnUInt8::create();
603
604
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
5
            vec_res.resize(col_left->get_data().size());
606
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
5
                              typename PrimitiveTypeTraits<PT>::CppType,
608
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
5
                                                     vec_res);
610
611
5
            block.replace_by_position(result, std::move(col_res));
612
7
        } else if (!left_is_const && right_is_const) {
613
7
            auto col_res = ColumnUInt8::create();
614
615
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
7
            vec_res.resize(col_left->size());
617
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
7
                              typename PrimitiveTypeTraits<PT>::CppType,
619
7
                              Op<PT>>::vector_constant(col_left->get_data(),
620
7
                                                       col_right->get_element(0), vec_res);
621
622
7
            block.replace_by_position(result, std::move(col_res));
623
7
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
12
        return Status::OK();
636
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
17
                            const ColumnPtr& col_right_ptr) const {
593
17
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
17
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
17
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
17
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
17
        DCHECK(!(left_is_const && right_is_const));
600
601
17
        if (!left_is_const && !right_is_const) {
602
13
            auto col_res = ColumnUInt8::create();
603
604
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
13
            vec_res.resize(col_left->get_data().size());
606
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
13
                              typename PrimitiveTypeTraits<PT>::CppType,
608
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
13
                                                     vec_res);
610
611
13
            block.replace_by_position(result, std::move(col_res));
612
13
        } else if (!left_is_const && right_is_const) {
613
4
            auto col_res = ColumnUInt8::create();
614
615
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
4
            vec_res.resize(col_left->size());
617
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
4
                              typename PrimitiveTypeTraits<PT>::CppType,
619
4
                              Op<PT>>::vector_constant(col_left->get_data(),
620
4
                                                       col_right->get_element(0), vec_res);
621
622
4
            block.replace_by_position(result, std::move(col_res));
623
4
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
17
        return Status::OK();
636
17
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.79k
                            const ColumnPtr& col_right_ptr) const {
593
2.79k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.79k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.79k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.79k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.79k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.79k
        if (!left_is_const && !right_is_const) {
602
779
            auto col_res = ColumnUInt8::create();
603
604
779
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
779
            vec_res.resize(col_left->get_data().size());
606
779
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
779
                              typename PrimitiveTypeTraits<PT>::CppType,
608
779
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
779
                                                     vec_res);
610
611
779
            block.replace_by_position(result, std::move(col_res));
612
2.02k
        } else if (!left_is_const && right_is_const) {
613
1.96k
            auto col_res = ColumnUInt8::create();
614
615
1.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.96k
            vec_res.resize(col_left->size());
617
1.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.96k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.96k
                                                       col_right->get_element(0), vec_res);
621
622
1.96k
            block.replace_by_position(result, std::move(col_res));
623
1.96k
        } else if (left_is_const && !right_is_const) {
624
54
            auto col_res = ColumnUInt8::create();
625
626
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
54
            vec_res.resize(col_right->size());
628
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
54
                              typename PrimitiveTypeTraits<PT>::CppType,
630
54
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
54
                                                       col_right->get_data(), vec_res);
632
633
54
            block.replace_by_position(result, std::move(col_res));
634
54
        }
635
2.79k
        return Status::OK();
636
2.79k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
71
                            const ColumnPtr& col_right_ptr) const {
593
71
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
71
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
71
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
71
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
71
        DCHECK(!(left_is_const && right_is_const));
600
601
71
        if (!left_is_const && !right_is_const) {
602
71
            auto col_res = ColumnUInt8::create();
603
604
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
71
            vec_res.resize(col_left->get_data().size());
606
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
71
                              typename PrimitiveTypeTraits<PT>::CppType,
608
71
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
71
                                                     vec_res);
610
611
71
            block.replace_by_position(result, std::move(col_res));
612
71
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
71
        return Status::OK();
636
71
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
851
                            const ColumnPtr& col_right_ptr) const {
593
851
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
851
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
851
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
851
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
851
        DCHECK(!(left_is_const && right_is_const));
600
601
851
        if (!left_is_const && !right_is_const) {
602
85
            auto col_res = ColumnUInt8::create();
603
604
85
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
85
            vec_res.resize(col_left->get_data().size());
606
85
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
85
                              typename PrimitiveTypeTraits<PT>::CppType,
608
85
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
85
                                                     vec_res);
610
611
85
            block.replace_by_position(result, std::move(col_res));
612
766
        } else if (!left_is_const && right_is_const) {
613
766
            auto col_res = ColumnUInt8::create();
614
615
766
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
766
            vec_res.resize(col_left->size());
617
766
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
766
                              typename PrimitiveTypeTraits<PT>::CppType,
619
766
                              Op<PT>>::vector_constant(col_left->get_data(),
620
766
                                                       col_right->get_element(0), vec_res);
621
622
766
            block.replace_by_position(result, std::move(col_res));
623
766
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
851
        return Status::OK();
636
851
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
4
                            const ColumnPtr& col_right_ptr) const {
593
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
4
        DCHECK(!(left_is_const && right_is_const));
600
601
4
        if (!left_is_const && !right_is_const) {
602
4
            auto col_res = ColumnUInt8::create();
603
604
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
4
            vec_res.resize(col_left->get_data().size());
606
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
4
                              typename PrimitiveTypeTraits<PT>::CppType,
608
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
4
                                                     vec_res);
610
611
4
            block.replace_by_position(result, std::move(col_res));
612
4
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
4
        return Status::OK();
636
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
592
70
                            const ColumnPtr& col_right_ptr) const {
593
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
70
        DCHECK(!(left_is_const && right_is_const));
600
601
70
        if (!left_is_const && !right_is_const) {
602
39
            auto col_res = ColumnUInt8::create();
603
604
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
39
            vec_res.resize(col_left->get_data().size());
606
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
39
                              typename PrimitiveTypeTraits<PT>::CppType,
608
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
39
                                                     vec_res);
610
611
39
            block.replace_by_position(result, std::move(col_res));
612
39
        } else if (!left_is_const && right_is_const) {
613
31
            auto col_res = ColumnUInt8::create();
614
615
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
31
            vec_res.resize(col_left->size());
617
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
31
                              typename PrimitiveTypeTraits<PT>::CppType,
619
31
                              Op<PT>>::vector_constant(col_left->get_data(),
620
31
                                                       col_right->get_element(0), vec_res);
621
622
31
            block.replace_by_position(result, std::move(col_res));
623
31
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
70
        return Status::OK();
636
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
592
8
                            const ColumnPtr& col_right_ptr) const {
593
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
8
        DCHECK(!(left_is_const && right_is_const));
600
601
8
        if (!left_is_const && !right_is_const) {
602
8
            auto col_res = ColumnUInt8::create();
603
604
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
8
            vec_res.resize(col_left->get_data().size());
606
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
8
                              typename PrimitiveTypeTraits<PT>::CppType,
608
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
8
                                                     vec_res);
610
611
8
            block.replace_by_position(result, std::move(col_res));
612
8
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
8
        return Status::OK();
636
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
592
84
                            const ColumnPtr& col_right_ptr) const {
593
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
84
        DCHECK(!(left_is_const && right_is_const));
600
601
84
        if (!left_is_const && !right_is_const) {
602
56
            auto col_res = ColumnUInt8::create();
603
604
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
56
            vec_res.resize(col_left->get_data().size());
606
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
56
                              typename PrimitiveTypeTraits<PT>::CppType,
608
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
56
                                                     vec_res);
610
611
56
            block.replace_by_position(result, std::move(col_res));
612
56
        } else if (!left_is_const && right_is_const) {
613
28
            auto col_res = ColumnUInt8::create();
614
615
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
28
            vec_res.resize(col_left->size());
617
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
28
                              typename PrimitiveTypeTraits<PT>::CppType,
619
28
                              Op<PT>>::vector_constant(col_left->get_data(),
620
28
                                                       col_right->get_element(0), vec_res);
621
622
28
            block.replace_by_position(result, std::move(col_res));
623
28
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
84
        return Status::OK();
636
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
592
1.54k
                            const ColumnPtr& col_right_ptr) const {
593
1.54k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.54k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.54k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.54k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.54k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.54k
        if (!left_is_const && !right_is_const) {
602
1.31k
            auto col_res = ColumnUInt8::create();
603
604
1.31k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1.31k
            vec_res.resize(col_left->get_data().size());
606
1.31k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1.31k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1.31k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1.31k
                                                     vec_res);
610
611
1.31k
            block.replace_by_position(result, std::move(col_res));
612
1.31k
        } else if (!left_is_const && right_is_const) {
613
226
            auto col_res = ColumnUInt8::create();
614
615
226
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
226
            vec_res.resize(col_left->size());
617
226
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
226
                              typename PrimitiveTypeTraits<PT>::CppType,
619
226
                              Op<PT>>::vector_constant(col_left->get_data(),
620
226
                                                       col_right->get_element(0), vec_res);
621
622
226
            block.replace_by_position(result, std::move(col_res));
623
18.4E
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
1.54k
        return Status::OK();
636
1.54k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.19k
                            const ColumnPtr& col_right_ptr) const {
593
1.19k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.19k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.19k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.19k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.19k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.19k
        if (!left_is_const && !right_is_const) {
602
399
            auto col_res = ColumnUInt8::create();
603
604
399
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
399
            vec_res.resize(col_left->get_data().size());
606
399
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
399
                              typename PrimitiveTypeTraits<PT>::CppType,
608
399
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
399
                                                     vec_res);
610
611
399
            block.replace_by_position(result, std::move(col_res));
612
792
        } else if (!left_is_const && right_is_const) {
613
37
            auto col_res = ColumnUInt8::create();
614
615
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
37
            vec_res.resize(col_left->size());
617
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
37
                              typename PrimitiveTypeTraits<PT>::CppType,
619
37
                              Op<PT>>::vector_constant(col_left->get_data(),
620
37
                                                       col_right->get_element(0), vec_res);
621
622
37
            block.replace_by_position(result, std::move(col_res));
623
758
        } else if (left_is_const && !right_is_const) {
624
758
            auto col_res = ColumnUInt8::create();
625
626
758
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
758
            vec_res.resize(col_right->size());
628
758
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
758
                              typename PrimitiveTypeTraits<PT>::CppType,
630
758
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
758
                                                       col_right->get_data(), vec_res);
632
633
758
            block.replace_by_position(result, std::move(col_res));
634
758
        }
635
1.19k
        return Status::OK();
636
1.19k
    }
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
592
48
                            const ColumnPtr& col_right_ptr) const {
593
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
48
        DCHECK(!(left_is_const && right_is_const));
600
601
48
        if (!left_is_const && !right_is_const) {
602
20
            auto col_res = ColumnUInt8::create();
603
604
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
20
            vec_res.resize(col_left->get_data().size());
606
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
20
                              typename PrimitiveTypeTraits<PT>::CppType,
608
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
20
                                                     vec_res);
610
611
20
            block.replace_by_position(result, std::move(col_res));
612
28
        } else if (!left_is_const && right_is_const) {
613
28
            auto col_res = ColumnUInt8::create();
614
615
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
28
            vec_res.resize(col_left->size());
617
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
28
                              typename PrimitiveTypeTraits<PT>::CppType,
619
28
                              Op<PT>>::vector_constant(col_left->get_data(),
620
28
                                                       col_right->get_element(0), vec_res);
621
622
28
            block.replace_by_position(result, std::move(col_res));
623
28
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
48
        return Status::OK();
636
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
63
                            const ColumnPtr& col_right_ptr) const {
593
63
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
63
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
63
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
63
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
63
        DCHECK(!(left_is_const && right_is_const));
600
601
63
        if (!left_is_const && !right_is_const) {
602
22
            auto col_res = ColumnUInt8::create();
603
604
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
22
            vec_res.resize(col_left->get_data().size());
606
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
22
                              typename PrimitiveTypeTraits<PT>::CppType,
608
22
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
22
                                                     vec_res);
610
611
22
            block.replace_by_position(result, std::move(col_res));
612
41
        } else if (!left_is_const && right_is_const) {
613
40
            auto col_res = ColumnUInt8::create();
614
615
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
40
            vec_res.resize(col_left->size());
617
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
40
                              typename PrimitiveTypeTraits<PT>::CppType,
619
40
                              Op<PT>>::vector_constant(col_left->get_data(),
620
40
                                                       col_right->get_element(0), vec_res);
621
622
40
            block.replace_by_position(result, std::move(col_res));
623
40
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
63
        return Status::OK();
636
63
    }
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
592
1.45k
                            const ColumnPtr& col_right_ptr) const {
593
1.45k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.45k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.45k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.45k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.45k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.45k
        if (!left_is_const && !right_is_const) {
602
1.41k
            auto col_res = ColumnUInt8::create();
603
604
1.41k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1.41k
            vec_res.resize(col_left->get_data().size());
606
1.41k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1.41k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1.41k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1.41k
                                                     vec_res);
610
611
1.41k
            block.replace_by_position(result, std::move(col_res));
612
1.41k
        } else if (!left_is_const && right_is_const) {
613
41
            auto col_res = ColumnUInt8::create();
614
615
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
41
            vec_res.resize(col_left->size());
617
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
41
                              typename PrimitiveTypeTraits<PT>::CppType,
619
41
                              Op<PT>>::vector_constant(col_left->get_data(),
620
41
                                                       col_right->get_element(0), vec_res);
621
622
41
            block.replace_by_position(result, std::move(col_res));
623
18.4E
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
1.45k
        return Status::OK();
636
1.45k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
3
                            const ColumnPtr& col_right_ptr) const {
593
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
3
        DCHECK(!(left_is_const && right_is_const));
600
601
3
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
3
        } else if (!left_is_const && right_is_const) {
613
3
            auto col_res = ColumnUInt8::create();
614
615
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
3
            vec_res.resize(col_left->size());
617
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
3
                              typename PrimitiveTypeTraits<PT>::CppType,
619
3
                              Op<PT>>::vector_constant(col_left->get_data(),
620
3
                                                       col_right->get_element(0), vec_res);
621
622
3
            block.replace_by_position(result, std::move(col_res));
623
3
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
3
        return Status::OK();
636
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
67
                            const ColumnPtr& col_right_ptr) const {
593
67
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
67
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
67
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
67
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
67
        DCHECK(!(left_is_const && right_is_const));
600
601
67
        if (!left_is_const && !right_is_const) {
602
33
            auto col_res = ColumnUInt8::create();
603
604
33
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
33
            vec_res.resize(col_left->get_data().size());
606
33
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
33
                              typename PrimitiveTypeTraits<PT>::CppType,
608
33
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
33
                                                     vec_res);
610
611
33
            block.replace_by_position(result, std::move(col_res));
612
34
        } else if (!left_is_const && right_is_const) {
613
34
            auto col_res = ColumnUInt8::create();
614
615
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
34
            vec_res.resize(col_left->size());
617
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
34
                              typename PrimitiveTypeTraits<PT>::CppType,
619
34
                              Op<PT>>::vector_constant(col_left->get_data(),
620
34
                                                       col_right->get_element(0), vec_res);
621
622
34
            block.replace_by_position(result, std::move(col_res));
623
34
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
67
        return Status::OK();
636
67
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2
                            const ColumnPtr& col_right_ptr) const {
593
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2
        DCHECK(!(left_is_const && right_is_const));
600
601
2
        if (!left_is_const && !right_is_const) {
602
2
            auto col_res = ColumnUInt8::create();
603
604
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
2
            vec_res.resize(col_left->get_data().size());
606
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
2
                              typename PrimitiveTypeTraits<PT>::CppType,
608
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
2
                                                     vec_res);
610
611
2
            block.replace_by_position(result, std::move(col_res));
612
2
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
2
        return Status::OK();
636
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.53k
                            const ColumnPtr& col_right_ptr) const {
593
1.53k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.53k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.53k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.53k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.53k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.53k
        if (!left_is_const && !right_is_const) {
602
76
            auto col_res = ColumnUInt8::create();
603
604
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
76
            vec_res.resize(col_left->get_data().size());
606
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
76
                              typename PrimitiveTypeTraits<PT>::CppType,
608
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
76
                                                     vec_res);
610
611
76
            block.replace_by_position(result, std::move(col_res));
612
1.46k
        } else if (!left_is_const && right_is_const) {
613
1.23k
            auto col_res = ColumnUInt8::create();
614
615
1.23k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.23k
            vec_res.resize(col_left->size());
617
1.23k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.23k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.23k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.23k
                                                       col_right->get_element(0), vec_res);
621
622
1.23k
            block.replace_by_position(result, std::move(col_res));
623
1.23k
        } else if (left_is_const && !right_is_const) {
624
228
            auto col_res = ColumnUInt8::create();
625
626
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
228
            vec_res.resize(col_right->size());
628
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
228
                              typename PrimitiveTypeTraits<PT>::CppType,
630
228
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
228
                                                       col_right->get_data(), vec_res);
632
633
228
            block.replace_by_position(result, std::move(col_res));
634
228
        }
635
1.53k
        return Status::OK();
636
1.53k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.34k
                            const ColumnPtr& col_right_ptr) const {
593
2.34k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.34k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.34k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.34k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.34k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.34k
        if (!left_is_const && !right_is_const) {
602
112
            auto col_res = ColumnUInt8::create();
603
604
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
112
            vec_res.resize(col_left->get_data().size());
606
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
112
                              typename PrimitiveTypeTraits<PT>::CppType,
608
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
112
                                                     vec_res);
610
611
112
            block.replace_by_position(result, std::move(col_res));
612
2.23k
        } else if (!left_is_const && right_is_const) {
613
2.00k
            auto col_res = ColumnUInt8::create();
614
615
2.00k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
2.00k
            vec_res.resize(col_left->size());
617
2.00k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
2.00k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
2.00k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
2.00k
                                                       col_right->get_element(0), vec_res);
621
622
2.00k
            block.replace_by_position(result, std::move(col_res));
623
2.00k
        } else if (left_is_const && !right_is_const) {
624
228
            auto col_res = ColumnUInt8::create();
625
626
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
228
            vec_res.resize(col_right->size());
628
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
228
                              typename PrimitiveTypeTraits<PT>::CppType,
630
228
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
228
                                                       col_right->get_data(), vec_res);
632
633
228
            block.replace_by_position(result, std::move(col_res));
634
228
        }
635
2.34k
        return Status::OK();
636
2.34k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
67.9k
                            const ColumnPtr& col_right_ptr) const {
593
67.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
67.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
67.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
67.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
67.9k
        DCHECK(!(left_is_const && right_is_const));
600
601
67.9k
        if (!left_is_const && !right_is_const) {
602
74
            auto col_res = ColumnUInt8::create();
603
604
74
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
74
            vec_res.resize(col_left->get_data().size());
606
74
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
74
                              typename PrimitiveTypeTraits<PT>::CppType,
608
74
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
74
                                                     vec_res);
610
611
74
            block.replace_by_position(result, std::move(col_res));
612
67.9k
        } else if (!left_is_const && right_is_const) {
613
5.37k
            auto col_res = ColumnUInt8::create();
614
615
5.37k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
5.37k
            vec_res.resize(col_left->size());
617
5.37k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
5.37k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
5.37k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
5.37k
                                                       col_right->get_element(0), vec_res);
621
622
5.37k
            block.replace_by_position(result, std::move(col_res));
623
62.5k
        } else if (left_is_const && !right_is_const) {
624
62.5k
            auto col_res = ColumnUInt8::create();
625
626
62.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
62.5k
            vec_res.resize(col_right->size());
628
62.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
62.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
630
62.5k
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
62.5k
                                                       col_right->get_data(), vec_res);
632
633
62.5k
            block.replace_by_position(result, std::move(col_res));
634
62.5k
        }
635
67.9k
        return Status::OK();
636
67.9k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.45k
                            const ColumnPtr& col_right_ptr) const {
593
2.45k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.45k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.45k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.45k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.45k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.45k
        if (!left_is_const && !right_is_const) {
602
183
            auto col_res = ColumnUInt8::create();
603
604
183
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
183
            vec_res.resize(col_left->get_data().size());
606
183
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
183
                              typename PrimitiveTypeTraits<PT>::CppType,
608
183
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
183
                                                     vec_res);
610
611
183
            block.replace_by_position(result, std::move(col_res));
612
2.27k
        } else if (!left_is_const && right_is_const) {
613
1.75k
            auto col_res = ColumnUInt8::create();
614
615
1.75k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.75k
            vec_res.resize(col_left->size());
617
1.75k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.75k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.75k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.75k
                                                       col_right->get_element(0), vec_res);
621
622
1.75k
            block.replace_by_position(result, std::move(col_res));
623
1.75k
        } else if (left_is_const && !right_is_const) {
624
521
            auto col_res = ColumnUInt8::create();
625
626
521
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
521
            vec_res.resize(col_right->size());
628
521
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
521
                              typename PrimitiveTypeTraits<PT>::CppType,
630
521
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
521
                                                       col_right->get_data(), vec_res);
632
633
521
            block.replace_by_position(result, std::move(col_res));
634
521
        }
635
2.45k
        return Status::OK();
636
2.45k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
223
                            const ColumnPtr& col_right_ptr) const {
593
223
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
223
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
223
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
223
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
223
        DCHECK(!(left_is_const && right_is_const));
600
601
223
        if (!left_is_const && !right_is_const) {
602
3
            auto col_res = ColumnUInt8::create();
603
604
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
3
            vec_res.resize(col_left->get_data().size());
606
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
3
                              typename PrimitiveTypeTraits<PT>::CppType,
608
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
3
                                                     vec_res);
610
611
3
            block.replace_by_position(result, std::move(col_res));
612
220
        } else if (!left_is_const && right_is_const) {
613
202
            auto col_res = ColumnUInt8::create();
614
615
202
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
202
            vec_res.resize(col_left->size());
617
202
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
202
                              typename PrimitiveTypeTraits<PT>::CppType,
619
202
                              Op<PT>>::vector_constant(col_left->get_data(),
620
202
                                                       col_right->get_element(0), vec_res);
621
622
202
            block.replace_by_position(result, std::move(col_res));
623
202
        } else if (left_is_const && !right_is_const) {
624
18
            auto col_res = ColumnUInt8::create();
625
626
18
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
18
            vec_res.resize(col_right->size());
628
18
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
18
                              typename PrimitiveTypeTraits<PT>::CppType,
630
18
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
18
                                                       col_right->get_data(), vec_res);
632
633
18
            block.replace_by_position(result, std::move(col_res));
634
18
        }
635
223
        return Status::OK();
636
223
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
4
                            const ColumnPtr& col_right_ptr) const {
593
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
4
        DCHECK(!(left_is_const && right_is_const));
600
601
4
        if (!left_is_const && !right_is_const) {
602
1
            auto col_res = ColumnUInt8::create();
603
604
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1
            vec_res.resize(col_left->get_data().size());
606
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1
                                                     vec_res);
610
611
1
            block.replace_by_position(result, std::move(col_res));
612
3
        } else if (!left_is_const && right_is_const) {
613
3
            auto col_res = ColumnUInt8::create();
614
615
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
3
            vec_res.resize(col_left->size());
617
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
3
                              typename PrimitiveTypeTraits<PT>::CppType,
619
3
                              Op<PT>>::vector_constant(col_left->get_data(),
620
3
                                                       col_right->get_element(0), vec_res);
621
622
3
            block.replace_by_position(result, std::move(col_res));
623
3
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
4
        return Status::OK();
636
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1
                            const ColumnPtr& col_right_ptr) const {
593
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1
        DCHECK(!(left_is_const && right_is_const));
600
601
1
        if (!left_is_const && !right_is_const) {
602
1
            auto col_res = ColumnUInt8::create();
603
604
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1
            vec_res.resize(col_left->get_data().size());
606
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1
                                                     vec_res);
610
611
1
            block.replace_by_position(result, std::move(col_res));
612
1
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
1
        return Status::OK();
636
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
611
                            const ColumnPtr& col_right_ptr) const {
593
611
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
611
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
611
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
611
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
611
        DCHECK(!(left_is_const && right_is_const));
600
601
611
        if (!left_is_const && !right_is_const) {
602
104
            auto col_res = ColumnUInt8::create();
603
604
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
104
            vec_res.resize(col_left->get_data().size());
606
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
104
                              typename PrimitiveTypeTraits<PT>::CppType,
608
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
104
                                                     vec_res);
610
611
104
            block.replace_by_position(result, std::move(col_res));
612
507
        } else if (!left_is_const && right_is_const) {
613
507
            auto col_res = ColumnUInt8::create();
614
615
507
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
507
            vec_res.resize(col_left->size());
617
507
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
507
                              typename PrimitiveTypeTraits<PT>::CppType,
619
507
                              Op<PT>>::vector_constant(col_left->get_data(),
620
507
                                                       col_right->get_element(0), vec_res);
621
622
507
            block.replace_by_position(result, std::move(col_res));
623
507
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
611
        return Status::OK();
636
611
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
325
                            const ColumnPtr& col_right_ptr) const {
593
325
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
325
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
325
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
325
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
325
        DCHECK(!(left_is_const && right_is_const));
600
601
325
        if (!left_is_const && !right_is_const) {
602
20
            auto col_res = ColumnUInt8::create();
603
604
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
20
            vec_res.resize(col_left->get_data().size());
606
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
20
                              typename PrimitiveTypeTraits<PT>::CppType,
608
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
20
                                                     vec_res);
610
611
20
            block.replace_by_position(result, std::move(col_res));
612
305
        } else if (!left_is_const && right_is_const) {
613
305
            auto col_res = ColumnUInt8::create();
614
615
305
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
305
            vec_res.resize(col_left->size());
617
305
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
305
                              typename PrimitiveTypeTraits<PT>::CppType,
619
305
                              Op<PT>>::vector_constant(col_left->get_data(),
620
305
                                                       col_right->get_element(0), vec_res);
621
622
305
            block.replace_by_position(result, std::move(col_res));
623
305
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
325
        return Status::OK();
636
325
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
544
                            const ColumnPtr& col_right_ptr) const {
593
544
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
544
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
544
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
544
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
544
        DCHECK(!(left_is_const && right_is_const));
600
601
545
        if (!left_is_const && !right_is_const) {
602
33
            auto col_res = ColumnUInt8::create();
603
604
33
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
33
            vec_res.resize(col_left->get_data().size());
606
33
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
33
                              typename PrimitiveTypeTraits<PT>::CppType,
608
33
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
33
                                                     vec_res);
610
611
33
            block.replace_by_position(result, std::move(col_res));
612
512
        } else if (!left_is_const && right_is_const) {
613
512
            auto col_res = ColumnUInt8::create();
614
615
512
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
512
            vec_res.resize(col_left->size());
617
512
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
512
                              typename PrimitiveTypeTraits<PT>::CppType,
619
512
                              Op<PT>>::vector_constant(col_left->get_data(),
620
512
                                                       col_right->get_element(0), vec_res);
621
622
512
            block.replace_by_position(result, std::move(col_res));
623
18.4E
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
544
        return Status::OK();
636
544
    }
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
592
34
                            const ColumnPtr& col_right_ptr) const {
593
34
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
34
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
34
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
34
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
34
        DCHECK(!(left_is_const && right_is_const));
600
601
34
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
34
        } else if (!left_is_const && right_is_const) {
613
34
            auto col_res = ColumnUInt8::create();
614
615
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
34
            vec_res.resize(col_left->size());
617
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
34
                              typename PrimitiveTypeTraits<PT>::CppType,
619
34
                              Op<PT>>::vector_constant(col_left->get_data(),
620
34
                                                       col_right->get_element(0), vec_res);
621
622
34
            block.replace_by_position(result, std::move(col_res));
623
34
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
34
        return Status::OK();
636
34
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
461
                            const ColumnPtr& col_right_ptr) const {
593
461
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
461
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
461
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
461
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
461
        DCHECK(!(left_is_const && right_is_const));
600
601
461
        if (!left_is_const && !right_is_const) {
602
1
            auto col_res = ColumnUInt8::create();
603
604
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1
            vec_res.resize(col_left->get_data().size());
606
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1
                                                     vec_res);
610
611
1
            block.replace_by_position(result, std::move(col_res));
612
460
        } else if (!left_is_const && right_is_const) {
613
454
            auto col_res = ColumnUInt8::create();
614
615
454
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
454
            vec_res.resize(col_left->size());
617
454
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
454
                              typename PrimitiveTypeTraits<PT>::CppType,
619
454
                              Op<PT>>::vector_constant(col_left->get_data(),
620
454
                                                       col_right->get_element(0), vec_res);
621
622
454
            block.replace_by_position(result, std::move(col_res));
623
454
        } else if (left_is_const && !right_is_const) {
624
6
            auto col_res = ColumnUInt8::create();
625
626
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
6
            vec_res.resize(col_right->size());
628
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
6
                              typename PrimitiveTypeTraits<PT>::CppType,
630
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
6
                                                       col_right->get_data(), vec_res);
632
633
6
            block.replace_by_position(result, std::move(col_res));
634
6
        }
635
461
        return Status::OK();
636
461
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
123
                            const ColumnPtr& col_right_ptr) const {
593
123
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
123
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
123
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
123
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
123
        DCHECK(!(left_is_const && right_is_const));
600
601
123
        if (!left_is_const && !right_is_const) {
602
7
            auto col_res = ColumnUInt8::create();
603
604
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
7
            vec_res.resize(col_left->get_data().size());
606
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
7
                              typename PrimitiveTypeTraits<PT>::CppType,
608
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
7
                                                     vec_res);
610
611
7
            block.replace_by_position(result, std::move(col_res));
612
116
        } else if (!left_is_const && right_is_const) {
613
116
            auto col_res = ColumnUInt8::create();
614
615
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
116
            vec_res.resize(col_left->size());
617
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
116
                              typename PrimitiveTypeTraits<PT>::CppType,
619
116
                              Op<PT>>::vector_constant(col_left->get_data(),
620
116
                                                       col_right->get_element(0), vec_res);
621
622
116
            block.replace_by_position(result, std::move(col_res));
623
116
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
123
        return Status::OK();
636
123
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
402
                            const ColumnPtr& col_right_ptr) const {
593
402
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
402
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
402
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
402
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
402
        DCHECK(!(left_is_const && right_is_const));
600
601
402
        if (!left_is_const && !right_is_const) {
602
357
            auto col_res = ColumnUInt8::create();
603
604
357
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
357
            vec_res.resize(col_left->get_data().size());
606
357
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
357
                              typename PrimitiveTypeTraits<PT>::CppType,
608
357
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
357
                                                     vec_res);
610
611
357
            block.replace_by_position(result, std::move(col_res));
612
357
        } else if (!left_is_const && right_is_const) {
613
43
            auto col_res = ColumnUInt8::create();
614
615
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
43
            vec_res.resize(col_left->size());
617
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
43
                              typename PrimitiveTypeTraits<PT>::CppType,
619
43
                              Op<PT>>::vector_constant(col_left->get_data(),
620
43
                                                       col_right->get_element(0), vec_res);
621
622
43
            block.replace_by_position(result, std::move(col_res));
623
43
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
402
        return Status::OK();
636
402
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2
                            const ColumnPtr& col_right_ptr) const {
593
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2
        DCHECK(!(left_is_const && right_is_const));
600
601
2
        if (!left_is_const && !right_is_const) {
602
2
            auto col_res = ColumnUInt8::create();
603
604
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
2
            vec_res.resize(col_left->get_data().size());
606
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
2
                              typename PrimitiveTypeTraits<PT>::CppType,
608
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
2
                                                     vec_res);
610
611
2
            block.replace_by_position(result, std::move(col_res));
612
2
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
2
        return Status::OK();
636
2
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
60
                            const ColumnPtr& col_right_ptr) const {
593
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
60
        DCHECK(!(left_is_const && right_is_const));
600
601
60
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
60
        } else if (!left_is_const && right_is_const) {
613
60
            auto col_res = ColumnUInt8::create();
614
615
60
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
60
            vec_res.resize(col_left->size());
617
60
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
60
                              typename PrimitiveTypeTraits<PT>::CppType,
619
60
                              Op<PT>>::vector_constant(col_left->get_data(),
620
60
                                                       col_right->get_element(0), vec_res);
621
622
60
            block.replace_by_position(result, std::move(col_res));
623
60
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
60
        return Status::OK();
636
60
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
57
                            const ColumnPtr& col_right_ptr) const {
593
57
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
57
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
57
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
57
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
57
        DCHECK(!(left_is_const && right_is_const));
600
601
57
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
57
        } else if (!left_is_const && right_is_const) {
613
57
            auto col_res = ColumnUInt8::create();
614
615
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
57
            vec_res.resize(col_left->size());
617
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
57
                              typename PrimitiveTypeTraits<PT>::CppType,
619
57
                              Op<PT>>::vector_constant(col_left->get_data(),
620
57
                                                       col_right->get_element(0), vec_res);
621
622
57
            block.replace_by_position(result, std::move(col_res));
623
57
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
57
        return Status::OK();
636
57
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.09k
                            const ColumnPtr& col_right_ptr) const {
593
1.09k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.09k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.09k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.09k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.09k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.10k
        if (!left_is_const && !right_is_const) {
602
18
            auto col_res = ColumnUInt8::create();
603
604
18
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
18
            vec_res.resize(col_left->get_data().size());
606
18
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
18
                              typename PrimitiveTypeTraits<PT>::CppType,
608
18
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
18
                                                     vec_res);
610
611
18
            block.replace_by_position(result, std::move(col_res));
612
1.08k
        } else if (!left_is_const && right_is_const) {
613
1.08k
            auto col_res = ColumnUInt8::create();
614
615
1.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.08k
            vec_res.resize(col_left->size());
617
1.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.08k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.08k
                                                       col_right->get_element(0), vec_res);
621
622
1.08k
            block.replace_by_position(result, std::move(col_res));
623
18.4E
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
1.09k
        return Status::OK();
636
1.09k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
799
                            const ColumnPtr& col_right_ptr) const {
593
799
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
799
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
799
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
799
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
799
        DCHECK(!(left_is_const && right_is_const));
600
601
799
        if (!left_is_const && !right_is_const) {
602
32
            auto col_res = ColumnUInt8::create();
603
604
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
32
            vec_res.resize(col_left->get_data().size());
606
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
32
                              typename PrimitiveTypeTraits<PT>::CppType,
608
32
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
32
                                                     vec_res);
610
611
32
            block.replace_by_position(result, std::move(col_res));
612
767
        } else if (!left_is_const && right_is_const) {
613
767
            auto col_res = ColumnUInt8::create();
614
615
767
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
767
            vec_res.resize(col_left->size());
617
767
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
767
                              typename PrimitiveTypeTraits<PT>::CppType,
619
767
                              Op<PT>>::vector_constant(col_left->get_data(),
620
767
                                                       col_right->get_element(0), vec_res);
621
622
767
            block.replace_by_position(result, std::move(col_res));
623
767
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
799
        return Status::OK();
636
799
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
27
                            const ColumnPtr& col_right_ptr) const {
593
27
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
27
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
27
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
27
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
27
        DCHECK(!(left_is_const && right_is_const));
600
601
27
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
27
        } else if (!left_is_const && right_is_const) {
613
27
            auto col_res = ColumnUInt8::create();
614
615
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
27
            vec_res.resize(col_left->size());
617
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
27
                              typename PrimitiveTypeTraits<PT>::CppType,
619
27
                              Op<PT>>::vector_constant(col_left->get_data(),
620
27
                                                       col_right->get_element(0), vec_res);
621
622
27
            block.replace_by_position(result, std::move(col_res));
623
27
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
27
        return Status::OK();
636
27
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1
                            const ColumnPtr& col_right_ptr) const {
593
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1
        DCHECK(!(left_is_const && right_is_const));
600
601
1
        if (!left_is_const && !right_is_const) {
602
1
            auto col_res = ColumnUInt8::create();
603
604
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1
            vec_res.resize(col_left->get_data().size());
606
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1
                                                     vec_res);
610
611
1
            block.replace_by_position(result, std::move(col_res));
612
1
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
1
        return Status::OK();
636
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1
                            const ColumnPtr& col_right_ptr) const {
593
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1
        DCHECK(!(left_is_const && right_is_const));
600
601
1
        if (!left_is_const && !right_is_const) {
602
1
            auto col_res = ColumnUInt8::create();
603
604
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1
            vec_res.resize(col_left->get_data().size());
606
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1
                                                     vec_res);
610
611
1
            block.replace_by_position(result, std::move(col_res));
612
1
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
1
        return Status::OK();
636
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
577
                            const ColumnPtr& col_right_ptr) const {
593
577
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
577
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
577
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
577
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
577
        DCHECK(!(left_is_const && right_is_const));
600
601
577
        if (!left_is_const && !right_is_const) {
602
108
            auto col_res = ColumnUInt8::create();
603
604
108
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
108
            vec_res.resize(col_left->get_data().size());
606
108
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
108
                              typename PrimitiveTypeTraits<PT>::CppType,
608
108
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
108
                                                     vec_res);
610
611
108
            block.replace_by_position(result, std::move(col_res));
612
469
        } else if (!left_is_const && right_is_const) {
613
469
            auto col_res = ColumnUInt8::create();
614
615
469
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
469
            vec_res.resize(col_left->size());
617
469
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
469
                              typename PrimitiveTypeTraits<PT>::CppType,
619
469
                              Op<PT>>::vector_constant(col_left->get_data(),
620
469
                                                       col_right->get_element(0), vec_res);
621
622
469
            block.replace_by_position(result, std::move(col_res));
623
469
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
577
        return Status::OK();
636
577
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
22
                            const ColumnPtr& col_right_ptr) const {
593
22
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
22
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
22
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
22
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
22
        DCHECK(!(left_is_const && right_is_const));
600
601
23
        if (!left_is_const && !right_is_const) {
602
20
            auto col_res = ColumnUInt8::create();
603
604
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
20
            vec_res.resize(col_left->get_data().size());
606
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
20
                              typename PrimitiveTypeTraits<PT>::CppType,
608
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
20
                                                     vec_res);
610
611
20
            block.replace_by_position(result, std::move(col_res));
612
20
        } else if (!left_is_const && right_is_const) {
613
4
            auto col_res = ColumnUInt8::create();
614
615
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
4
            vec_res.resize(col_left->size());
617
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
4
                              typename PrimitiveTypeTraits<PT>::CppType,
619
4
                              Op<PT>>::vector_constant(col_left->get_data(),
620
4
                                                       col_right->get_element(0), vec_res);
621
622
4
            block.replace_by_position(result, std::move(col_res));
623
18.4E
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
22
        return Status::OK();
636
22
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
145
                            const ColumnPtr& col_right_ptr) const {
593
145
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
145
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
145
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
145
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
145
        DCHECK(!(left_is_const && right_is_const));
600
601
145
        if (!left_is_const && !right_is_const) {
602
24
            auto col_res = ColumnUInt8::create();
603
604
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
24
            vec_res.resize(col_left->get_data().size());
606
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
24
                              typename PrimitiveTypeTraits<PT>::CppType,
608
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
24
                                                     vec_res);
610
611
24
            block.replace_by_position(result, std::move(col_res));
612
121
        } else if (!left_is_const && right_is_const) {
613
121
            auto col_res = ColumnUInt8::create();
614
615
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
121
            vec_res.resize(col_left->size());
617
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
121
                              typename PrimitiveTypeTraits<PT>::CppType,
619
121
                              Op<PT>>::vector_constant(col_left->get_data(),
620
121
                                                       col_right->get_element(0), vec_res);
621
622
121
            block.replace_by_position(result, std::move(col_res));
623
121
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
145
        return Status::OK();
636
145
    }
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
592
90
                            const ColumnPtr& col_right_ptr) const {
593
90
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
90
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
90
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
90
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
90
        DCHECK(!(left_is_const && right_is_const));
600
601
91
        if (!left_is_const && !right_is_const) {
602
91
            auto col_res = ColumnUInt8::create();
603
604
91
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
91
            vec_res.resize(col_left->get_data().size());
606
91
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
91
                              typename PrimitiveTypeTraits<PT>::CppType,
608
91
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
91
                                                     vec_res);
610
611
91
            block.replace_by_position(result, std::move(col_res));
612
18.4E
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
18.4E
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
90
        return Status::OK();
636
90
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.10k
                            const ColumnPtr& col_right_ptr) const {
593
2.10k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.10k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.10k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.10k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.10k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.10k
        if (!left_is_const && !right_is_const) {
602
1.74k
            auto col_res = ColumnUInt8::create();
603
604
1.74k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1.74k
            vec_res.resize(col_left->get_data().size());
606
1.74k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1.74k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1.74k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1.74k
                                                     vec_res);
610
611
1.74k
            block.replace_by_position(result, std::move(col_res));
612
1.74k
        } else if (!left_is_const && right_is_const) {
613
359
            auto col_res = ColumnUInt8::create();
614
615
359
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
359
            vec_res.resize(col_left->size());
617
359
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
359
                              typename PrimitiveTypeTraits<PT>::CppType,
619
359
                              Op<PT>>::vector_constant(col_left->get_data(),
620
359
                                                       col_right->get_element(0), vec_res);
621
622
359
            block.replace_by_position(result, std::move(col_res));
623
18.4E
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
2.10k
        return Status::OK();
636
2.10k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
295
                            const ColumnPtr& col_right_ptr) const {
593
295
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
295
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
295
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
295
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
295
        DCHECK(!(left_is_const && right_is_const));
600
601
295
        if (!left_is_const && !right_is_const) {
602
236
            auto col_res = ColumnUInt8::create();
603
604
236
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
236
            vec_res.resize(col_left->get_data().size());
606
236
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
236
                              typename PrimitiveTypeTraits<PT>::CppType,
608
236
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
236
                                                     vec_res);
610
611
236
            block.replace_by_position(result, std::move(col_res));
612
236
        } else if (!left_is_const && right_is_const) {
613
59
            auto col_res = ColumnUInt8::create();
614
615
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
59
            vec_res.resize(col_left->size());
617
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
59
                              typename PrimitiveTypeTraits<PT>::CppType,
619
59
                              Op<PT>>::vector_constant(col_left->get_data(),
620
59
                                                       col_right->get_element(0), vec_res);
621
622
59
            block.replace_by_position(result, std::move(col_res));
623
59
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
295
        return Status::OK();
636
295
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
149
                            const ColumnPtr& col_right_ptr) const {
593
149
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
149
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
149
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
149
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
149
        DCHECK(!(left_is_const && right_is_const));
600
601
149
        if (!left_is_const && !right_is_const) {
602
110
            auto col_res = ColumnUInt8::create();
603
604
110
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
110
            vec_res.resize(col_left->get_data().size());
606
110
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
110
                              typename PrimitiveTypeTraits<PT>::CppType,
608
110
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
110
                                                     vec_res);
610
611
110
            block.replace_by_position(result, std::move(col_res));
612
110
        } else if (!left_is_const && right_is_const) {
613
39
            auto col_res = ColumnUInt8::create();
614
615
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
39
            vec_res.resize(col_left->size());
617
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
39
                              typename PrimitiveTypeTraits<PT>::CppType,
619
39
                              Op<PT>>::vector_constant(col_left->get_data(),
620
39
                                                       col_right->get_element(0), vec_res);
621
622
39
            block.replace_by_position(result, std::move(col_res));
623
39
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
149
        return Status::OK();
636
149
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
3
                            const ColumnPtr& col_right_ptr) const {
593
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
3
        DCHECK(!(left_is_const && right_is_const));
600
601
3
        if (!left_is_const && !right_is_const) {
602
2
            auto col_res = ColumnUInt8::create();
603
604
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
2
            vec_res.resize(col_left->get_data().size());
606
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
2
                              typename PrimitiveTypeTraits<PT>::CppType,
608
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
2
                                                     vec_res);
610
611
2
            block.replace_by_position(result, std::move(col_res));
612
2
        } else if (!left_is_const && right_is_const) {
613
1
            auto col_res = ColumnUInt8::create();
614
615
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1
            vec_res.resize(col_left->size());
617
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1
                                                       col_right->get_element(0), vec_res);
621
622
1
            block.replace_by_position(result, std::move(col_res));
623
1
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
3
        return Status::OK();
636
3
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.39k
                            const ColumnPtr& col_right_ptr) const {
593
2.39k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.39k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.39k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.39k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.39k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.39k
        if (!left_is_const && !right_is_const) {
602
226
            auto col_res = ColumnUInt8::create();
603
604
226
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
226
            vec_res.resize(col_left->get_data().size());
606
226
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
226
                              typename PrimitiveTypeTraits<PT>::CppType,
608
226
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
226
                                                     vec_res);
610
611
226
            block.replace_by_position(result, std::move(col_res));
612
2.16k
        } else if (!left_is_const && right_is_const) {
613
1.93k
            auto col_res = ColumnUInt8::create();
614
615
1.93k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.93k
            vec_res.resize(col_left->size());
617
1.93k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.93k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.93k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.93k
                                                       col_right->get_element(0), vec_res);
621
622
1.93k
            block.replace_by_position(result, std::move(col_res));
623
1.93k
        } else if (left_is_const && !right_is_const) {
624
240
            auto col_res = ColumnUInt8::create();
625
626
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
240
            vec_res.resize(col_right->size());
628
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
240
                              typename PrimitiveTypeTraits<PT>::CppType,
630
240
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
240
                                                       col_right->get_data(), vec_res);
632
633
240
            block.replace_by_position(result, std::move(col_res));
634
240
        }
635
2.39k
        return Status::OK();
636
2.39k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
170
                            const ColumnPtr& col_right_ptr) const {
593
170
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
170
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
170
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
170
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
170
        DCHECK(!(left_is_const && right_is_const));
600
601
170
        if (!left_is_const && !right_is_const) {
602
156
            auto col_res = ColumnUInt8::create();
603
604
156
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
156
            vec_res.resize(col_left->get_data().size());
606
156
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
156
                              typename PrimitiveTypeTraits<PT>::CppType,
608
156
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
156
                                                     vec_res);
610
611
156
            block.replace_by_position(result, std::move(col_res));
612
156
        } else if (!left_is_const && right_is_const) {
613
14
            auto col_res = ColumnUInt8::create();
614
615
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
14
            vec_res.resize(col_left->size());
617
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
14
                              typename PrimitiveTypeTraits<PT>::CppType,
619
14
                              Op<PT>>::vector_constant(col_left->get_data(),
620
14
                                                       col_right->get_element(0), vec_res);
621
622
14
            block.replace_by_position(result, std::move(col_res));
623
14
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
170
        return Status::OK();
636
170
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.04k
                            const ColumnPtr& col_right_ptr) const {
593
2.04k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.04k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.04k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.04k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.04k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.04k
        if (!left_is_const && !right_is_const) {
602
905
            auto col_res = ColumnUInt8::create();
603
604
905
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
905
            vec_res.resize(col_left->get_data().size());
606
905
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
905
                              typename PrimitiveTypeTraits<PT>::CppType,
608
905
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
905
                                                     vec_res);
610
611
905
            block.replace_by_position(result, std::move(col_res));
612
1.13k
        } else if (!left_is_const && right_is_const) {
613
944
            auto col_res = ColumnUInt8::create();
614
615
944
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
944
            vec_res.resize(col_left->size());
617
944
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
944
                              typename PrimitiveTypeTraits<PT>::CppType,
619
944
                              Op<PT>>::vector_constant(col_left->get_data(),
620
944
                                                       col_right->get_element(0), vec_res);
621
622
944
            block.replace_by_position(result, std::move(col_res));
623
944
        } else if (left_is_const && !right_is_const) {
624
193
            auto col_res = ColumnUInt8::create();
625
626
193
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
193
            vec_res.resize(col_right->size());
628
193
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
193
                              typename PrimitiveTypeTraits<PT>::CppType,
630
193
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
193
                                                       col_right->get_data(), vec_res);
632
633
193
            block.replace_by_position(result, std::move(col_res));
634
193
        }
635
2.04k
        return Status::OK();
636
2.04k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
917
                            const ColumnPtr& col_right_ptr) const {
593
917
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
917
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
917
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
917
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
917
        DCHECK(!(left_is_const && right_is_const));
600
601
917
        if (!left_is_const && !right_is_const) {
602
270
            auto col_res = ColumnUInt8::create();
603
604
270
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
270
            vec_res.resize(col_left->get_data().size());
606
270
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
270
                              typename PrimitiveTypeTraits<PT>::CppType,
608
270
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
270
                                                     vec_res);
610
611
270
            block.replace_by_position(result, std::move(col_res));
612
647
        } else if (!left_is_const && right_is_const) {
613
566
            auto col_res = ColumnUInt8::create();
614
615
566
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
566
            vec_res.resize(col_left->size());
617
566
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
566
                              typename PrimitiveTypeTraits<PT>::CppType,
619
566
                              Op<PT>>::vector_constant(col_left->get_data(),
620
566
                                                       col_right->get_element(0), vec_res);
621
622
566
            block.replace_by_position(result, std::move(col_res));
623
566
        } else if (left_is_const && !right_is_const) {
624
80
            auto col_res = ColumnUInt8::create();
625
626
80
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
80
            vec_res.resize(col_right->size());
628
80
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
80
                              typename PrimitiveTypeTraits<PT>::CppType,
630
80
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
80
                                                       col_right->get_data(), vec_res);
632
633
80
            block.replace_by_position(result, std::move(col_res));
634
80
        }
635
917
        return Status::OK();
636
917
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
274
                            const ColumnPtr& col_right_ptr) const {
593
274
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
274
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
274
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
274
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
274
        DCHECK(!(left_is_const && right_is_const));
600
601
274
        if (!left_is_const && !right_is_const) {
602
136
            auto col_res = ColumnUInt8::create();
603
604
136
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
136
            vec_res.resize(col_left->get_data().size());
606
136
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
136
                              typename PrimitiveTypeTraits<PT>::CppType,
608
136
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
136
                                                     vec_res);
610
611
136
            block.replace_by_position(result, std::move(col_res));
612
138
        } else if (!left_is_const && right_is_const) {
613
46
            auto col_res = ColumnUInt8::create();
614
615
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
46
            vec_res.resize(col_left->size());
617
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
46
                              typename PrimitiveTypeTraits<PT>::CppType,
619
46
                              Op<PT>>::vector_constant(col_left->get_data(),
620
46
                                                       col_right->get_element(0), vec_res);
621
622
46
            block.replace_by_position(result, std::move(col_res));
623
92
        } else if (left_is_const && !right_is_const) {
624
92
            auto col_res = ColumnUInt8::create();
625
626
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
92
            vec_res.resize(col_right->size());
628
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
92
                              typename PrimitiveTypeTraits<PT>::CppType,
630
92
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
92
                                                       col_right->get_data(), vec_res);
632
633
92
            block.replace_by_position(result, std::move(col_res));
634
92
        }
635
274
        return Status::OK();
636
274
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
17
                            const ColumnPtr& col_right_ptr) const {
593
17
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
17
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
17
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
17
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
17
        DCHECK(!(left_is_const && right_is_const));
600
601
17
        if (!left_is_const && !right_is_const) {
602
15
            auto col_res = ColumnUInt8::create();
603
604
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
15
            vec_res.resize(col_left->get_data().size());
606
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
15
                              typename PrimitiveTypeTraits<PT>::CppType,
608
15
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
15
                                                     vec_res);
610
611
15
            block.replace_by_position(result, std::move(col_res));
612
15
        } else if (!left_is_const && right_is_const) {
613
2
            auto col_res = ColumnUInt8::create();
614
615
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
2
            vec_res.resize(col_left->size());
617
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
2
                              typename PrimitiveTypeTraits<PT>::CppType,
619
2
                              Op<PT>>::vector_constant(col_left->get_data(),
620
2
                                                       col_right->get_element(0), vec_res);
621
622
2
            block.replace_by_position(result, std::move(col_res));
623
2
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
17
        return Status::OK();
636
17
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
15
                            const ColumnPtr& col_right_ptr) const {
593
15
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
15
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
15
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
15
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
15
        DCHECK(!(left_is_const && right_is_const));
600
601
15
        if (!left_is_const && !right_is_const) {
602
15
            auto col_res = ColumnUInt8::create();
603
604
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
15
            vec_res.resize(col_left->get_data().size());
606
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
15
                              typename PrimitiveTypeTraits<PT>::CppType,
608
15
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
15
                                                     vec_res);
610
611
15
            block.replace_by_position(result, std::move(col_res));
612
15
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
15
        return Status::OK();
636
15
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
457
                            const ColumnPtr& col_right_ptr) const {
593
457
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
457
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
457
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
457
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
457
        DCHECK(!(left_is_const && right_is_const));
600
601
457
        if (!left_is_const && !right_is_const) {
602
110
            auto col_res = ColumnUInt8::create();
603
604
110
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
110
            vec_res.resize(col_left->get_data().size());
606
110
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
110
                              typename PrimitiveTypeTraits<PT>::CppType,
608
110
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
110
                                                     vec_res);
610
611
110
            block.replace_by_position(result, std::move(col_res));
612
347
        } else if (!left_is_const && right_is_const) {
613
347
            auto col_res = ColumnUInt8::create();
614
615
347
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
347
            vec_res.resize(col_left->size());
617
347
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
347
                              typename PrimitiveTypeTraits<PT>::CppType,
619
347
                              Op<PT>>::vector_constant(col_left->get_data(),
620
347
                                                       col_right->get_element(0), vec_res);
621
622
347
            block.replace_by_position(result, std::move(col_res));
623
347
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
457
        return Status::OK();
636
457
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
130
                            const ColumnPtr& col_right_ptr) const {
593
130
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
130
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
130
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
130
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
130
        DCHECK(!(left_is_const && right_is_const));
600
601
130
        if (!left_is_const && !right_is_const) {
602
130
            auto col_res = ColumnUInt8::create();
603
604
130
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
130
            vec_res.resize(col_left->get_data().size());
606
130
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
130
                              typename PrimitiveTypeTraits<PT>::CppType,
608
130
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
130
                                                     vec_res);
610
611
130
            block.replace_by_position(result, std::move(col_res));
612
130
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
130
        return Status::OK();
636
130
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.22k
                            const ColumnPtr& col_right_ptr) const {
593
1.22k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.22k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.22k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.22k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.22k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.22k
        if (!left_is_const && !right_is_const) {
602
137
            auto col_res = ColumnUInt8::create();
603
604
137
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
137
            vec_res.resize(col_left->get_data().size());
606
137
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
137
                              typename PrimitiveTypeTraits<PT>::CppType,
608
137
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
137
                                                     vec_res);
610
611
137
            block.replace_by_position(result, std::move(col_res));
612
1.08k
        } else if (!left_is_const && right_is_const) {
613
1.08k
            auto col_res = ColumnUInt8::create();
614
615
1.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.08k
            vec_res.resize(col_left->size());
617
1.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.08k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.08k
                                                       col_right->get_element(0), vec_res);
621
622
1.08k
            block.replace_by_position(result, std::move(col_res));
623
1.08k
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
1.22k
        return Status::OK();
636
1.22k
    }
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
592
33
                            const ColumnPtr& col_right_ptr) const {
593
33
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
33
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
33
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
33
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
33
        DCHECK(!(left_is_const && right_is_const));
600
601
33
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
33
        } else if (!left_is_const && right_is_const) {
613
33
            auto col_res = ColumnUInt8::create();
614
615
33
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
33
            vec_res.resize(col_left->size());
617
33
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
33
                              typename PrimitiveTypeTraits<PT>::CppType,
619
33
                              Op<PT>>::vector_constant(col_left->get_data(),
620
33
                                                       col_right->get_element(0), vec_res);
621
622
33
            block.replace_by_position(result, std::move(col_res));
623
33
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
33
        return Status::OK();
636
33
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
534
                            const ColumnPtr& col_right_ptr) const {
593
534
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
534
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
534
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
534
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
534
        DCHECK(!(left_is_const && right_is_const));
600
601
534
        if (!left_is_const && !right_is_const) {
602
371
            auto col_res = ColumnUInt8::create();
603
604
371
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
371
            vec_res.resize(col_left->get_data().size());
606
371
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
371
                              typename PrimitiveTypeTraits<PT>::CppType,
608
371
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
371
                                                     vec_res);
610
611
371
            block.replace_by_position(result, std::move(col_res));
612
371
        } else if (!left_is_const && right_is_const) {
613
160
            auto col_res = ColumnUInt8::create();
614
615
160
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
160
            vec_res.resize(col_left->size());
617
160
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
160
                              typename PrimitiveTypeTraits<PT>::CppType,
619
160
                              Op<PT>>::vector_constant(col_left->get_data(),
620
160
                                                       col_right->get_element(0), vec_res);
621
622
160
            block.replace_by_position(result, std::move(col_res));
623
160
        } else if (left_is_const && !right_is_const) {
624
5
            auto col_res = ColumnUInt8::create();
625
626
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
5
            vec_res.resize(col_right->size());
628
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
5
                              typename PrimitiveTypeTraits<PT>::CppType,
630
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
5
                                                       col_right->get_data(), vec_res);
632
633
5
            block.replace_by_position(result, std::move(col_res));
634
5
        }
635
534
        return Status::OK();
636
534
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
82
                            const ColumnPtr& col_right_ptr) const {
593
82
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
82
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
82
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
82
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
82
        DCHECK(!(left_is_const && right_is_const));
600
601
82
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
82
        } else if (!left_is_const && right_is_const) {
613
82
            auto col_res = ColumnUInt8::create();
614
615
82
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
82
            vec_res.resize(col_left->size());
617
82
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
82
                              typename PrimitiveTypeTraits<PT>::CppType,
619
82
                              Op<PT>>::vector_constant(col_left->get_data(),
620
82
                                                       col_right->get_element(0), vec_res);
621
622
82
            block.replace_by_position(result, std::move(col_res));
623
82
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
82
        return Status::OK();
636
82
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
59
                            const ColumnPtr& col_right_ptr) const {
593
59
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
59
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
59
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
59
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
59
        DCHECK(!(left_is_const && right_is_const));
600
601
59
        if (!left_is_const && !right_is_const) {
602
24
            auto col_res = ColumnUInt8::create();
603
604
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
24
            vec_res.resize(col_left->get_data().size());
606
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
24
                              typename PrimitiveTypeTraits<PT>::CppType,
608
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
24
                                                     vec_res);
610
611
24
            block.replace_by_position(result, std::move(col_res));
612
35
        } else if (!left_is_const && right_is_const) {
613
35
            auto col_res = ColumnUInt8::create();
614
615
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
35
            vec_res.resize(col_left->size());
617
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
35
                              typename PrimitiveTypeTraits<PT>::CppType,
619
35
                              Op<PT>>::vector_constant(col_left->get_data(),
620
35
                                                       col_right->get_element(0), vec_res);
621
622
35
            block.replace_by_position(result, std::move(col_res));
623
35
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
59
        return Status::OK();
636
59
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2
                            const ColumnPtr& col_right_ptr) const {
593
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2
        DCHECK(!(left_is_const && right_is_const));
600
601
2
        if (!left_is_const && !right_is_const) {
602
2
            auto col_res = ColumnUInt8::create();
603
604
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
2
            vec_res.resize(col_left->get_data().size());
606
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
2
                              typename PrimitiveTypeTraits<PT>::CppType,
608
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
2
                                                     vec_res);
610
611
2
            block.replace_by_position(result, std::move(col_res));
612
2
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
2
        return Status::OK();
636
2
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
71
                            const ColumnPtr& col_right_ptr) const {
593
71
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
71
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
71
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
71
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
71
        DCHECK(!(left_is_const && right_is_const));
600
601
71
        if (!left_is_const && !right_is_const) {
602
1
            auto col_res = ColumnUInt8::create();
603
604
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1
            vec_res.resize(col_left->get_data().size());
606
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1
                                                     vec_res);
610
611
1
            block.replace_by_position(result, std::move(col_res));
612
70
        } else if (!left_is_const && right_is_const) {
613
70
            auto col_res = ColumnUInt8::create();
614
615
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
70
            vec_res.resize(col_left->size());
617
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
70
                              typename PrimitiveTypeTraits<PT>::CppType,
619
70
                              Op<PT>>::vector_constant(col_left->get_data(),
620
70
                                                       col_right->get_element(0), vec_res);
621
622
70
            block.replace_by_position(result, std::move(col_res));
623
70
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
71
        return Status::OK();
636
71
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
89
                            const ColumnPtr& col_right_ptr) const {
593
89
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
89
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
89
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
89
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
89
        DCHECK(!(left_is_const && right_is_const));
600
601
89
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
89
        } else if (!left_is_const && right_is_const) {
613
89
            auto col_res = ColumnUInt8::create();
614
615
89
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
89
            vec_res.resize(col_left->size());
617
89
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
89
                              typename PrimitiveTypeTraits<PT>::CppType,
619
89
                              Op<PT>>::vector_constant(col_left->get_data(),
620
89
                                                       col_right->get_element(0), vec_res);
621
622
89
            block.replace_by_position(result, std::move(col_res));
623
89
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
89
        return Status::OK();
636
89
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
6.51k
                            const ColumnPtr& col_right_ptr) const {
593
6.51k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
6.51k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
6.51k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
6.51k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
6.51k
        DCHECK(!(left_is_const && right_is_const));
600
601
6.51k
        if (!left_is_const && !right_is_const) {
602
47
            auto col_res = ColumnUInt8::create();
603
604
47
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
47
            vec_res.resize(col_left->get_data().size());
606
47
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
47
                              typename PrimitiveTypeTraits<PT>::CppType,
608
47
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
47
                                                     vec_res);
610
611
47
            block.replace_by_position(result, std::move(col_res));
612
6.46k
        } else if (!left_is_const && right_is_const) {
613
6.41k
            auto col_res = ColumnUInt8::create();
614
615
6.41k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
6.41k
            vec_res.resize(col_left->size());
617
6.41k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
6.41k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
6.41k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
6.41k
                                                       col_right->get_element(0), vec_res);
621
622
6.41k
            block.replace_by_position(result, std::move(col_res));
623
6.41k
        } else if (left_is_const && !right_is_const) {
624
63
            auto col_res = ColumnUInt8::create();
625
626
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
63
            vec_res.resize(col_right->size());
628
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
63
                              typename PrimitiveTypeTraits<PT>::CppType,
630
63
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
63
                                                       col_right->get_data(), vec_res);
632
633
63
            block.replace_by_position(result, std::move(col_res));
634
63
        }
635
6.51k
        return Status::OK();
636
6.51k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
716
                            const ColumnPtr& col_right_ptr) const {
593
716
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
716
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
716
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
716
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
716
        DCHECK(!(left_is_const && right_is_const));
600
601
716
        if (!left_is_const && !right_is_const) {
602
75
            auto col_res = ColumnUInt8::create();
603
604
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
75
            vec_res.resize(col_left->get_data().size());
606
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
75
                              typename PrimitiveTypeTraits<PT>::CppType,
608
75
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
75
                                                     vec_res);
610
611
75
            block.replace_by_position(result, std::move(col_res));
612
641
        } else if (!left_is_const && right_is_const) {
613
629
            auto col_res = ColumnUInt8::create();
614
615
629
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
629
            vec_res.resize(col_left->size());
617
629
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
629
                              typename PrimitiveTypeTraits<PT>::CppType,
619
629
                              Op<PT>>::vector_constant(col_left->get_data(),
620
629
                                                       col_right->get_element(0), vec_res);
621
622
629
            block.replace_by_position(result, std::move(col_res));
623
629
        } else if (left_is_const && !right_is_const) {
624
12
            auto col_res = ColumnUInt8::create();
625
626
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
12
            vec_res.resize(col_right->size());
628
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
12
                              typename PrimitiveTypeTraits<PT>::CppType,
630
12
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
12
                                                       col_right->get_data(), vec_res);
632
633
12
            block.replace_by_position(result, std::move(col_res));
634
12
        }
635
716
        return Status::OK();
636
716
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
55
                            const ColumnPtr& col_right_ptr) const {
593
55
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
55
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
55
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
55
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
55
        DCHECK(!(left_is_const && right_is_const));
600
601
55
        if (!left_is_const && !right_is_const) {
602
0
            auto col_res = ColumnUInt8::create();
603
604
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
0
            vec_res.resize(col_left->get_data().size());
606
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
0
                              typename PrimitiveTypeTraits<PT>::CppType,
608
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
0
                                                     vec_res);
610
611
0
            block.replace_by_position(result, std::move(col_res));
612
55
        } else if (!left_is_const && right_is_const) {
613
55
            auto col_res = ColumnUInt8::create();
614
615
55
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
55
            vec_res.resize(col_left->size());
617
55
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
55
                              typename PrimitiveTypeTraits<PT>::CppType,
619
55
                              Op<PT>>::vector_constant(col_left->get_data(),
620
55
                                                       col_right->get_element(0), vec_res);
621
622
55
            block.replace_by_position(result, std::move(col_res));
623
55
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
55
        return Status::OK();
636
55
    }
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
592
417
                            const ColumnPtr& col_right_ptr) const {
593
417
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
417
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
417
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
417
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
417
        DCHECK(!(left_is_const && right_is_const));
600
601
417
        if (!left_is_const && !right_is_const) {
602
104
            auto col_res = ColumnUInt8::create();
603
604
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
104
            vec_res.resize(col_left->get_data().size());
606
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
104
                              typename PrimitiveTypeTraits<PT>::CppType,
608
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
104
                                                     vec_res);
610
611
104
            block.replace_by_position(result, std::move(col_res));
612
313
        } else if (!left_is_const && right_is_const) {
613
313
            auto col_res = ColumnUInt8::create();
614
615
313
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
313
            vec_res.resize(col_left->size());
617
313
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
313
                              typename PrimitiveTypeTraits<PT>::CppType,
619
313
                              Op<PT>>::vector_constant(col_left->get_data(),
620
313
                                                       col_right->get_element(0), vec_res);
621
622
313
            block.replace_by_position(result, std::move(col_res));
623
313
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
417
        return Status::OK();
636
417
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
19
                            const ColumnPtr& col_right_ptr) const {
593
19
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
19
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
19
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
19
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
19
        DCHECK(!(left_is_const && right_is_const));
600
601
20
        if (!left_is_const && !right_is_const) {
602
19
            auto col_res = ColumnUInt8::create();
603
604
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
19
            vec_res.resize(col_left->get_data().size());
606
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
19
                              typename PrimitiveTypeTraits<PT>::CppType,
608
19
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
19
                                                     vec_res);
610
611
19
            block.replace_by_position(result, std::move(col_res));
612
19
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
19
        return Status::OK();
636
19
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
133
                            const ColumnPtr& col_right_ptr) const {
593
133
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
133
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
133
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
133
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
133
        DCHECK(!(left_is_const && right_is_const));
600
601
133
        if (!left_is_const && !right_is_const) {
602
20
            auto col_res = ColumnUInt8::create();
603
604
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
20
            vec_res.resize(col_left->get_data().size());
606
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
20
                              typename PrimitiveTypeTraits<PT>::CppType,
608
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
20
                                                     vec_res);
610
611
20
            block.replace_by_position(result, std::move(col_res));
612
113
        } else if (!left_is_const && right_is_const) {
613
113
            auto col_res = ColumnUInt8::create();
614
615
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
113
            vec_res.resize(col_left->size());
617
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
113
                              typename PrimitiveTypeTraits<PT>::CppType,
619
113
                              Op<PT>>::vector_constant(col_left->get_data(),
620
113
                                                       col_right->get_element(0), vec_res);
621
622
113
            block.replace_by_position(result, std::move(col_res));
623
113
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
133
        return Status::OK();
636
133
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
637
638
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
639
3.33k
                           const ColumnWithTypeAndName& col_right) const {
640
3.33k
        auto call = [&](const auto& type) -> bool {
641
3.33k
            using DispatchType = std::decay_t<decltype(type)>;
642
3.33k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
3.33k
                    block, result, col_left, col_right);
644
3.33k
            return true;
645
3.33k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
640
99
        auto call = [&](const auto& type) -> bool {
641
99
            using DispatchType = std::decay_t<decltype(type)>;
642
99
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
99
                    block, result, col_left, col_right);
644
99
            return true;
645
99
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
109
        auto call = [&](const auto& type) -> bool {
641
109
            using DispatchType = std::decay_t<decltype(type)>;
642
109
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
109
                    block, result, col_left, col_right);
644
109
            return true;
645
109
        };
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
640
834
        auto call = [&](const auto& type) -> bool {
641
834
            using DispatchType = std::decay_t<decltype(type)>;
642
834
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
834
                    block, result, col_left, col_right);
644
834
            return true;
645
834
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
640
14
        auto call = [&](const auto& type) -> bool {
641
14
            using DispatchType = std::decay_t<decltype(type)>;
642
14
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
14
                    block, result, col_left, col_right);
644
14
            return true;
645
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
640
65
        auto call = [&](const auto& type) -> bool {
641
65
            using DispatchType = std::decay_t<decltype(type)>;
642
65
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
65
                    block, result, col_left, col_right);
644
65
            return true;
645
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
640
28
        auto call = [&](const auto& type) -> bool {
641
28
            using DispatchType = std::decay_t<decltype(type)>;
642
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
28
                    block, result, col_left, col_right);
644
28
            return true;
645
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
640
30
        auto call = [&](const auto& type) -> bool {
641
30
            using DispatchType = std::decay_t<decltype(type)>;
642
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
30
                    block, result, col_left, col_right);
644
30
            return true;
645
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
640
8
        auto call = [&](const auto& type) -> bool {
641
8
            using DispatchType = std::decay_t<decltype(type)>;
642
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
8
                    block, result, col_left, col_right);
644
8
            return true;
645
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
69
        auto call = [&](const auto& type) -> bool {
641
69
            using DispatchType = std::decay_t<decltype(type)>;
642
69
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
69
                    block, result, col_left, col_right);
644
69
            return true;
645
69
        };
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
640
700
        auto call = [&](const auto& type) -> bool {
641
700
            using DispatchType = std::decay_t<decltype(type)>;
642
700
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
700
                    block, result, col_left, col_right);
644
700
            return true;
645
700
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
640
2
        auto call = [&](const auto& type) -> bool {
641
2
            using DispatchType = std::decay_t<decltype(type)>;
642
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
2
                    block, result, col_left, col_right);
644
2
            return true;
645
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
640
1
        auto call = [&](const auto& type) -> bool {
641
1
            using DispatchType = std::decay_t<decltype(type)>;
642
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
1
                    block, result, col_left, col_right);
644
1
            return true;
645
1
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
73
        auto call = [&](const auto& type) -> bool {
641
73
            using DispatchType = std::decay_t<decltype(type)>;
642
73
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
73
                    block, result, col_left, col_right);
644
73
            return true;
645
73
        };
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
640
74
        auto call = [&](const auto& type) -> bool {
641
74
            using DispatchType = std::decay_t<decltype(type)>;
642
74
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
74
                    block, result, col_left, col_right);
644
74
            return true;
645
74
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
640
17
        auto call = [&](const auto& type) -> bool {
641
17
            using DispatchType = std::decay_t<decltype(type)>;
642
17
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
17
                    block, result, col_left, col_right);
644
17
            return true;
645
17
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
640
165
        auto call = [&](const auto& type) -> bool {
641
165
            using DispatchType = std::decay_t<decltype(type)>;
642
165
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
165
                    block, result, col_left, col_right);
644
165
            return true;
645
165
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
183
        auto call = [&](const auto& type) -> bool {
641
183
            using DispatchType = std::decay_t<decltype(type)>;
642
183
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
183
                    block, result, col_left, col_right);
644
183
            return true;
645
183
        };
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
640
666
        auto call = [&](const auto& type) -> bool {
641
666
            using DispatchType = std::decay_t<decltype(type)>;
642
666
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
666
                    block, result, col_left, col_right);
644
666
            return true;
645
666
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
640
1
        auto call = [&](const auto& type) -> bool {
641
1
            using DispatchType = std::decay_t<decltype(type)>;
642
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
1
                    block, result, col_left, col_right);
644
1
            return true;
645
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
640
4
        auto call = [&](const auto& type) -> bool {
641
4
            using DispatchType = std::decay_t<decltype(type)>;
642
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
4
                    block, result, col_left, col_right);
644
4
            return true;
645
4
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
89
        auto call = [&](const auto& type) -> bool {
641
89
            using DispatchType = std::decay_t<decltype(type)>;
642
89
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
89
                    block, result, col_left, col_right);
644
89
            return true;
645
89
        };
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
640
89
        auto call = [&](const auto& type) -> bool {
641
89
            using DispatchType = std::decay_t<decltype(type)>;
642
89
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
89
                    block, result, col_left, col_right);
644
89
            return true;
645
89
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
640
12
        auto call = [&](const auto& type) -> bool {
641
12
            using DispatchType = std::decay_t<decltype(type)>;
642
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
12
                    block, result, col_left, col_right);
644
12
            return true;
645
12
        };
646
647
3.33k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
648
0
            return Status::RuntimeError(
649
0
                    "type of left column {} is not equal to type of right column {}",
650
0
                    col_left.type->get_name(), col_right.type->get_name());
651
0
        }
652
653
3.33k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
654
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
655
0
                                        col_left.type->get_name(), col_right.type->get_name());
656
0
        }
657
3.33k
        return Status::OK();
658
3.33k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
1.05k
                           const ColumnWithTypeAndName& col_right) const {
640
1.05k
        auto call = [&](const auto& type) -> bool {
641
1.05k
            using DispatchType = std::decay_t<decltype(type)>;
642
1.05k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
1.05k
                    block, result, col_left, col_right);
644
1.05k
            return true;
645
1.05k
        };
646
647
1.05k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
648
0
            return Status::RuntimeError(
649
0
                    "type of left column {} is not equal to type of right column {}",
650
0
                    col_left.type->get_name(), col_right.type->get_name());
651
0
        }
652
653
1.05k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
654
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
655
0
                                        col_left.type->get_name(), col_right.type->get_name());
656
0
        }
657
1.05k
        return Status::OK();
658
1.05k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
123
                           const ColumnWithTypeAndName& col_right) const {
640
123
        auto call = [&](const auto& type) -> bool {
641
123
            using DispatchType = std::decay_t<decltype(type)>;
642
123
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
123
                    block, result, col_left, col_right);
644
123
            return true;
645
123
        };
646
647
123
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
648
0
            return Status::RuntimeError(
649
0
                    "type of left column {} is not equal to type of right column {}",
650
0
                    col_left.type->get_name(), col_right.type->get_name());
651
0
        }
652
653
123
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
654
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
655
0
                                        col_left.type->get_name(), col_right.type->get_name());
656
0
        }
657
123
        return Status::OK();
658
123
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
779
                           const ColumnWithTypeAndName& col_right) const {
640
779
        auto call = [&](const auto& type) -> bool {
641
779
            using DispatchType = std::decay_t<decltype(type)>;
642
779
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
779
                    block, result, col_left, col_right);
644
779
            return true;
645
779
        };
646
647
779
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
648
0
            return Status::RuntimeError(
649
0
                    "type of left column {} is not equal to type of right column {}",
650
0
                    col_left.type->get_name(), col_right.type->get_name());
651
0
        }
652
653
779
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
654
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
655
0
                                        col_left.type->get_name(), col_right.type->get_name());
656
0
        }
657
779
        return Status::OK();
658
779
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
165
                           const ColumnWithTypeAndName& col_right) const {
640
165
        auto call = [&](const auto& type) -> bool {
641
165
            using DispatchType = std::decay_t<decltype(type)>;
642
165
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
165
                    block, result, col_left, col_right);
644
165
            return true;
645
165
        };
646
647
165
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
648
0
            return Status::RuntimeError(
649
0
                    "type of left column {} is not equal to type of right column {}",
650
0
                    col_left.type->get_name(), col_right.type->get_name());
651
0
        }
652
653
165
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
654
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
655
0
                                        col_left.type->get_name(), col_right.type->get_name());
656
0
        }
657
165
        return Status::OK();
658
165
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
1.01k
                           const ColumnWithTypeAndName& col_right) const {
640
1.01k
        auto call = [&](const auto& type) -> bool {
641
1.01k
            using DispatchType = std::decay_t<decltype(type)>;
642
1.01k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
1.01k
                    block, result, col_left, col_right);
644
1.01k
            return true;
645
1.01k
        };
646
647
1.01k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
648
0
            return Status::RuntimeError(
649
0
                    "type of left column {} is not equal to type of right column {}",
650
0
                    col_left.type->get_name(), col_right.type->get_name());
651
0
        }
652
653
1.01k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
654
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
655
0
                                        col_left.type->get_name(), col_right.type->get_name());
656
0
        }
657
1.01k
        return Status::OK();
658
1.01k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
194
                           const ColumnWithTypeAndName& col_right) const {
640
194
        auto call = [&](const auto& type) -> bool {
641
194
            using DispatchType = std::decay_t<decltype(type)>;
642
194
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
194
                    block, result, col_left, col_right);
644
194
            return true;
645
194
        };
646
647
194
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
648
0
            return Status::RuntimeError(
649
0
                    "type of left column {} is not equal to type of right column {}",
650
0
                    col_left.type->get_name(), col_right.type->get_name());
651
0
        }
652
653
194
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
654
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
655
0
                                        col_left.type->get_name(), col_right.type->get_name());
656
0
        }
657
194
        return Status::OK();
658
194
    }
659
660
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
661
21.8k
                          const IColumn* c1) const {
662
21.8k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
21.8k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
21.8k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
21.8k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
21.8k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
667
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
668
0
                                        c0->get_name(), c1->get_name(), name);
669
0
        }
670
21.8k
        DCHECK(!(c0_const && c1_const));
671
21.8k
        const ColumnString::Chars* c0_const_chars = nullptr;
672
21.8k
        const ColumnString::Chars* c1_const_chars = nullptr;
673
21.8k
        ColumnString::Offset c0_const_size = 0;
674
21.8k
        ColumnString::Offset c1_const_size = 0;
675
676
21.8k
        if (c0_const) {
677
74
            const ColumnString* c0_const_string =
678
74
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
74
            if (c0_const_string) {
681
74
                c0_const_chars = &c0_const_string->get_chars();
682
74
                c0_const_size = c0_const_string->get_offsets()[0];
683
74
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
74
        }
688
689
21.8k
        if (c1_const) {
690
20.9k
            const ColumnString* c1_const_string =
691
20.9k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
20.9k
            if (c1_const_string) {
694
20.9k
                c1_const_chars = &c1_const_string->get_chars();
695
20.9k
                c1_const_size = c1_const_string->get_offsets()[0];
696
18.4E
            } else {
697
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
18.4E
                                            c1->get_name(), name);
699
18.4E
            }
700
20.9k
        }
701
702
21.8k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
21.8k
        auto c_res = ColumnUInt8::create();
705
21.8k
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
21.8k
        vec_res.resize(c0->size());
707
708
21.8k
        if (c0_string && c1_string) {
709
854
            StringImpl::string_vector_string_vector(
710
854
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
854
                    c1_string->get_offsets(), vec_res);
712
21.0k
        } else if (c0_string && c1_const) {
713
20.9k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
20.9k
                                               *c1_const_chars, c1_const_size, vec_res);
715
20.9k
        } else if (c0_const && c1_string) {
716
74
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
74
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
74
                                               vec_res);
719
18.4E
        } else {
720
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
18.4E
                                        c0->get_name(), c1->get_name(), name);
722
18.4E
        }
723
21.8k
        block.replace_by_position(result, std::move(c_res));
724
21.8k
        return Status::OK();
725
21.8k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
20.3k
                          const IColumn* c1) const {
662
20.3k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
20.3k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
20.3k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
20.3k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
20.3k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
667
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
668
0
                                        c0->get_name(), c1->get_name(), name);
669
0
        }
670
20.3k
        DCHECK(!(c0_const && c1_const));
671
20.3k
        const ColumnString::Chars* c0_const_chars = nullptr;
672
20.3k
        const ColumnString::Chars* c1_const_chars = nullptr;
673
20.3k
        ColumnString::Offset c0_const_size = 0;
674
20.3k
        ColumnString::Offset c1_const_size = 0;
675
676
20.3k
        if (c0_const) {
677
16
            const ColumnString* c0_const_string =
678
16
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
16
            if (c0_const_string) {
681
16
                c0_const_chars = &c0_const_string->get_chars();
682
16
                c0_const_size = c0_const_string->get_offsets()[0];
683
16
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
16
        }
688
689
20.3k
        if (c1_const) {
690
19.8k
            const ColumnString* c1_const_string =
691
19.8k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
19.9k
            if (c1_const_string) {
694
19.9k
                c1_const_chars = &c1_const_string->get_chars();
695
19.9k
                c1_const_size = c1_const_string->get_offsets()[0];
696
18.4E
            } else {
697
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
18.4E
                                            c1->get_name(), name);
699
18.4E
            }
700
19.8k
        }
701
702
20.3k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
20.3k
        auto c_res = ColumnUInt8::create();
705
20.3k
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
20.3k
        vec_res.resize(c0->size());
707
708
20.3k
        if (c0_string && c1_string) {
709
421
            StringImpl::string_vector_string_vector(
710
421
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
421
                    c1_string->get_offsets(), vec_res);
712
19.9k
        } else if (c0_string && c1_const) {
713
19.9k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
19.9k
                                               *c1_const_chars, c1_const_size, vec_res);
715
19.9k
        } else if (c0_const && c1_string) {
716
16
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
16
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
16
                                               vec_res);
719
18.4E
        } else {
720
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
18.4E
                                        c0->get_name(), c1->get_name(), name);
722
18.4E
        }
723
20.3k
        block.replace_by_position(result, std::move(c_res));
724
20.3k
        return Status::OK();
725
20.3k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
133
                          const IColumn* c1) const {
662
133
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
133
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
133
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
133
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
133
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
667
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
668
0
                                        c0->get_name(), c1->get_name(), name);
669
0
        }
670
133
        DCHECK(!(c0_const && c1_const));
671
133
        const ColumnString::Chars* c0_const_chars = nullptr;
672
133
        const ColumnString::Chars* c1_const_chars = nullptr;
673
133
        ColumnString::Offset c0_const_size = 0;
674
133
        ColumnString::Offset c1_const_size = 0;
675
676
133
        if (c0_const) {
677
0
            const ColumnString* c0_const_string =
678
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
0
            if (c0_const_string) {
681
0
                c0_const_chars = &c0_const_string->get_chars();
682
0
                c0_const_size = c0_const_string->get_offsets()[0];
683
0
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
0
        }
688
689
133
        if (c1_const) {
690
116
            const ColumnString* c1_const_string =
691
116
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
116
            if (c1_const_string) {
694
116
                c1_const_chars = &c1_const_string->get_chars();
695
116
                c1_const_size = c1_const_string->get_offsets()[0];
696
116
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
116
        }
701
702
133
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
133
        auto c_res = ColumnUInt8::create();
705
133
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
133
        vec_res.resize(c0->size());
707
708
133
        if (c0_string && c1_string) {
709
17
            StringImpl::string_vector_string_vector(
710
17
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
17
                    c1_string->get_offsets(), vec_res);
712
116
        } else if (c0_string && c1_const) {
713
116
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
116
                                               *c1_const_chars, c1_const_size, vec_res);
715
116
        } else if (c0_const && c1_string) {
716
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
0
                                               vec_res);
719
0
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
133
        block.replace_by_position(result, std::move(c_res));
724
133
        return Status::OK();
725
133
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
235
                          const IColumn* c1) const {
662
235
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
235
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
235
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
235
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
235
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
667
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
668
0
                                        c0->get_name(), c1->get_name(), name);
669
0
        }
670
235
        DCHECK(!(c0_const && c1_const));
671
235
        const ColumnString::Chars* c0_const_chars = nullptr;
672
235
        const ColumnString::Chars* c1_const_chars = nullptr;
673
235
        ColumnString::Offset c0_const_size = 0;
674
235
        ColumnString::Offset c1_const_size = 0;
675
676
235
        if (c0_const) {
677
0
            const ColumnString* c0_const_string =
678
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
0
            if (c0_const_string) {
681
0
                c0_const_chars = &c0_const_string->get_chars();
682
0
                c0_const_size = c0_const_string->get_offsets()[0];
683
0
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
0
        }
688
689
235
        if (c1_const) {
690
233
            const ColumnString* c1_const_string =
691
233
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
233
            if (c1_const_string) {
694
233
                c1_const_chars = &c1_const_string->get_chars();
695
233
                c1_const_size = c1_const_string->get_offsets()[0];
696
233
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
233
        }
701
702
235
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
235
        auto c_res = ColumnUInt8::create();
705
235
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
235
        vec_res.resize(c0->size());
707
708
235
        if (c0_string && c1_string) {
709
2
            StringImpl::string_vector_string_vector(
710
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
2
                    c1_string->get_offsets(), vec_res);
712
233
        } else if (c0_string && c1_const) {
713
233
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
233
                                               *c1_const_chars, c1_const_size, vec_res);
715
233
        } else if (c0_const && c1_string) {
716
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
0
                                               vec_res);
719
0
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
235
        block.replace_by_position(result, std::move(c_res));
724
235
        return Status::OK();
725
235
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
337
                          const IColumn* c1) const {
662
337
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
337
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
337
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
337
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
337
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
667
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
668
0
                                        c0->get_name(), c1->get_name(), name);
669
0
        }
670
337
        DCHECK(!(c0_const && c1_const));
671
337
        const ColumnString::Chars* c0_const_chars = nullptr;
672
337
        const ColumnString::Chars* c1_const_chars = nullptr;
673
337
        ColumnString::Offset c0_const_size = 0;
674
337
        ColumnString::Offset c1_const_size = 0;
675
676
337
        if (c0_const) {
677
56
            const ColumnString* c0_const_string =
678
56
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
56
            if (c0_const_string) {
681
56
                c0_const_chars = &c0_const_string->get_chars();
682
56
                c0_const_size = c0_const_string->get_offsets()[0];
683
56
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
56
        }
688
689
337
        if (c1_const) {
690
250
            const ColumnString* c1_const_string =
691
250
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
250
            if (c1_const_string) {
694
250
                c1_const_chars = &c1_const_string->get_chars();
695
250
                c1_const_size = c1_const_string->get_offsets()[0];
696
250
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
250
        }
701
702
337
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
337
        auto c_res = ColumnUInt8::create();
705
337
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
337
        vec_res.resize(c0->size());
707
708
337
        if (c0_string && c1_string) {
709
31
            StringImpl::string_vector_string_vector(
710
31
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
31
                    c1_string->get_offsets(), vec_res);
712
306
        } else if (c0_string && c1_const) {
713
250
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
250
                                               *c1_const_chars, c1_const_size, vec_res);
715
250
        } else if (c0_const && c1_string) {
716
56
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
56
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
56
                                               vec_res);
719
56
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
337
        block.replace_by_position(result, std::move(c_res));
724
337
        return Status::OK();
725
337
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
518
                          const IColumn* c1) const {
662
518
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
518
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
518
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
518
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
518
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
667
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
668
0
                                        c0->get_name(), c1->get_name(), name);
669
0
        }
670
518
        DCHECK(!(c0_const && c1_const));
671
518
        const ColumnString::Chars* c0_const_chars = nullptr;
672
518
        const ColumnString::Chars* c1_const_chars = nullptr;
673
518
        ColumnString::Offset c0_const_size = 0;
674
518
        ColumnString::Offset c1_const_size = 0;
675
676
518
        if (c0_const) {
677
2
            const ColumnString* c0_const_string =
678
2
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
2
            if (c0_const_string) {
681
2
                c0_const_chars = &c0_const_string->get_chars();
682
2
                c0_const_size = c0_const_string->get_offsets()[0];
683
2
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
2
        }
688
689
518
        if (c1_const) {
690
133
            const ColumnString* c1_const_string =
691
133
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
133
            if (c1_const_string) {
694
133
                c1_const_chars = &c1_const_string->get_chars();
695
133
                c1_const_size = c1_const_string->get_offsets()[0];
696
133
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
133
        }
701
702
518
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
518
        auto c_res = ColumnUInt8::create();
705
518
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
518
        vec_res.resize(c0->size());
707
708
518
        if (c0_string && c1_string) {
709
383
            StringImpl::string_vector_string_vector(
710
383
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
383
                    c1_string->get_offsets(), vec_res);
712
383
        } else if (c0_string && c1_const) {
713
133
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
133
                                               *c1_const_chars, c1_const_size, vec_res);
715
133
        } else if (c0_const && c1_string) {
716
2
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
2
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
2
                                               vec_res);
719
2
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
518
        block.replace_by_position(result, std::move(c_res));
724
518
        return Status::OK();
725
518
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
305
                          const IColumn* c1) const {
662
305
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
305
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
305
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
305
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
305
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
667
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
668
0
                                        c0->get_name(), c1->get_name(), name);
669
0
        }
670
305
        DCHECK(!(c0_const && c1_const));
671
305
        const ColumnString::Chars* c0_const_chars = nullptr;
672
305
        const ColumnString::Chars* c1_const_chars = nullptr;
673
305
        ColumnString::Offset c0_const_size = 0;
674
305
        ColumnString::Offset c1_const_size = 0;
675
676
305
        if (c0_const) {
677
0
            const ColumnString* c0_const_string =
678
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
0
            if (c0_const_string) {
681
0
                c0_const_chars = &c0_const_string->get_chars();
682
0
                c0_const_size = c0_const_string->get_offsets()[0];
683
0
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
0
        }
688
689
305
        if (c1_const) {
690
305
            const ColumnString* c1_const_string =
691
305
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
305
            if (c1_const_string) {
694
305
                c1_const_chars = &c1_const_string->get_chars();
695
305
                c1_const_size = c1_const_string->get_offsets()[0];
696
305
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
305
        }
701
702
305
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
305
        auto c_res = ColumnUInt8::create();
705
305
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
305
        vec_res.resize(c0->size());
707
708
305
        if (c0_string && c1_string) {
709
0
            StringImpl::string_vector_string_vector(
710
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
0
                    c1_string->get_offsets(), vec_res);
712
305
        } else if (c0_string && c1_const) {
713
305
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
305
                                               *c1_const_chars, c1_const_size, vec_res);
715
305
        } else if (c0_const && c1_string) {
716
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
0
                                               vec_res);
719
0
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
305
        block.replace_by_position(result, std::move(c_res));
724
305
        return Status::OK();
725
305
    }
726
727
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
728
178
                                         const IColumn* c1) const {
729
178
        bool c0_const = is_column_const(*c0);
730
178
        bool c1_const = is_column_const(*c1);
731
732
178
        DCHECK(!(c0_const && c1_const));
733
734
178
        auto c_res = ColumnUInt8::create();
735
178
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
178
        vec_res.resize(c0->size());
737
738
178
        if (c0_const) {
739
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
177
        } else if (c1_const) {
741
157
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
157
        } else {
743
20
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
20
        }
745
746
178
        block.replace_by_position(result, std::move(c_res));
747
178
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
31
                                         const IColumn* c1) const {
729
31
        bool c0_const = is_column_const(*c0);
730
31
        bool c1_const = is_column_const(*c1);
731
732
31
        DCHECK(!(c0_const && c1_const));
733
734
31
        auto c_res = ColumnUInt8::create();
735
31
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
31
        vec_res.resize(c0->size());
737
738
31
        if (c0_const) {
739
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
30
        } else if (c1_const) {
741
18
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
18
        } else {
743
12
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
12
        }
745
746
31
        block.replace_by_position(result, std::move(c_res));
747
31
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
10
                                         const IColumn* c1) const {
729
10
        bool c0_const = is_column_const(*c0);
730
10
        bool c1_const = is_column_const(*c1);
731
732
10
        DCHECK(!(c0_const && c1_const));
733
734
10
        auto c_res = ColumnUInt8::create();
735
10
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
10
        vec_res.resize(c0->size());
737
738
10
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
10
        } else if (c1_const) {
741
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
8
        } else {
743
2
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
2
        }
745
746
10
        block.replace_by_position(result, std::move(c_res));
747
10
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
9
                                         const IColumn* c1) const {
729
9
        bool c0_const = is_column_const(*c0);
730
9
        bool c1_const = is_column_const(*c1);
731
732
9
        DCHECK(!(c0_const && c1_const));
733
734
9
        auto c_res = ColumnUInt8::create();
735
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
9
        vec_res.resize(c0->size());
737
738
9
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
9
        } else if (c1_const) {
741
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
8
        } else {
743
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
1
        }
745
746
9
        block.replace_by_position(result, std::move(c_res));
747
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
54
                                         const IColumn* c1) const {
729
54
        bool c0_const = is_column_const(*c0);
730
54
        bool c1_const = is_column_const(*c1);
731
732
54
        DCHECK(!(c0_const && c1_const));
733
734
54
        auto c_res = ColumnUInt8::create();
735
54
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
54
        vec_res.resize(c0->size());
737
738
54
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
54
        } else if (c1_const) {
741
53
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
53
        } else {
743
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
1
        }
745
746
54
        block.replace_by_position(result, std::move(c_res));
747
54
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
12
                                         const IColumn* c1) const {
729
12
        bool c0_const = is_column_const(*c0);
730
12
        bool c1_const = is_column_const(*c1);
731
732
12
        DCHECK(!(c0_const && c1_const));
733
734
12
        auto c_res = ColumnUInt8::create();
735
12
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
12
        vec_res.resize(c0->size());
737
738
12
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
12
        } else if (c1_const) {
741
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
8
        } else {
743
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
4
        }
745
746
12
        block.replace_by_position(result, std::move(c_res));
747
12
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
62
                                         const IColumn* c1) const {
729
62
        bool c0_const = is_column_const(*c0);
730
62
        bool c1_const = is_column_const(*c1);
731
732
62
        DCHECK(!(c0_const && c1_const));
733
734
62
        auto c_res = ColumnUInt8::create();
735
62
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
62
        vec_res.resize(c0->size());
737
738
62
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
62
        } else if (c1_const) {
741
62
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
62
        } else {
743
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
0
        }
745
746
62
        block.replace_by_position(result, std::move(c_res));
747
62
    }
748
749
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
750
178
                           const ColumnWithTypeAndName& c1) const {
751
178
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
178
        return Status::OK();
753
178
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
31
                           const ColumnWithTypeAndName& c1) const {
751
31
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
31
        return Status::OK();
753
31
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
10
                           const ColumnWithTypeAndName& c1) const {
751
10
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
10
        return Status::OK();
753
10
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
9
                           const ColumnWithTypeAndName& c1) const {
751
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
9
        return Status::OK();
753
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
54
                           const ColumnWithTypeAndName& c1) const {
751
54
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
54
        return Status::OK();
753
54
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
12
                           const ColumnWithTypeAndName& c1) const {
751
12
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
12
        return Status::OK();
753
12
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
62
                           const ColumnWithTypeAndName& c1) const {
751
62
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
62
        return Status::OK();
753
62
    }
754
755
    template <typename TemporalValue>
756
    static int compare_timestamp_ns_with_temporal(const TimeStampNsValue& timestamp,
757
                                                  const TemporalValue& temporal,
758
382
                                                  uint32_t temporal_nanosecond) {
759
382
        const auto timestamp_datetime = timestamp.to_datetime();
760
1.52k
        const auto compare_part = [](auto left, auto right) {
761
1.52k
            if (left < right) {
762
140
                return -1;
763
140
            }
764
1.38k
            if (left > right) {
765
158
                return 1;
766
158
            }
767
1.23k
            return 0;
768
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
760
12
        const auto compare_part = [](auto left, auto right) {
761
12
            if (left < right) {
762
2
                return -1;
763
2
            }
764
10
            if (left > right) {
765
0
                return 1;
766
0
            }
767
10
            return 0;
768
10
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
760
44
        const auto compare_part = [](auto left, auto right) {
761
44
            if (left < right) {
762
0
                return -1;
763
0
            }
764
44
            if (left > right) {
765
4
                return 1;
766
4
            }
767
40
            return 0;
768
44
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
760
6
        const auto compare_part = [](auto left, auto right) {
761
6
            if (left < right) {
762
0
                return -1;
763
0
            }
764
6
            if (left > right) {
765
2
                return 1;
766
2
            }
767
4
            return 0;
768
6
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIllEEDaSB_SE_
Line
Count
Source
760
186
        const auto compare_part = [](auto left, auto right) {
761
186
            if (left < right) {
762
61
                return -1;
763
61
            }
764
125
            if (left > right) {
765
20
                return 1;
766
20
            }
767
105
            return 0;
768
125
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
760
493
        const auto compare_part = [](auto left, auto right) {
761
493
            if (left < right) {
762
4
                return -1;
763
4
            }
764
489
            if (left > right) {
765
16
                return 1;
766
16
            }
767
473
            return 0;
768
489
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
760
85
        const auto compare_part = [](auto left, auto right) {
761
85
            if (left < right) {
762
1
                return -1;
763
1
            }
764
84
            if (left > right) {
765
39
                return 1;
766
39
            }
767
45
            return 0;
768
84
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIllEEDaSD_SG_
Line
Count
Source
760
10
        const auto compare_part = [](auto left, auto right) {
761
10
            if (left < right) {
762
4
                return -1;
763
4
            }
764
6
            if (left > right) {
765
3
                return 1;
766
3
            }
767
3
            return 0;
768
6
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIhiEEDaSD_SG_
Line
Count
Source
760
13
        const auto compare_part = [](auto left, auto right) {
761
13
            if (left < right) {
762
1
                return -1;
763
1
            }
764
12
            if (left > right) {
765
0
                return 1;
766
0
            }
767
12
            return 0;
768
12
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIjjEEDaSD_SG_
Line
Count
Source
760
2
        const auto compare_part = [](auto left, auto right) {
761
2
            if (left < right) {
762
0
                return -1;
763
0
            }
764
2
            if (left > right) {
765
1
                return 1;
766
1
            }
767
1
            return 0;
768
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
760
39
        const auto compare_part = [](auto left, auto right) {
761
39
            if (left < right) {
762
11
                return -1;
763
11
            }
764
28
            if (left > right) {
765
7
                return 1;
766
7
            }
767
21
            return 0;
768
28
        };
_ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
760
105
        const auto compare_part = [](auto left, auto right) {
761
105
            if (left < right) {
762
2
                return -1;
763
2
            }
764
103
            if (left > right) {
765
0
                return 1;
766
0
            }
767
103
            return 0;
768
103
        };
_ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
760
19
        const auto compare_part = [](auto left, auto right) {
761
19
            if (left < right) {
762
2
                return -1;
763
2
            }
764
17
            if (left > right) {
765
9
                return 1;
766
9
            }
767
8
            return 0;
768
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
760
24
        const auto compare_part = [](auto left, auto right) {
761
24
            if (left < right) {
762
7
                return -1;
763
7
            }
764
17
            if (left > right) {
765
4
                return 1;
766
4
            }
767
13
            return 0;
768
17
        };
_ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
760
65
        const auto compare_part = [](auto left, auto right) {
761
65
            if (left < right) {
762
0
                return -1;
763
0
            }
764
65
            if (left > right) {
765
3
                return 1;
766
3
            }
767
62
            return 0;
768
65
        };
_ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
760
10
        const auto compare_part = [](auto left, auto right) {
761
10
            if (left < right) {
762
0
                return -1;
763
0
            }
764
10
            if (left > right) {
765
5
                return 1;
766
5
            }
767
5
            return 0;
768
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
760
83
        const auto compare_part = [](auto left, auto right) {
761
83
            if (left < right) {
762
30
                return -1;
763
30
            }
764
53
            if (left > right) {
765
9
                return 1;
766
9
            }
767
44
            return 0;
768
53
        };
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
760
204
        const auto compare_part = [](auto left, auto right) {
761
204
            if (left < right) {
762
2
                return -1;
763
2
            }
764
202
            if (left > right) {
765
11
                return 1;
766
11
            }
767
191
            return 0;
768
202
        };
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
760
31
        const auto compare_part = [](auto left, auto right) {
761
31
            if (left < right) {
762
1
                return -1;
763
1
            }
764
30
            if (left > right) {
765
14
                return 1;
766
14
            }
767
16
            return 0;
768
30
        };
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSD_T0_E_clIllEEDaSD_SG_
Line
Count
Source
760
4
        const auto compare_part = [](auto left, auto right) {
761
4
            if (left < right) {
762
2
                return -1;
763
2
            }
764
2
            if (left > right) {
765
2
                return 1;
766
2
            }
767
0
            return 0;
768
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
760
24
        const auto compare_part = [](auto left, auto right) {
761
24
            if (left < right) {
762
8
                return -1;
763
8
            }
764
16
            if (left > right) {
765
4
                return 1;
766
4
            }
767
12
            return 0;
768
16
        };
_ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
760
60
        const auto compare_part = [](auto left, auto right) {
761
60
            if (left < right) {
762
2
                return -1;
763
2
            }
764
58
            if (left > right) {
765
0
                return 1;
766
0
            }
767
58
            return 0;
768
58
        };
_ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_jENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
760
10
        const auto compare_part = [](auto left, auto right) {
761
10
            if (left < right) {
762
0
                return -1;
763
0
            }
764
10
            if (left > right) {
765
5
                return 1;
766
5
            }
767
5
            return 0;
768
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_
769
382
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
382
                                      static_cast<int64_t>(temporal.year()));
771
382
        if (comparison == 0) {
772
208
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
208
        }
774
382
        if (comparison == 0) {
775
208
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
208
        }
777
382
        if (comparison == 0) {
778
208
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
208
        }
780
382
        if (comparison == 0) {
781
187
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
187
        }
783
382
        if (comparison == 0) {
784
173
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
173
        }
786
382
        if (comparison == 0) {
787
163
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
163
        }
789
382
        return comparison;
790
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
758
12
                                                  uint32_t temporal_nanosecond) {
759
12
        const auto timestamp_datetime = timestamp.to_datetime();
760
12
        const auto compare_part = [](auto left, auto right) {
761
12
            if (left < right) {
762
12
                return -1;
763
12
            }
764
12
            if (left > right) {
765
12
                return 1;
766
12
            }
767
12
            return 0;
768
12
        };
769
12
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
12
                                      static_cast<int64_t>(temporal.year()));
771
12
        if (comparison == 0) {
772
10
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
10
        }
774
12
        if (comparison == 0) {
775
10
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
10
        }
777
12
        if (comparison == 0) {
778
10
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
10
        }
780
12
        if (comparison == 0) {
781
8
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
8
        }
783
12
        if (comparison == 0) {
784
6
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
6
        }
786
12
        if (comparison == 0) {
787
6
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
6
        }
789
12
        return comparison;
790
12
    }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
758
186
                                                  uint32_t temporal_nanosecond) {
759
186
        const auto timestamp_datetime = timestamp.to_datetime();
760
186
        const auto compare_part = [](auto left, auto right) {
761
186
            if (left < right) {
762
186
                return -1;
763
186
            }
764
186
            if (left > right) {
765
186
                return 1;
766
186
            }
767
186
            return 0;
768
186
        };
769
186
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
186
                                      static_cast<int64_t>(temporal.year()));
771
186
        if (comparison == 0) {
772
105
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
105
        }
774
186
        if (comparison == 0) {
775
105
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
105
        }
777
186
        if (comparison == 0) {
778
105
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
105
        }
780
186
        if (comparison == 0) {
781
93
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
93
        }
783
186
        if (comparison == 0) {
784
85
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
85
        }
786
186
        if (comparison == 0) {
787
85
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
85
        }
789
186
        return comparison;
790
186
    }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
758
10
                                                  uint32_t temporal_nanosecond) {
759
10
        const auto timestamp_datetime = timestamp.to_datetime();
760
10
        const auto compare_part = [](auto left, auto right) {
761
10
            if (left < right) {
762
10
                return -1;
763
10
            }
764
10
            if (left > right) {
765
10
                return 1;
766
10
            }
767
10
            return 0;
768
10
        };
769
10
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
10
                                      static_cast<int64_t>(temporal.year()));
771
10
        if (comparison == 0) {
772
3
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
3
        }
774
10
        if (comparison == 0) {
775
3
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
3
        }
777
10
        if (comparison == 0) {
778
3
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
3
        }
780
10
        if (comparison == 0) {
781
2
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
2
        }
783
10
        if (comparison == 0) {
784
2
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
2
        }
786
10
        if (comparison == 0) {
787
2
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
2
        }
789
10
        return comparison;
790
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
758
39
                                                  uint32_t temporal_nanosecond) {
759
39
        const auto timestamp_datetime = timestamp.to_datetime();
760
39
        const auto compare_part = [](auto left, auto right) {
761
39
            if (left < right) {
762
39
                return -1;
763
39
            }
764
39
            if (left > right) {
765
39
                return 1;
766
39
            }
767
39
            return 0;
768
39
        };
769
39
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
39
                                      static_cast<int64_t>(temporal.year()));
771
39
        if (comparison == 0) {
772
21
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
21
        }
774
39
        if (comparison == 0) {
775
21
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
21
        }
777
39
        if (comparison == 0) {
778
21
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
21
        }
780
39
        if (comparison == 0) {
781
21
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
21
        }
783
39
        if (comparison == 0) {
784
21
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
21
        }
786
39
        if (comparison == 0) {
787
19
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
19
        }
789
39
        return comparison;
790
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
758
24
                                                  uint32_t temporal_nanosecond) {
759
24
        const auto timestamp_datetime = timestamp.to_datetime();
760
24
        const auto compare_part = [](auto left, auto right) {
761
24
            if (left < right) {
762
24
                return -1;
763
24
            }
764
24
            if (left > right) {
765
24
                return 1;
766
24
            }
767
24
            return 0;
768
24
        };
769
24
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
24
                                      static_cast<int64_t>(temporal.year()));
771
24
        if (comparison == 0) {
772
13
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
13
        }
774
24
        if (comparison == 0) {
775
13
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
13
        }
777
24
        if (comparison == 0) {
778
13
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
13
        }
780
24
        if (comparison == 0) {
781
13
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
13
        }
783
24
        if (comparison == 0) {
784
13
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
13
        }
786
24
        if (comparison == 0) {
787
10
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
10
        }
789
24
        return comparison;
790
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
758
83
                                                  uint32_t temporal_nanosecond) {
759
83
        const auto timestamp_datetime = timestamp.to_datetime();
760
83
        const auto compare_part = [](auto left, auto right) {
761
83
            if (left < right) {
762
83
                return -1;
763
83
            }
764
83
            if (left > right) {
765
83
                return 1;
766
83
            }
767
83
            return 0;
768
83
        };
769
83
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
83
                                      static_cast<int64_t>(temporal.year()));
771
83
        if (comparison == 0) {
772
44
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
44
        }
774
83
        if (comparison == 0) {
775
44
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
44
        }
777
83
        if (comparison == 0) {
778
44
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
44
        }
780
83
        if (comparison == 0) {
781
38
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
38
        }
783
83
        if (comparison == 0) {
784
34
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
34
        }
786
83
        if (comparison == 0) {
787
31
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
31
        }
789
83
        return comparison;
790
83
    }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
Line
Count
Source
758
4
                                                  uint32_t temporal_nanosecond) {
759
4
        const auto timestamp_datetime = timestamp.to_datetime();
760
4
        const auto compare_part = [](auto left, auto right) {
761
4
            if (left < right) {
762
4
                return -1;
763
4
            }
764
4
            if (left > right) {
765
4
                return 1;
766
4
            }
767
4
            return 0;
768
4
        };
769
4
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
4
                                      static_cast<int64_t>(temporal.year()));
771
4
        if (comparison == 0) {
772
0
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
0
        }
774
4
        if (comparison == 0) {
775
0
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
0
        }
777
4
        if (comparison == 0) {
778
0
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
0
        }
780
4
        if (comparison == 0) {
781
0
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
0
        }
783
4
        if (comparison == 0) {
784
0
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
0
        }
786
4
        if (comparison == 0) {
787
0
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
0
        }
789
4
        return comparison;
790
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
758
24
                                                  uint32_t temporal_nanosecond) {
759
24
        const auto timestamp_datetime = timestamp.to_datetime();
760
24
        const auto compare_part = [](auto left, auto right) {
761
24
            if (left < right) {
762
24
                return -1;
763
24
            }
764
24
            if (left > right) {
765
24
                return 1;
766
24
            }
767
24
            return 0;
768
24
        };
769
24
        int comparison = compare_part(static_cast<int64_t>(timestamp_datetime.year()),
770
24
                                      static_cast<int64_t>(temporal.year()));
771
24
        if (comparison == 0) {
772
12
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
773
12
        }
774
24
        if (comparison == 0) {
775
12
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
776
12
        }
777
24
        if (comparison == 0) {
778
12
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
779
12
        }
780
24
        if (comparison == 0) {
781
12
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
782
12
        }
783
24
        if (comparison == 0) {
784
12
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
785
12
        }
786
24
        if (comparison == 0) {
787
10
            comparison = compare_part(timestamp.nanosecond(), temporal_nanosecond);
788
10
        }
789
24
        return comparison;
790
24
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalIN4cctz6detail10civil_timeINS6_10second_tagEEEEEiRKNS_16TimeStampNsValueERKT_j
791
792
    template <PrimitiveType TemporalPType, bool timestamp_ns_on_left>
793
    Status execute_timestamp_ns_temporal(FunctionContext* context, Block& block, uint32_t result,
794
                                         const ColumnPtr& left_column,
795
                                         const ColumnPtr& right_column,
796
77
                                         size_t input_rows_count) const {
797
77
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
77
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
77
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
77
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
77
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
77
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
77
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
77
        const auto& timestamps =
805
77
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
77
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
77
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
77
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
77
        auto result_column = ColumnUInt8::create(input_rows_count);
811
77
        auto& result_data = result_column->get_data();
812
459
        for (size_t row = 0; row < input_rows_count; ++row) {
813
382
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
382
            const auto& temporal =
815
382
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
382
            int comparison;
817
382
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
14
                const auto utc_datetime = temporal.utc_dt();
819
14
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
14
                                                   utc_datetime.day(), utc_datetime.hour(),
821
14
                                                   utc_datetime.minute(), utc_datetime.second());
822
14
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
14
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
14
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
14
                                                                utc_datetime.microsecond() * 1000);
828
368
            } else {
829
368
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
368
                                                                temporal.microsecond() * 1000);
831
368
            }
832
382
            if constexpr (!timestamp_ns_on_left) {
833
144
                comparison = -comparison;
834
144
            }
835
382
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
382
        }
837
77
        block.replace_by_position(result, std::move(result_column));
838
77
        return Status::OK();
839
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
796
1
                                         size_t input_rows_count) const {
797
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
1
        const auto& timestamps =
805
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
1
        auto result_column = ColumnUInt8::create(input_rows_count);
811
1
        auto& result_data = result_column->get_data();
812
7
        for (size_t row = 0; row < input_rows_count; ++row) {
813
6
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
6
            const auto& temporal =
815
6
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
6
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
6
            } else {
829
6
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
6
                                                                temporal.microsecond() * 1000);
831
6
            }
832
            if constexpr (!timestamp_ns_on_left) {
833
                comparison = -comparison;
834
            }
835
6
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
6
        }
837
1
        block.replace_by_position(result, std::move(result_column));
838
1
        return Status::OK();
839
1
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
1
                                         size_t input_rows_count) const {
797
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
1
        const auto& timestamps =
805
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
1
        auto result_column = ColumnUInt8::create(input_rows_count);
811
1
        auto& result_data = result_column->get_data();
812
7
        for (size_t row = 0; row < input_rows_count; ++row) {
813
6
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
6
            const auto& temporal =
815
6
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
6
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
6
            } else {
829
6
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
6
                                                                temporal.microsecond() * 1000);
831
6
            }
832
6
            if constexpr (!timestamp_ns_on_left) {
833
6
                comparison = -comparison;
834
6
            }
835
6
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
6
        }
837
1
        block.replace_by_position(result, std::move(result_column));
838
1
        return Status::OK();
839
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
796
21
                                         size_t input_rows_count) const {
797
21
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
21
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
21
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
21
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
21
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
21
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
21
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
21
        const auto& timestamps =
805
21
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
21
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
21
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
21
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
21
        auto result_column = ColumnUInt8::create(input_rows_count);
811
21
        auto& result_data = result_column->get_data();
812
137
        for (size_t row = 0; row < input_rows_count; ++row) {
813
116
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
116
            const auto& temporal =
815
116
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
116
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
116
            } else {
829
116
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
116
                                                                temporal.microsecond() * 1000);
831
116
            }
832
            if constexpr (!timestamp_ns_on_left) {
833
                comparison = -comparison;
834
            }
835
116
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
116
        }
837
21
        block.replace_by_position(result, std::move(result_column));
838
21
        return Status::OK();
839
21
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
12
                                         size_t input_rows_count) const {
797
12
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
12
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
12
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
12
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
12
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
12
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
12
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
12
        const auto& timestamps =
805
12
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
12
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
12
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
12
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
12
        auto result_column = ColumnUInt8::create(input_rows_count);
811
12
        auto& result_data = result_column->get_data();
812
82
        for (size_t row = 0; row < input_rows_count; ++row) {
813
70
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
70
            const auto& temporal =
815
70
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
70
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
70
            } else {
829
70
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
70
                                                                temporal.microsecond() * 1000);
831
70
            }
832
70
            if constexpr (!timestamp_ns_on_left) {
833
70
                comparison = -comparison;
834
70
            }
835
70
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
70
        }
837
12
        block.replace_by_position(result, std::move(result_column));
838
12
        return Status::OK();
839
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
2
                                         size_t input_rows_count) const {
797
2
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
2
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
2
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
2
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
2
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
2
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
2
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
2
        const auto& timestamps =
805
2
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
2
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
2
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
2
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
2
        auto result_column = ColumnUInt8::create(input_rows_count);
811
2
        auto& result_data = result_column->get_data();
812
4
        for (size_t row = 0; row < input_rows_count; ++row) {
813
2
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
2
            const auto& temporal =
815
2
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
2
            int comparison;
817
2
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
2
                const auto utc_datetime = temporal.utc_dt();
819
2
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
2
                                                   utc_datetime.day(), utc_datetime.hour(),
821
2
                                                   utc_datetime.minute(), utc_datetime.second());
822
2
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
2
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
2
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
2
                                                                utc_datetime.microsecond() * 1000);
828
            } else {
829
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
                                                                temporal.microsecond() * 1000);
831
            }
832
            if constexpr (!timestamp_ns_on_left) {
833
                comparison = -comparison;
834
            }
835
2
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
2
        }
837
2
        block.replace_by_position(result, std::move(result_column));
838
2
        return Status::OK();
839
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
3
                                         size_t input_rows_count) const {
797
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
3
        const auto& timestamps =
805
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
3
        auto result_column = ColumnUInt8::create(input_rows_count);
811
3
        auto& result_data = result_column->get_data();
812
11
        for (size_t row = 0; row < input_rows_count; ++row) {
813
8
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
8
            const auto& temporal =
815
8
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
8
            int comparison;
817
8
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
8
                const auto utc_datetime = temporal.utc_dt();
819
8
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
8
                                                   utc_datetime.day(), utc_datetime.hour(),
821
8
                                                   utc_datetime.minute(), utc_datetime.second());
822
8
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
8
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
8
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
8
                                                                utc_datetime.microsecond() * 1000);
828
            } else {
829
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
                                                                temporal.microsecond() * 1000);
831
            }
832
8
            if constexpr (!timestamp_ns_on_left) {
833
8
                comparison = -comparison;
834
8
            }
835
8
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
8
        }
837
3
        block.replace_by_position(result, std::move(result_column));
838
3
        return Status::OK();
839
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
796
7
                                         size_t input_rows_count) const {
797
7
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
7
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
7
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
7
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
7
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
7
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
7
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
7
        const auto& timestamps =
805
7
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
7
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
7
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
7
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
7
        auto result_column = ColumnUInt8::create(input_rows_count);
811
7
        auto& result_data = result_column->get_data();
812
37
        for (size_t row = 0; row < input_rows_count; ++row) {
813
30
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
30
            const auto& temporal =
815
30
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
30
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
30
            } else {
829
30
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
30
                                                                temporal.microsecond() * 1000);
831
30
            }
832
            if constexpr (!timestamp_ns_on_left) {
833
                comparison = -comparison;
834
            }
835
30
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
30
        }
837
7
        block.replace_by_position(result, std::move(result_column));
838
7
        return Status::OK();
839
7
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
3
                                         size_t input_rows_count) const {
797
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
3
        const auto& timestamps =
805
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
3
        auto result_column = ColumnUInt8::create(input_rows_count);
811
3
        auto& result_data = result_column->get_data();
812
12
        for (size_t row = 0; row < input_rows_count; ++row) {
813
9
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
9
            const auto& temporal =
815
9
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
9
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
9
            } else {
829
9
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
9
                                                                temporal.microsecond() * 1000);
831
9
            }
832
9
            if constexpr (!timestamp_ns_on_left) {
833
9
                comparison = -comparison;
834
9
            }
835
9
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
9
        }
837
3
        block.replace_by_position(result, std::move(result_column));
838
3
        return Status::OK();
839
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
796
3
                                         size_t input_rows_count) const {
797
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
3
        const auto& timestamps =
805
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
3
        auto result_column = ColumnUInt8::create(input_rows_count);
811
3
        auto& result_data = result_column->get_data();
812
20
        for (size_t row = 0; row < input_rows_count; ++row) {
813
17
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
17
            const auto& temporal =
815
17
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
17
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
17
            } else {
829
17
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
17
                                                                temporal.microsecond() * 1000);
831
17
            }
832
            if constexpr (!timestamp_ns_on_left) {
833
                comparison = -comparison;
834
            }
835
17
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
17
        }
837
3
        block.replace_by_position(result, std::move(result_column));
838
3
        return Status::OK();
839
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
1
                                         size_t input_rows_count) const {
797
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
1
        const auto& timestamps =
805
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
1
        auto result_column = ColumnUInt8::create(input_rows_count);
811
1
        auto& result_data = result_column->get_data();
812
8
        for (size_t row = 0; row < input_rows_count; ++row) {
813
7
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
7
            const auto& temporal =
815
7
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
7
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
7
            } else {
829
7
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
7
                                                                temporal.microsecond() * 1000);
831
7
            }
832
7
            if constexpr (!timestamp_ns_on_left) {
833
7
                comparison = -comparison;
834
7
            }
835
7
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
7
        }
837
1
        block.replace_by_position(result, std::move(result_column));
838
1
        return Status::OK();
839
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
796
9
                                         size_t input_rows_count) const {
797
9
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
9
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
9
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
9
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
9
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
9
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
9
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
9
        const auto& timestamps =
805
9
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
9
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
9
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
9
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
9
        auto result_column = ColumnUInt8::create(input_rows_count);
811
9
        auto& result_data = result_column->get_data();
812
57
        for (size_t row = 0; row < input_rows_count; ++row) {
813
48
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
48
            const auto& temporal =
815
48
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
48
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
48
            } else {
829
48
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
48
                                                                temporal.microsecond() * 1000);
831
48
            }
832
            if constexpr (!timestamp_ns_on_left) {
833
                comparison = -comparison;
834
            }
835
48
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
48
        }
837
9
        block.replace_by_position(result, std::move(result_column));
838
9
        return Status::OK();
839
9
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
6
                                         size_t input_rows_count) const {
797
6
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
6
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
6
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
6
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
6
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
6
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
6
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
6
        const auto& timestamps =
805
6
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
6
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
6
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
6
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
6
        auto result_column = ColumnUInt8::create(input_rows_count);
811
6
        auto& result_data = result_column->get_data();
812
41
        for (size_t row = 0; row < input_rows_count; ++row) {
813
35
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
35
            const auto& temporal =
815
35
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
35
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
35
            } else {
829
35
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
35
                                                                temporal.microsecond() * 1000);
831
35
            }
832
35
            if constexpr (!timestamp_ns_on_left) {
833
35
                comparison = -comparison;
834
35
            }
835
35
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
35
        }
837
6
        block.replace_by_position(result, std::move(result_column));
838
6
        return Status::OK();
839
6
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
2
                                         size_t input_rows_count) const {
797
2
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
2
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
2
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
2
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
2
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
2
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
2
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
2
        const auto& timestamps =
805
2
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
2
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
2
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
2
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
2
        auto result_column = ColumnUInt8::create(input_rows_count);
811
2
        auto& result_data = result_column->get_data();
812
4
        for (size_t row = 0; row < input_rows_count; ++row) {
813
2
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
2
            const auto& temporal =
815
2
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
2
            int comparison;
817
2
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
2
                const auto utc_datetime = temporal.utc_dt();
819
2
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
2
                                                   utc_datetime.day(), utc_datetime.hour(),
821
2
                                                   utc_datetime.minute(), utc_datetime.second());
822
2
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
2
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
2
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
2
                                                                utc_datetime.microsecond() * 1000);
828
            } else {
829
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
                                                                temporal.microsecond() * 1000);
831
            }
832
            if constexpr (!timestamp_ns_on_left) {
833
                comparison = -comparison;
834
            }
835
2
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
2
        }
837
2
        block.replace_by_position(result, std::move(result_column));
838
2
        return Status::OK();
839
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
2
                                         size_t input_rows_count) const {
797
2
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
2
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
2
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
2
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
2
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
2
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
2
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
2
        const auto& timestamps =
805
2
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
2
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
2
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
2
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
2
        auto result_column = ColumnUInt8::create(input_rows_count);
811
2
        auto& result_data = result_column->get_data();
812
4
        for (size_t row = 0; row < input_rows_count; ++row) {
813
2
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
2
            const auto& temporal =
815
2
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
2
            int comparison;
817
2
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
2
                const auto utc_datetime = temporal.utc_dt();
819
2
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
2
                                                   utc_datetime.day(), utc_datetime.hour(),
821
2
                                                   utc_datetime.minute(), utc_datetime.second());
822
2
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
2
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
2
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
2
                                                                utc_datetime.microsecond() * 1000);
828
            } else {
829
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
                                                                temporal.microsecond() * 1000);
831
            }
832
2
            if constexpr (!timestamp_ns_on_left) {
833
2
                comparison = -comparison;
834
2
            }
835
2
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
2
        }
837
2
        block.replace_by_position(result, std::move(result_column));
838
2
        return Status::OK();
839
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
796
3
                                         size_t input_rows_count) const {
797
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
3
        const auto& timestamps =
805
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
3
        auto result_column = ColumnUInt8::create(input_rows_count);
811
3
        auto& result_data = result_column->get_data();
812
20
        for (size_t row = 0; row < input_rows_count; ++row) {
813
17
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
17
            const auto& temporal =
815
17
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
17
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
17
            } else {
829
17
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
17
                                                                temporal.microsecond() * 1000);
831
17
            }
832
            if constexpr (!timestamp_ns_on_left) {
833
                comparison = -comparison;
834
            }
835
17
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
17
        }
837
3
        block.replace_by_position(result, std::move(result_column));
838
3
        return Status::OK();
839
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_m
Line
Count
Source
796
1
                                         size_t input_rows_count) const {
797
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
798
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
799
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
800
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
801
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
802
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
803
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
804
1
        const auto& timestamps =
805
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
806
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
807
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
808
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
809
810
1
        auto result_column = ColumnUInt8::create(input_rows_count);
811
1
        auto& result_data = result_column->get_data();
812
8
        for (size_t row = 0; row < input_rows_count; ++row) {
813
7
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
814
7
            const auto& temporal =
815
7
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
816
7
            int comparison;
817
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
818
                const auto utc_datetime = temporal.utc_dt();
819
                const cctz::civil_second utc_civil(utc_datetime.year(), utc_datetime.month(),
820
                                                   utc_datetime.day(), utc_datetime.hour(),
821
                                                   utc_datetime.minute(), utc_datetime.second());
822
                const auto utc_time = cctz::convert(utc_civil, cctz::utc_time_zone());
823
                const auto local_civil = cctz::convert(utc_time, context->state()->timezone_obj());
824
                // Keep the signed civil year across date boundaries. NULL payloads are
825
                // normalized without validation; the nullable framework masks their results.
826
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_civil,
827
                                                                utc_datetime.microsecond() * 1000);
828
7
            } else {
829
7
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal,
830
7
                                                                temporal.microsecond() * 1000);
831
7
            }
832
7
            if constexpr (!timestamp_ns_on_left) {
833
7
                comparison = -comparison;
834
7
            }
835
7
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
836
7
        }
837
1
        block.replace_by_position(result, std::move(result_column));
838
1
        return Status::OK();
839
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
840
841
public:
842
177
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
842
49
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
842
31
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
842
33
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
842
62
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
842
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
842
1
    String get_name() const override { return name; }
843
844
304k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
271k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
1.26k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
844
7.13k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
9.81k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
844
4.05k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
11.1k
    size_t get_number_of_arguments() const override { return 2; }
845
846
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
847
4.50k
                                                const VExprSPtrs& arguments) const override {
848
4.50k
        auto op = comparison_zonemap_detail::op_from_name(name);
849
4.50k
        DORIS_CHECK(op.has_value());
850
4.50k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
4.50k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
2.14k
                                                const VExprSPtrs& arguments) const override {
848
2.14k
        auto op = comparison_zonemap_detail::op_from_name(name);
849
2.14k
        DORIS_CHECK(op.has_value());
850
2.14k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
2.14k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
219
                                                const VExprSPtrs& arguments) const override {
848
219
        auto op = comparison_zonemap_detail::op_from_name(name);
849
219
        DORIS_CHECK(op.has_value());
850
219
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
219
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
680
                                                const VExprSPtrs& arguments) const override {
848
680
        auto op = comparison_zonemap_detail::op_from_name(name);
849
680
        DORIS_CHECK(op.has_value());
850
680
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
680
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
449
                                                const VExprSPtrs& arguments) const override {
848
449
        auto op = comparison_zonemap_detail::op_from_name(name);
849
449
        DORIS_CHECK(op.has_value());
850
449
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
449
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
704
                                                const VExprSPtrs& arguments) const override {
848
704
        auto op = comparison_zonemap_detail::op_from_name(name);
849
704
        DORIS_CHECK(op.has_value());
850
704
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
704
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
308
                                                const VExprSPtrs& arguments) const override {
848
308
        auto op = comparison_zonemap_detail::op_from_name(name);
849
308
        DORIS_CHECK(op.has_value());
850
308
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
308
    }
852
853
33.0k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
33.0k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
33.0k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
33.0k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
33.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
15.2k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
15.2k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
15.2k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
15.2k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
15.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
1.37k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
1.37k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
1.37k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
1.37k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
1.37k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
6.21k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
6.21k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
6.21k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
6.21k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
6.21k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
4.15k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
4.15k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
4.15k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
4.15k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
4.15k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
4.28k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
4.28k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
4.28k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
4.28k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
4.28k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
1.80k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
1.80k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
1.80k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
1.80k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
1.80k
    }
860
861
    ZoneMapFilterResult evaluate_dictionary_filter(const DictionaryEvalContext& ctx,
862
14
                                                   const VExprSPtrs& arguments) const override {
863
14
        auto op = comparison_zonemap_detail::op_from_name(name);
864
14
        DORIS_CHECK(op.has_value());
865
14
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
866
14
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
862
4
                                                   const VExprSPtrs& arguments) const override {
863
4
        auto op = comparison_zonemap_detail::op_from_name(name);
864
4
        DORIS_CHECK(op.has_value());
865
4
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
866
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
862
3
                                                   const VExprSPtrs& arguments) const override {
863
3
        auto op = comparison_zonemap_detail::op_from_name(name);
864
3
        DORIS_CHECK(op.has_value());
865
3
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
866
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
862
7
                                                   const VExprSPtrs& arguments) const override {
863
7
        auto op = comparison_zonemap_detail::op_from_name(name);
864
7
        DORIS_CHECK(op.has_value());
865
7
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
866
7
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
867
868
838
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
869
838
        auto op = comparison_zonemap_detail::op_from_name(name);
870
838
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
871
838
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
868
366
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
869
366
        auto op = comparison_zonemap_detail::op_from_name(name);
870
366
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
871
366
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
868
3
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
869
3
        auto op = comparison_zonemap_detail::op_from_name(name);
870
3
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
871
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
868
100
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
869
100
        auto op = comparison_zonemap_detail::op_from_name(name);
870
100
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
871
100
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
868
223
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
869
223
        auto op = comparison_zonemap_detail::op_from_name(name);
870
223
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
871
223
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
868
137
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
869
137
        auto op = comparison_zonemap_detail::op_from_name(name);
870
137
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
871
137
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
868
9
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
869
9
        auto op = comparison_zonemap_detail::op_from_name(name);
870
9
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
871
9
    }
872
873
    ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
874
19
                                              const VExprSPtrs& arguments) const override {
875
19
        auto op = comparison_zonemap_detail::op_from_name(name);
876
19
        DORIS_CHECK(op.has_value());
877
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
878
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
874
19
                                              const VExprSPtrs& arguments) const override {
875
19
        auto op = comparison_zonemap_detail::op_from_name(name);
876
19
        DORIS_CHECK(op.has_value());
877
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
878
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
879
880
342
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
881
342
        auto op = comparison_zonemap_detail::op_from_name(name);
882
342
        return op == comparison_zonemap_detail::Op::EQ &&
883
342
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
884
342
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
880
173
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
881
173
        auto op = comparison_zonemap_detail::op_from_name(name);
882
173
        return op == comparison_zonemap_detail::Op::EQ &&
883
173
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
884
173
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
880
1
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
881
1
        auto op = comparison_zonemap_detail::op_from_name(name);
882
1
        return op == comparison_zonemap_detail::Op::EQ &&
883
1
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
884
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
880
30
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
881
30
        auto op = comparison_zonemap_detail::op_from_name(name);
882
30
        return op == comparison_zonemap_detail::Op::EQ &&
883
30
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
884
30
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
880
76
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
881
76
        auto op = comparison_zonemap_detail::op_from_name(name);
882
76
        return op == comparison_zonemap_detail::Op::EQ &&
883
76
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
884
76
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
880
58
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
881
58
        auto op = comparison_zonemap_detail::op_from_name(name);
882
58
        return op == comparison_zonemap_detail::Op::EQ &&
883
58
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
884
58
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
880
4
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
881
4
        auto op = comparison_zonemap_detail::op_from_name(name);
882
4
        return op == comparison_zonemap_detail::Op::EQ &&
883
4
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
884
4
    }
885
886
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
887
304k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
304k
        return std::make_shared<DataTypeUInt8>();
889
304k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
270k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
270k
        return std::make_shared<DataTypeUInt8>();
889
270k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
1.26k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
1.26k
        return std::make_shared<DataTypeUInt8>();
889
1.26k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
7.13k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
7.13k
        return std::make_shared<DataTypeUInt8>();
889
7.13k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
9.83k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
9.83k
        return std::make_shared<DataTypeUInt8>();
889
9.83k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
4.05k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
4.05k
        return std::make_shared<DataTypeUInt8>();
889
4.05k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
11.1k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
11.1k
        return std::make_shared<DataTypeUInt8>();
889
11.1k
    }
890
891
    Status evaluate_inverted_index(
892
            const ColumnsWithTypeAndName& arguments,
893
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
894
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
895
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
896
1.31k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
1.31k
        DCHECK(arguments.size() == 1);
898
1.31k
        DCHECK(data_type_with_names.size() == 1);
899
1.31k
        DCHECK(iterators.size() == 1);
900
1.31k
        auto* iter = iterators[0];
901
1.31k
        auto data_type_with_name = data_type_with_names[0];
902
1.31k
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
1.31k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
296
            return Status::OK();
907
296
        }
908
1.01k
        segment_v2::InvertedIndexQueryType query_type;
909
1.01k
        std::string_view name_view(name);
910
1.01k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
709
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
709
        } else if (name_view == NameLess::name) {
913
72
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
238
        } else if (name_view == NameLessOrEquals::name) {
915
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
157
        } else if (name_view == NameGreater::name) {
917
66
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
93
        } else if (name_view == NameGreaterOrEquals::name) {
919
93
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
18.4E
        } else {
921
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
18.4E
        }
923
924
1.02k
        if (segment_v2::is_range_query(query_type) &&
925
1.02k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
132
            return Status::OK();
928
132
        }
929
889
        Field param_value;
930
889
        arguments[0].column->get(0, param_value);
931
889
        if (param_value.is_null()) {
932
2
            return Status::OK();
933
2
        }
934
887
        segment_v2::InvertedIndexParam param;
935
887
        param.column_name = data_type_with_name.first;
936
887
        param.column_type = data_type_with_name.second;
937
887
        param.query_value = param_value;
938
887
        param.query_type = query_type;
939
887
        param.num_rows = num_rows;
940
887
        param.roaring = std::make_shared<roaring::Roaring>();
941
887
        param.analyzer_ctx = analyzer_ctx;
942
887
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
735
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
735
        if (iter->has_null()) {
945
730
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
730
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
730
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
730
        }
949
735
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
735
        bitmap_result = result;
951
735
        bitmap_result.mask_out_null();
952
953
735
        if (name_view == NameNotEquals::name) {
954
56
            roaring::Roaring full_result;
955
56
            full_result.addRange(0, num_rows);
956
56
            bitmap_result.op_not(&full_result);
957
56
        }
958
959
735
        return Status::OK();
960
735
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
675
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
675
        DCHECK(arguments.size() == 1);
898
675
        DCHECK(data_type_with_names.size() == 1);
899
675
        DCHECK(iterators.size() == 1);
900
675
        auto* iter = iterators[0];
901
675
        auto data_type_with_name = data_type_with_names[0];
902
675
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
675
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
30
            return Status::OK();
907
30
        }
908
645
        segment_v2::InvertedIndexQueryType query_type;
909
645
        std::string_view name_view(name);
910
646
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
646
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
18.4E
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
18.4E
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
18.4E
        } else if (name_view == NameGreater::name) {
917
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
919
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
18.4E
        } else {
921
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
18.4E
        }
923
924
646
        if (segment_v2::is_range_query(query_type) &&
925
646
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
0
            return Status::OK();
928
0
        }
929
646
        Field param_value;
930
646
        arguments[0].column->get(0, param_value);
931
646
        if (param_value.is_null()) {
932
2
            return Status::OK();
933
2
        }
934
644
        segment_v2::InvertedIndexParam param;
935
644
        param.column_name = data_type_with_name.first;
936
644
        param.column_type = data_type_with_name.second;
937
644
        param.query_value = param_value;
938
644
        param.query_type = query_type;
939
644
        param.num_rows = num_rows;
940
644
        param.roaring = std::make_shared<roaring::Roaring>();
941
644
        param.analyzer_ctx = analyzer_ctx;
942
644
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
598
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
598
        if (iter->has_null()) {
945
596
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
596
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
596
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
596
        }
949
598
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
598
        bitmap_result = result;
951
598
        bitmap_result.mask_out_null();
952
953
598
        if (name_view == NameNotEquals::name) {
954
0
            roaring::Roaring full_result;
955
0
            full_result.addRange(0, num_rows);
956
0
            bitmap_result.op_not(&full_result);
957
0
        }
958
959
598
        return Status::OK();
960
598
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
69
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
69
        DCHECK(arguments.size() == 1);
898
69
        DCHECK(data_type_with_names.size() == 1);
899
69
        DCHECK(iterators.size() == 1);
900
69
        auto* iter = iterators[0];
901
69
        auto data_type_with_name = data_type_with_names[0];
902
69
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
69
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
6
            return Status::OK();
907
6
        }
908
63
        segment_v2::InvertedIndexQueryType query_type;
909
63
        std::string_view name_view(name);
910
63
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
63
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
63
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
0
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
0
        } else if (name_view == NameGreater::name) {
917
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
0
        } else if (name_view == NameGreaterOrEquals::name) {
919
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
0
        } else {
921
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
0
        }
923
924
63
        if (segment_v2::is_range_query(query_type) &&
925
63
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
0
            return Status::OK();
928
0
        }
929
63
        Field param_value;
930
63
        arguments[0].column->get(0, param_value);
931
63
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
63
        segment_v2::InvertedIndexParam param;
935
63
        param.column_name = data_type_with_name.first;
936
63
        param.column_type = data_type_with_name.second;
937
63
        param.query_value = param_value;
938
63
        param.query_type = query_type;
939
63
        param.num_rows = num_rows;
940
63
        param.roaring = std::make_shared<roaring::Roaring>();
941
63
        param.analyzer_ctx = analyzer_ctx;
942
63
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
56
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
56
        if (iter->has_null()) {
945
54
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
54
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
54
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
54
        }
949
56
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
56
        bitmap_result = result;
951
56
        bitmap_result.mask_out_null();
952
953
56
        if (name_view == NameNotEquals::name) {
954
56
            roaring::Roaring full_result;
955
56
            full_result.addRange(0, num_rows);
956
56
            bitmap_result.op_not(&full_result);
957
56
        }
958
959
56
        return Status::OK();
960
56
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
106
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
106
        DCHECK(arguments.size() == 1);
898
106
        DCHECK(data_type_with_names.size() == 1);
899
106
        DCHECK(iterators.size() == 1);
900
106
        auto* iter = iterators[0];
901
106
        auto data_type_with_name = data_type_with_names[0];
902
106
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
106
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
39
            return Status::OK();
907
39
        }
908
67
        segment_v2::InvertedIndexQueryType query_type;
909
67
        std::string_view name_view(name);
910
67
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
67
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
67
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
67
        } else if (name_view == NameGreater::name) {
917
66
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
66
        } else if (name_view == NameGreaterOrEquals::name) {
919
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
1
        } else {
921
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
1
        }
923
924
66
        if (segment_v2::is_range_query(query_type) &&
925
66
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
17
            return Status::OK();
928
17
        }
929
49
        Field param_value;
930
49
        arguments[0].column->get(0, param_value);
931
49
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
49
        segment_v2::InvertedIndexParam param;
935
49
        param.column_name = data_type_with_name.first;
936
49
        param.column_type = data_type_with_name.second;
937
49
        param.query_value = param_value;
938
49
        param.query_type = query_type;
939
49
        param.num_rows = num_rows;
940
49
        param.roaring = std::make_shared<roaring::Roaring>();
941
49
        param.analyzer_ctx = analyzer_ctx;
942
49
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
30
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
30
        if (iter->has_null()) {
945
30
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
30
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
30
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
30
        }
949
30
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
30
        bitmap_result = result;
951
30
        bitmap_result.mask_out_null();
952
953
30
        if (name_view == NameNotEquals::name) {
954
0
            roaring::Roaring full_result;
955
0
            full_result.addRange(0, num_rows);
956
0
            bitmap_result.op_not(&full_result);
957
0
        }
958
959
30
        return Status::OK();
960
30
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
177
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
177
        DCHECK(arguments.size() == 1);
898
177
        DCHECK(data_type_with_names.size() == 1);
899
177
        DCHECK(iterators.size() == 1);
900
177
        auto* iter = iterators[0];
901
177
        auto data_type_with_name = data_type_with_names[0];
902
177
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
177
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
86
            return Status::OK();
907
86
        }
908
91
        segment_v2::InvertedIndexQueryType query_type;
909
91
        std::string_view name_view(name);
910
92
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
91
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
91
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
91
        } else if (name_view == NameGreater::name) {
917
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
93
        } else if (name_view == NameGreaterOrEquals::name) {
919
93
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
18.4E
        } else {
921
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
18.4E
        }
923
924
93
        if (segment_v2::is_range_query(query_type) &&
925
93
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
46
            return Status::OK();
928
46
        }
929
47
        Field param_value;
930
47
        arguments[0].column->get(0, param_value);
931
47
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
47
        segment_v2::InvertedIndexParam param;
935
47
        param.column_name = data_type_with_name.first;
936
47
        param.column_type = data_type_with_name.second;
937
47
        param.query_value = param_value;
938
47
        param.query_type = query_type;
939
47
        param.num_rows = num_rows;
940
47
        param.roaring = std::make_shared<roaring::Roaring>();
941
47
        param.analyzer_ctx = analyzer_ctx;
942
47
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
6
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
6
        if (iter->has_null()) {
945
5
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
5
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
5
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
5
        }
949
6
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
6
        bitmap_result = result;
951
6
        bitmap_result.mask_out_null();
952
953
6
        if (name_view == NameNotEquals::name) {
954
0
            roaring::Roaring full_result;
955
0
            full_result.addRange(0, num_rows);
956
0
            bitmap_result.op_not(&full_result);
957
0
        }
958
959
6
        return Status::OK();
960
6
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
113
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
113
        DCHECK(arguments.size() == 1);
898
113
        DCHECK(data_type_with_names.size() == 1);
899
113
        DCHECK(iterators.size() == 1);
900
113
        auto* iter = iterators[0];
901
113
        auto data_type_with_name = data_type_with_names[0];
902
113
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
113
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
42
            return Status::OK();
907
42
        }
908
71
        segment_v2::InvertedIndexQueryType query_type;
909
71
        std::string_view name_view(name);
910
72
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
72
        } else if (name_view == NameLess::name) {
913
72
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
18.4E
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
18.4E
        } else if (name_view == NameGreater::name) {
917
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
919
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
18.4E
        } else {
921
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
18.4E
        }
923
924
72
        if (segment_v2::is_range_query(query_type) &&
925
72
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
18
            return Status::OK();
928
18
        }
929
54
        Field param_value;
930
54
        arguments[0].column->get(0, param_value);
931
54
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
54
        segment_v2::InvertedIndexParam param;
935
54
        param.column_name = data_type_with_name.first;
936
54
        param.column_type = data_type_with_name.second;
937
54
        param.query_value = param_value;
938
54
        param.query_type = query_type;
939
54
        param.num_rows = num_rows;
940
54
        param.roaring = std::make_shared<roaring::Roaring>();
941
54
        param.analyzer_ctx = analyzer_ctx;
942
54
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
36
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
36
        if (iter->has_null()) {
945
36
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
36
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
36
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
36
        }
949
36
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
36
        bitmap_result = result;
951
36
        bitmap_result.mask_out_null();
952
953
36
        if (name_view == NameNotEquals::name) {
954
0
            roaring::Roaring full_result;
955
0
            full_result.addRange(0, num_rows);
956
0
            bitmap_result.op_not(&full_result);
957
0
        }
958
959
36
        return Status::OK();
960
36
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
175
        DCHECK(arguments.size() == 1);
898
175
        DCHECK(data_type_with_names.size() == 1);
899
175
        DCHECK(iterators.size() == 1);
900
175
        auto* iter = iterators[0];
901
175
        auto data_type_with_name = data_type_with_names[0];
902
175
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
93
            return Status::OK();
907
93
        }
908
82
        segment_v2::InvertedIndexQueryType query_type;
909
82
        std::string_view name_view(name);
910
82
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
82
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
82
        } else if (name_view == NameLessOrEquals::name) {
915
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
81
        } else if (name_view == NameGreater::name) {
917
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
1
        } else if (name_view == NameGreaterOrEquals::name) {
919
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
1
        } else {
921
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
1
        }
923
924
81
        if (segment_v2::is_range_query(query_type) &&
925
81
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
51
            return Status::OK();
928
51
        }
929
30
        Field param_value;
930
30
        arguments[0].column->get(0, param_value);
931
30
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
30
        segment_v2::InvertedIndexParam param;
935
30
        param.column_name = data_type_with_name.first;
936
30
        param.column_type = data_type_with_name.second;
937
30
        param.query_value = param_value;
938
30
        param.query_type = query_type;
939
30
        param.num_rows = num_rows;
940
30
        param.roaring = std::make_shared<roaring::Roaring>();
941
30
        param.analyzer_ctx = analyzer_ctx;
942
30
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
9
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
9
        if (iter->has_null()) {
945
9
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
9
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
9
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
9
        }
949
9
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
9
        bitmap_result = result;
951
9
        bitmap_result.mask_out_null();
952
953
9
        if (name_view == NameNotEquals::name) {
954
0
            roaring::Roaring full_result;
955
0
            full_result.addRange(0, num_rows);
956
0
            bitmap_result.op_not(&full_result);
957
0
        }
958
959
9
        return Status::OK();
960
9
    }
961
962
    // Keep all primitive-type pairs in one dispatch point so every comparison operator shares the
963
    // same mixed TIMESTAMP_NS semantics.
964
    // NOLINTNEXTLINE(readability-function-size)
965
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
966
152k
                        uint32_t result, size_t input_rows_count) const override {
967
152k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
152k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
152k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
152k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
152k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
152k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
152k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
152k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
152k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
760k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
760k
        right_type->get_primitive_type() == TYPE) {                                             \
981
48
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
48
                                                         col_right_ptr, input_rows_count);      \
983
48
    }                                                                                           \
984
760k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
760k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
29
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
29
                                                          col_right_ptr, input_rows_count);     \
988
29
    }
989
990
152k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
304k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
304k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
304k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
304k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
151k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
151k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
151k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
6
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
1008
6
                block.get_by_position(result).column =
1009
6
                        DataTypeUInt8()
1010
6
                                .create_column_const(input_rows_count,
1011
6
                                                     Field::create_field<TYPE_BOOLEAN>(1))
1012
6
                                ->convert_to_full_column_if_const();
1013
6
                return Status::OK();
1014
6
            } else {
1015
0
                block.get_by_position(result).column =
1016
0
                        DataTypeUInt8()
1017
0
                                .create_column_const(input_rows_count,
1018
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
1019
0
                                ->convert_to_full_column_if_const();
1020
0
                return Status::OK();
1021
0
            }
1022
6
        }
1023
1024
273k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
273k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
273k
                   is_timestamp_ns_type(t);
1027
273k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
65.0k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
65.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
65.0k
                   is_timestamp_ns_type(t);
1027
65.0k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
6.27k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
6.27k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
6.27k
                   is_timestamp_ns_type(t);
1027
6.27k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
155k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
155k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
155k
                   is_timestamp_ns_type(t);
1027
155k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
7.64k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
7.64k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
7.64k
                   is_timestamp_ns_type(t);
1027
7.64k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
21.6k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
21.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
21.6k
                   is_timestamp_ns_type(t);
1027
21.6k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
17.6k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
17.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
17.6k
                   is_timestamp_ns_type(t);
1027
17.6k
        };
1028
1029
151k
        if (can_compare(left_type->get_primitive_type()) &&
1030
151k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
121k
            if (!left_type->equals_ignore_precision(*right_type)) {
1033
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
1034
0
                                            get_name(), left_type->get_name(),
1035
0
                                            right_type->get_name());
1036
0
            }
1037
121k
        }
1038
1039
151k
        auto compare_type = left_type->get_primitive_type();
1040
151k
        switch (compare_type) {
1041
259
        case TYPE_BOOLEAN:
1042
259
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
5.18k
        case TYPE_DATEV2:
1044
5.18k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
900
        case TYPE_DATETIMEV2:
1046
900
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
887
        case TYPE_TIMESTAMP_NS:
1048
887
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
22
        case TYPE_TIMESTAMPTZ:
1050
22
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
10.3k
        case TYPE_TINYINT:
1052
10.3k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
3.05k
        case TYPE_SMALLINT:
1054
3.05k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
83.2k
        case TYPE_INT:
1056
83.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
13.5k
        case TYPE_BIGINT:
1058
13.5k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
664
        case TYPE_LARGEINT:
1060
664
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1061
34
        case TYPE_IPV4:
1062
34
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1063
34
        case TYPE_IPV6:
1064
34
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1065
4.86k
        case TYPE_UUID:
1066
4.86k
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
617
        case TYPE_FLOAT:
1068
617
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
2.95k
        case TYPE_DOUBLE:
1070
2.95k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1071
4
        case TYPE_TIMEV2:
1072
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1073
0
        case TYPE_DECIMALV2:
1074
277
        case TYPE_DECIMAL32:
1075
865
        case TYPE_DECIMAL64:
1076
3.25k
        case TYPE_DECIMAL128I:
1077
3.33k
        case TYPE_DECIMAL256:
1078
3.33k
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
3.33k
                                   col_with_type_and_name_right);
1080
811
        case TYPE_CHAR:
1081
7.56k
        case TYPE_VARCHAR:
1082
21.8k
        case TYPE_STRING:
1083
21.8k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
178
        default:
1085
178
            return execute_generic(block, result, col_with_type_and_name_left,
1086
178
                                   col_with_type_and_name_right);
1087
151k
        }
1088
0
        return Status::OK();
1089
151k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
44.6k
                        uint32_t result, size_t input_rows_count) const override {
967
44.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
44.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
44.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
44.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
44.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
44.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
44.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
44.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
44.6k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
44.6k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
44.6k
        right_type->get_primitive_type() == TYPE) {                                             \
981
44.6k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
44.6k
                                                         col_right_ptr, input_rows_count);      \
983
44.6k
    }                                                                                           \
984
44.6k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
44.6k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
44.6k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
44.6k
                                                          col_right_ptr, input_rows_count);     \
988
44.6k
    }
989
990
44.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
89.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
89.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
89.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
89.2k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
44.6k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
44.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
44.6k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
6
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
1008
6
                block.get_by_position(result).column =
1009
6
                        DataTypeUInt8()
1010
6
                                .create_column_const(input_rows_count,
1011
6
                                                     Field::create_field<TYPE_BOOLEAN>(1))
1012
6
                                ->convert_to_full_column_if_const();
1013
6
                return Status::OK();
1014
            } else {
1015
                block.get_by_position(result).column =
1016
                        DataTypeUInt8()
1017
                                .create_column_const(input_rows_count,
1018
                                                     Field::create_field<TYPE_BOOLEAN>(0))
1019
                                ->convert_to_full_column_if_const();
1020
                return Status::OK();
1021
            }
1022
6
        }
1023
1024
0
        auto can_compare = [](PrimitiveType t) -> bool {
1025
44.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
44.6k
                   is_timestamp_ns_type(t);
1027
44.6k
        };
1028
1029
44.6k
        if (can_compare(left_type->get_primitive_type()) &&
1030
44.6k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
20.3k
            if (!left_type->equals_ignore_precision(*right_type)) {
1033
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
1034
0
                                            get_name(), left_type->get_name(),
1035
0
                                            right_type->get_name());
1036
0
            }
1037
20.3k
        }
1038
1039
44.6k
        auto compare_type = left_type->get_primitive_type();
1040
44.6k
        switch (compare_type) {
1041
101
        case TYPE_BOOLEAN:
1042
101
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
559
        case TYPE_DATEV2:
1044
559
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
397
        case TYPE_DATETIMEV2:
1046
397
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
202
        case TYPE_TIMESTAMP_NS:
1048
202
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
13
        case TYPE_TIMESTAMPTZ:
1050
13
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
6.18k
        case TYPE_TINYINT:
1052
6.18k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
395
        case TYPE_SMALLINT:
1054
395
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
4.08k
        case TYPE_INT:
1056
4.08k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
7.42k
        case TYPE_BIGINT:
1058
7.42k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
85
        case TYPE_LARGEINT:
1060
85
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1061
12
        case TYPE_IPV4:
1062
12
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1063
17
        case TYPE_IPV6:
1064
17
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1065
2.79k
        case TYPE_UUID:
1066
2.79k
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
71
        case TYPE_FLOAT:
1068
71
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
851
        case TYPE_DOUBLE:
1070
851
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1071
4
        case TYPE_TIMEV2:
1072
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1073
0
        case TYPE_DECIMALV2:
1074
99
        case TYPE_DECIMAL32:
1075
208
        case TYPE_DECIMAL64:
1076
1.04k
        case TYPE_DECIMAL128I:
1077
1.05k
        case TYPE_DECIMAL256:
1078
1.05k
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
1.05k
                                   col_with_type_and_name_right);
1080
542
        case TYPE_CHAR:
1081
6.50k
        case TYPE_VARCHAR:
1082
20.3k
        case TYPE_STRING:
1083
20.3k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
31
        default:
1085
31
            return execute_generic(block, result, col_with_type_and_name_left,
1086
31
                                   col_with_type_and_name_right);
1087
44.6k
        }
1088
0
        return Status::OK();
1089
44.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
3.27k
                        uint32_t result, size_t input_rows_count) const override {
967
3.27k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
3.27k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
3.27k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
3.27k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
3.27k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
3.27k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
3.27k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
3.27k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
3.27k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
3.27k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
3.27k
        right_type->get_primitive_type() == TYPE) {                                             \
981
3.27k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
3.27k
                                                         col_right_ptr, input_rows_count);      \
983
3.27k
    }                                                                                           \
984
3.27k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
3.27k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
3.27k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
3.27k
                                                          col_right_ptr, input_rows_count);     \
988
3.27k
    }
989
990
3.27k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
6.55k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
6.55k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
6.55k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
6.55k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
3.27k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
3.27k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
3.27k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
1008
                block.get_by_position(result).column =
1009
                        DataTypeUInt8()
1010
                                .create_column_const(input_rows_count,
1011
                                                     Field::create_field<TYPE_BOOLEAN>(1))
1012
                                ->convert_to_full_column_if_const();
1013
                return Status::OK();
1014
0
            } else {
1015
0
                block.get_by_position(result).column =
1016
0
                        DataTypeUInt8()
1017
0
                                .create_column_const(input_rows_count,
1018
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
1019
0
                                ->convert_to_full_column_if_const();
1020
0
                return Status::OK();
1021
0
            }
1022
0
        }
1023
1024
0
        auto can_compare = [](PrimitiveType t) -> bool {
1025
3.27k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
3.27k
                   is_timestamp_ns_type(t);
1027
3.27k
        };
1028
1029
3.27k
        if (can_compare(left_type->get_primitive_type()) &&
1030
3.27k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
3.01k
            if (!left_type->equals_ignore_precision(*right_type)) {
1033
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
1034
0
                                            get_name(), left_type->get_name(),
1035
0
                                            right_type->get_name());
1036
0
            }
1037
3.01k
        }
1038
1039
3.27k
        auto compare_type = left_type->get_primitive_type();
1040
3.27k
        switch (compare_type) {
1041
0
        case TYPE_BOOLEAN:
1042
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
70
        case TYPE_DATEV2:
1044
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
0
        case TYPE_DATETIMEV2:
1046
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
8
        case TYPE_TIMESTAMP_NS:
1048
8
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
0
        case TYPE_TIMESTAMPTZ:
1050
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
84
        case TYPE_TINYINT:
1052
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
0
        case TYPE_SMALLINT:
1054
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
1.54k
        case TYPE_INT:
1056
1.54k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
1.19k
        case TYPE_BIGINT:
1058
1.19k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
0
        case TYPE_LARGEINT:
1060
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1061
0
        case TYPE_IPV4:
1062
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1063
0
        case TYPE_IPV6:
1064
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1065
0
        case TYPE_UUID:
1066
0
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
48
        case TYPE_FLOAT:
1068
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
62
        case TYPE_DOUBLE:
1070
62
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1071
0
        case TYPE_TIMEV2:
1072
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1073
0
        case TYPE_DECIMALV2:
1074
0
        case TYPE_DECIMAL32:
1075
65
        case TYPE_DECIMAL64:
1076
93
        case TYPE_DECIMAL128I:
1077
123
        case TYPE_DECIMAL256:
1078
123
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
123
                                   col_with_type_and_name_right);
1080
1
        case TYPE_CHAR:
1081
68
        case TYPE_VARCHAR:
1082
133
        case TYPE_STRING:
1083
133
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
10
        default:
1085
10
            return execute_generic(block, result, col_with_type_and_name_left,
1086
10
                                   col_with_type_and_name_right);
1087
3.27k
        }
1088
0
        return Status::OK();
1089
3.27k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
78.5k
                        uint32_t result, size_t input_rows_count) const override {
967
78.5k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
78.5k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
78.5k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
78.5k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
78.5k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
78.5k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
78.5k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
78.5k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
78.5k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
78.5k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
78.5k
        right_type->get_primitive_type() == TYPE) {                                             \
981
78.5k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
78.5k
                                                         col_right_ptr, input_rows_count);      \
983
78.5k
    }                                                                                           \
984
78.5k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
78.5k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
78.5k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
78.5k
                                                          col_right_ptr, input_rows_count);     \
988
78.5k
    }
989
990
78.5k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
157k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
157k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
157k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
157k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
78.5k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
78.5k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
78.5k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
1008
                block.get_by_position(result).column =
1009
                        DataTypeUInt8()
1010
                                .create_column_const(input_rows_count,
1011
                                                     Field::create_field<TYPE_BOOLEAN>(1))
1012
                                ->convert_to_full_column_if_const();
1013
                return Status::OK();
1014
0
            } else {
1015
0
                block.get_by_position(result).column =
1016
0
                        DataTypeUInt8()
1017
0
                                .create_column_const(input_rows_count,
1018
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
1019
0
                                ->convert_to_full_column_if_const();
1020
0
                return Status::OK();
1021
0
            }
1022
0
        }
1023
1024
0
        auto can_compare = [](PrimitiveType t) -> bool {
1025
78.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
78.5k
                   is_timestamp_ns_type(t);
1027
78.5k
        };
1028
1029
78.5k
        if (can_compare(left_type->get_primitive_type()) &&
1030
78.5k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
76.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
1033
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
1034
0
                                            get_name(), left_type->get_name(),
1035
0
                                            right_type->get_name());
1036
0
            }
1037
76.9k
        }
1038
1039
78.5k
        auto compare_type = left_type->get_primitive_type();
1040
78.5k
        switch (compare_type) {
1041
0
        case TYPE_BOOLEAN:
1042
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
1.45k
        case TYPE_DATEV2:
1044
1.45k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
3
        case TYPE_DATETIMEV2:
1046
3
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
67
        case TYPE_TIMESTAMP_NS:
1048
67
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
2
        case TYPE_TIMESTAMPTZ:
1050
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
1.53k
        case TYPE_TINYINT:
1052
1.53k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
2.34k
        case TYPE_SMALLINT:
1054
2.34k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
67.9k
        case TYPE_INT:
1056
67.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
2.45k
        case TYPE_BIGINT:
1058
2.45k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
223
        case TYPE_LARGEINT:
1060
223
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1061
4
        case TYPE_IPV4:
1062
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1063
1
        case TYPE_IPV6:
1064
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1065
611
        case TYPE_UUID:
1066
611
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
325
        case TYPE_FLOAT:
1068
325
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
544
        case TYPE_DOUBLE:
1070
544
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1071
0
        case TYPE_TIMEV2:
1072
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1073
0
        case TYPE_DECIMALV2:
1074
8
        case TYPE_DECIMAL32:
1075
77
        case TYPE_DECIMAL64:
1076
777
        case TYPE_DECIMAL128I:
1077
779
        case TYPE_DECIMAL256:
1078
779
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
779
                                   col_with_type_and_name_right);
1080
14
        case TYPE_CHAR:
1081
127
        case TYPE_VARCHAR:
1082
235
        case TYPE_STRING:
1083
235
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
9
        default:
1085
9
            return execute_generic(block, result, col_with_type_and_name_left,
1086
9
                                   col_with_type_and_name_right);
1087
78.5k
        }
1088
0
        return Status::OK();
1089
78.5k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
4.37k
                        uint32_t result, size_t input_rows_count) const override {
967
4.37k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
4.37k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
4.37k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
4.37k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
4.37k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
4.37k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
4.37k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
4.37k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
4.37k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
4.37k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
4.37k
        right_type->get_primitive_type() == TYPE) {                                             \
981
4.37k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
4.37k
                                                         col_right_ptr, input_rows_count);      \
983
4.37k
    }                                                                                           \
984
4.37k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
4.37k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
4.37k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
4.37k
                                                          col_right_ptr, input_rows_count);     \
988
4.37k
    }
989
990
4.37k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
8.74k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
8.74k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
8.73k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
8.73k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
4.36k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
4.36k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
4.36k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
1008
0
                block.get_by_position(result).column =
1009
0
                        DataTypeUInt8()
1010
0
                                .create_column_const(input_rows_count,
1011
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
1012
0
                                ->convert_to_full_column_if_const();
1013
0
                return Status::OK();
1014
            } else {
1015
                block.get_by_position(result).column =
1016
                        DataTypeUInt8()
1017
                                .create_column_const(input_rows_count,
1018
                                                     Field::create_field<TYPE_BOOLEAN>(0))
1019
                                ->convert_to_full_column_if_const();
1020
                return Status::OK();
1021
            }
1022
0
        }
1023
1024
0
        auto can_compare = [](PrimitiveType t) -> bool {
1025
4.36k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
4.36k
                   is_timestamp_ns_type(t);
1027
4.36k
        };
1028
1029
4.36k
        if (can_compare(left_type->get_primitive_type()) &&
1030
4.36k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
3.28k
            if (!left_type->equals_ignore_precision(*right_type)) {
1033
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
1034
0
                                            get_name(), left_type->get_name(),
1035
0
                                            right_type->get_name());
1036
0
            }
1037
3.28k
        }
1038
1039
4.36k
        auto compare_type = left_type->get_primitive_type();
1040
4.36k
        switch (compare_type) {
1041
34
        case TYPE_BOOLEAN:
1042
34
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
461
        case TYPE_DATEV2:
1044
461
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
123
        case TYPE_DATETIMEV2:
1046
123
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
402
        case TYPE_TIMESTAMP_NS:
1048
402
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
2
        case TYPE_TIMESTAMPTZ:
1050
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
60
        case TYPE_TINYINT:
1052
60
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
57
        case TYPE_SMALLINT:
1054
57
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
1.09k
        case TYPE_INT:
1056
1.09k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
799
        case TYPE_BIGINT:
1058
799
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
27
        case TYPE_LARGEINT:
1060
27
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1061
1
        case TYPE_IPV4:
1062
1
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1063
1
        case TYPE_IPV6:
1064
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1065
577
        case TYPE_UUID:
1066
577
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
23
        case TYPE_FLOAT:
1068
23
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
145
        case TYPE_DOUBLE:
1070
145
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1071
0
        case TYPE_TIMEV2:
1072
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1073
0
        case TYPE_DECIMALV2:
1074
1
        case TYPE_DECIMAL32:
1075
74
        case TYPE_DECIMAL64:
1076
148
        case TYPE_DECIMAL128I:
1077
165
        case TYPE_DECIMAL256:
1078
165
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
165
                                   col_with_type_and_name_right);
1080
40
        case TYPE_CHAR:
1081
267
        case TYPE_VARCHAR:
1082
337
        case TYPE_STRING:
1083
337
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
54
        default:
1085
54
            return execute_generic(block, result, col_with_type_and_name_left,
1086
54
                                   col_with_type_and_name_right);
1087
4.36k
        }
1088
0
        return Status::OK();
1089
4.36k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
11.8k
                        uint32_t result, size_t input_rows_count) const override {
967
11.8k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
11.8k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
11.8k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
11.8k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
11.8k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
11.8k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
11.8k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
11.8k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
11.8k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
11.8k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
11.8k
        right_type->get_primitive_type() == TYPE) {                                             \
981
11.8k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
11.8k
                                                         col_right_ptr, input_rows_count);      \
983
11.8k
    }                                                                                           \
984
11.8k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
11.8k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
11.8k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
11.8k
                                                          col_right_ptr, input_rows_count);     \
988
11.8k
    }
989
990
11.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
23.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
23.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
23.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
23.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
11.8k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
11.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
11.8k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
1008
                block.get_by_position(result).column =
1009
                        DataTypeUInt8()
1010
                                .create_column_const(input_rows_count,
1011
                                                     Field::create_field<TYPE_BOOLEAN>(1))
1012
                                ->convert_to_full_column_if_const();
1013
                return Status::OK();
1014
0
            } else {
1015
0
                block.get_by_position(result).column =
1016
0
                        DataTypeUInt8()
1017
0
                                .create_column_const(input_rows_count,
1018
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
1019
0
                                ->convert_to_full_column_if_const();
1020
0
                return Status::OK();
1021
0
            }
1022
0
        }
1023
1024
0
        auto can_compare = [](PrimitiveType t) -> bool {
1025
11.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
11.8k
                   is_timestamp_ns_type(t);
1027
11.8k
        };
1028
1029
11.8k
        if (can_compare(left_type->get_primitive_type()) &&
1030
11.8k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
9.82k
            if (!left_type->equals_ignore_precision(*right_type)) {
1033
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
1034
0
                                            get_name(), left_type->get_name(),
1035
0
                                            right_type->get_name());
1036
0
            }
1037
9.82k
        }
1038
1039
11.8k
        auto compare_type = left_type->get_primitive_type();
1040
11.8k
        switch (compare_type) {
1041
91
        case TYPE_BOOLEAN:
1042
91
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
2.10k
        case TYPE_DATEV2:
1044
2.10k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
295
        case TYPE_DATETIMEV2:
1046
295
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
149
        case TYPE_TIMESTAMP_NS:
1048
149
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
3
        case TYPE_TIMESTAMPTZ:
1050
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
2.39k
        case TYPE_TINYINT:
1052
2.39k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
170
        case TYPE_SMALLINT:
1054
170
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
2.04k
        case TYPE_INT:
1056
2.04k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
917
        case TYPE_BIGINT:
1058
917
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
274
        case TYPE_LARGEINT:
1060
274
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1061
17
        case TYPE_IPV4:
1062
17
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1063
15
        case TYPE_IPV6:
1064
15
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1065
457
        case TYPE_UUID:
1066
457
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
130
        case TYPE_FLOAT:
1068
130
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
1.22k
        case TYPE_DOUBLE:
1070
1.22k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1071
0
        case TYPE_TIMEV2:
1072
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1073
0
        case TYPE_DECIMALV2:
1074
165
        case TYPE_DECIMAL32:
1075
348
        case TYPE_DECIMAL64:
1076
1.01k
        case TYPE_DECIMAL128I:
1077
1.01k
        case TYPE_DECIMAL256:
1078
1.01k
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
1.01k
                                   col_with_type_and_name_right);
1080
161
        case TYPE_CHAR:
1081
369
        case TYPE_VARCHAR:
1082
518
        case TYPE_STRING:
1083
518
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
12
        default:
1085
12
            return execute_generic(block, result, col_with_type_and_name_left,
1086
12
                                   col_with_type_and_name_right);
1087
11.8k
        }
1088
0
        return Status::OK();
1089
11.8k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
9.29k
                        uint32_t result, size_t input_rows_count) const override {
967
9.29k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
9.29k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
9.29k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
9.29k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
9.29k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
9.29k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
9.29k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
9.29k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
9.29k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
9.29k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
9.29k
        right_type->get_primitive_type() == TYPE) {                                             \
981
9.29k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
9.29k
                                                         col_right_ptr, input_rows_count);      \
983
9.29k
    }                                                                                           \
984
9.29k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
9.29k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
9.29k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
9.29k
                                                          col_right_ptr, input_rows_count);     \
988
9.29k
    }
989
990
9.29k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
18.5k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
18.5k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
18.5k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
18.5k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
9.29k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
9.30k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
9.30k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
1008
0
                block.get_by_position(result).column =
1009
0
                        DataTypeUInt8()
1010
0
                                .create_column_const(input_rows_count,
1011
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
1012
0
                                ->convert_to_full_column_if_const();
1013
0
                return Status::OK();
1014
            } else {
1015
                block.get_by_position(result).column =
1016
                        DataTypeUInt8()
1017
                                .create_column_const(input_rows_count,
1018
                                                     Field::create_field<TYPE_BOOLEAN>(0))
1019
                                ->convert_to_full_column_if_const();
1020
                return Status::OK();
1021
            }
1022
0
        }
1023
1024
0
        auto can_compare = [](PrimitiveType t) -> bool {
1025
9.29k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
9.29k
                   is_timestamp_ns_type(t);
1027
9.29k
        };
1028
1029
9.29k
        if (can_compare(left_type->get_primitive_type()) &&
1030
9.29k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
8.38k
            if (!left_type->equals_ignore_precision(*right_type)) {
1033
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
1034
0
                                            get_name(), left_type->get_name(),
1035
0
                                            right_type->get_name());
1036
0
            }
1037
8.38k
        }
1038
1039
9.29k
        auto compare_type = left_type->get_primitive_type();
1040
9.29k
        switch (compare_type) {
1041
33
        case TYPE_BOOLEAN:
1042
33
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
535
        case TYPE_DATEV2:
1044
535
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
82
        case TYPE_DATETIMEV2:
1046
82
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
59
        case TYPE_TIMESTAMP_NS:
1048
59
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
2
        case TYPE_TIMESTAMPTZ:
1050
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
71
        case TYPE_TINYINT:
1052
71
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
89
        case TYPE_SMALLINT:
1054
89
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
6.52k
        case TYPE_INT:
1056
6.52k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
716
        case TYPE_BIGINT:
1058
716
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
55
        case TYPE_LARGEINT:
1060
55
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1061
0
        case TYPE_IPV4:
1062
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1063
0
        case TYPE_IPV6:
1064
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1065
417
        case TYPE_UUID:
1066
417
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
20
        case TYPE_FLOAT:
1068
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
133
        case TYPE_DOUBLE:
1070
133
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1071
0
        case TYPE_TIMEV2:
1072
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1073
0
        case TYPE_DECIMALV2:
1074
4
        case TYPE_DECIMAL32:
1075
93
        case TYPE_DECIMAL64:
1076
182
        case TYPE_DECIMAL128I:
1077
194
        case TYPE_DECIMAL256:
1078
194
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
194
                                   col_with_type_and_name_right);
1080
53
        case TYPE_CHAR:
1081
227
        case TYPE_VARCHAR:
1082
305
        case TYPE_STRING:
1083
305
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
62
        default:
1085
62
            return execute_generic(block, result, col_with_type_and_name_left,
1086
62
                                   col_with_type_and_name_right);
1087
9.29k
        }
1088
0
        return Status::OK();
1089
9.29k
    }
1090
};
1091
1092
} // namespace doris