Coverage Report

Created: 2026-10-21 03:35

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
11.6k
                                        PaddedPODArray<UInt8>& c) {
75
11.6k
        size_t size = a.size();
76
11.6k
        const A* __restrict a_pos = a.data();
77
11.6k
        const B* __restrict b_pos = b.data();
78
11.6k
        UInt8* __restrict c_pos = c.data();
79
11.6k
        const A* __restrict a_end = a_pos + size;
80
81
6.03M
        while (a_pos < a_end) {
82
6.02M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
6.02M
            ++a_pos;
84
6.02M
            ++b_pos;
85
6.02M
            ++c_pos;
86
6.02M
        }
87
11.6k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
74
64
                                        PaddedPODArray<UInt8>& c) {
75
64
        size_t size = a.size();
76
64
        const A* __restrict a_pos = a.data();
77
64
        const B* __restrict b_pos = b.data();
78
64
        UInt8* __restrict c_pos = c.data();
79
64
        const A* __restrict a_end = a_pos + size;
80
81
132
        while (a_pos < a_end) {
82
68
            *c_pos = Op::apply(*a_pos, *b_pos);
83
68
            ++a_pos;
84
68
            ++b_pos;
85
68
            ++c_pos;
86
68
        }
87
64
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
196
                                        PaddedPODArray<UInt8>& c) {
75
196
        size_t size = a.size();
76
196
        const A* __restrict a_pos = a.data();
77
196
        const B* __restrict b_pos = b.data();
78
196
        UInt8* __restrict c_pos = c.data();
79
196
        const A* __restrict a_end = a_pos + size;
80
81
1.33k
        while (a_pos < a_end) {
82
1.13k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.13k
            ++a_pos;
84
1.13k
            ++b_pos;
85
1.13k
            ++c_pos;
86
1.13k
        }
87
196
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
205
                                        PaddedPODArray<UInt8>& c) {
75
205
        size_t size = a.size();
76
205
        const A* __restrict a_pos = a.data();
77
205
        const B* __restrict b_pos = b.data();
78
205
        UInt8* __restrict c_pos = c.data();
79
205
        const A* __restrict a_end = a_pos + size;
80
81
426
        while (a_pos < a_end) {
82
221
            *c_pos = Op::apply(*a_pos, *b_pos);
83
221
            ++a_pos;
84
221
            ++b_pos;
85
221
            ++c_pos;
86
221
        }
87
205
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
111
                                        PaddedPODArray<UInt8>& c) {
75
111
        size_t size = a.size();
76
111
        const A* __restrict a_pos = a.data();
77
111
        const B* __restrict b_pos = b.data();
78
111
        UInt8* __restrict c_pos = c.data();
79
111
        const A* __restrict a_end = a_pos + size;
80
81
281
        while (a_pos < a_end) {
82
170
            *c_pos = Op::apply(*a_pos, *b_pos);
83
170
            ++a_pos;
84
170
            ++b_pos;
85
170
            ++c_pos;
86
170
        }
87
111
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_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
12
        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
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
121
                                        PaddedPODArray<UInt8>& c) {
75
121
        size_t size = a.size();
76
121
        const A* __restrict a_pos = a.data();
77
121
        const B* __restrict b_pos = b.data();
78
121
        UInt8* __restrict c_pos = c.data();
79
121
        const A* __restrict a_end = a_pos + size;
80
81
369
        while (a_pos < a_end) {
82
248
            *c_pos = Op::apply(*a_pos, *b_pos);
83
248
            ++a_pos;
84
248
            ++b_pos;
85
248
            ++c_pos;
86
248
        }
87
121
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
89
                                        PaddedPODArray<UInt8>& c) {
75
89
        size_t size = a.size();
76
89
        const A* __restrict a_pos = a.data();
77
89
        const B* __restrict b_pos = b.data();
78
89
        UInt8* __restrict c_pos = c.data();
79
89
        const A* __restrict a_end = a_pos + size;
80
81
178
        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
89
    }
_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.7k
        while (a_pos < a_end) {
82
18.7k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
18.7k
            ++a_pos;
84
18.7k
            ++b_pos;
85
18.7k
            ++c_pos;
86
18.7k
        }
87
1.02k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
186
                                        PaddedPODArray<UInt8>& c) {
75
186
        size_t size = a.size();
76
186
        const A* __restrict a_pos = a.data();
77
186
        const B* __restrict b_pos = b.data();
78
186
        UInt8* __restrict c_pos = c.data();
79
186
        const A* __restrict a_end = a_pos + size;
80
81
1.60k
        while (a_pos < a_end) {
82
1.41k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.41k
            ++a_pos;
84
1.41k
            ++b_pos;
85
1.41k
            ++c_pos;
86
1.41k
        }
87
186
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
54
                                        PaddedPODArray<UInt8>& c) {
75
54
        size_t size = a.size();
76
54
        const A* __restrict a_pos = a.data();
77
54
        const B* __restrict b_pos = b.data();
78
54
        UInt8* __restrict c_pos = c.data();
79
54
        const A* __restrict a_end = a_pos + size;
80
81
108
        while (a_pos < a_end) {
82
54
            *c_pos = Op::apply(*a_pos, *b_pos);
83
54
            ++a_pos;
84
54
            ++b_pos;
85
54
            ++c_pos;
86
54
        }
87
54
    }
_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
785
                                        PaddedPODArray<UInt8>& c) {
75
785
        size_t size = a.size();
76
785
        const A* __restrict a_pos = a.data();
77
785
        const B* __restrict b_pos = b.data();
78
785
        UInt8* __restrict c_pos = c.data();
79
785
        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
785
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
73
                                        PaddedPODArray<UInt8>& c) {
75
73
        size_t size = a.size();
76
73
        const A* __restrict a_pos = a.data();
77
73
        const B* __restrict b_pos = b.data();
78
73
        UInt8* __restrict c_pos = c.data();
79
73
        const A* __restrict a_end = a_pos + size;
80
81
165
        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
73
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
94
                                        PaddedPODArray<UInt8>& c) {
75
94
        size_t size = a.size();
76
94
        const A* __restrict a_pos = a.data();
77
94
        const B* __restrict b_pos = b.data();
78
94
        UInt8* __restrict c_pos = c.data();
79
94
        const A* __restrict a_end = a_pos + size;
80
81
259
        while (a_pos < a_end) {
82
165
            *c_pos = Op::apply(*a_pos, *b_pos);
83
165
            ++a_pos;
84
165
            ++b_pos;
85
165
            ++c_pos;
86
165
        }
87
94
    }
_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
50
                                        PaddedPODArray<UInt8>& c) {
75
50
        size_t size = a.size();
76
50
        const A* __restrict a_pos = a.data();
77
50
        const B* __restrict b_pos = b.data();
78
50
        UInt8* __restrict c_pos = c.data();
79
50
        const A* __restrict a_end = a_pos + size;
80
81
225
        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
50
    }
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.05k
                                        PaddedPODArray<UInt8>& c) {
75
1.05k
        size_t size = a.size();
76
1.05k
        const A* __restrict a_pos = a.data();
77
1.05k
        const B* __restrict b_pos = b.data();
78
1.05k
        UInt8* __restrict c_pos = c.data();
79
1.05k
        const A* __restrict a_end = a_pos + size;
80
81
313k
        while (a_pos < a_end) {
82
312k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
312k
            ++a_pos;
84
312k
            ++b_pos;
85
312k
            ++c_pos;
86
312k
        }
87
1.05k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
386
                                        PaddedPODArray<UInt8>& c) {
75
386
        size_t size = a.size();
76
386
        const A* __restrict a_pos = a.data();
77
386
        const B* __restrict b_pos = b.data();
78
386
        UInt8* __restrict c_pos = c.data();
79
386
        const A* __restrict a_end = a_pos + size;
80
81
7.11k
        while (a_pos < a_end) {
82
6.73k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
6.73k
            ++a_pos;
84
6.73k
            ++b_pos;
85
6.73k
            ++c_pos;
86
6.73k
        }
87
386
    }
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.03k
                                        PaddedPODArray<UInt8>& c) {
75
1.03k
        size_t size = a.size();
76
1.03k
        const A* __restrict a_pos = a.data();
77
1.03k
        const B* __restrict b_pos = b.data();
78
1.03k
        UInt8* __restrict c_pos = c.data();
79
1.03k
        const A* __restrict a_end = a_pos + size;
80
81
2.62M
        while (a_pos < a_end) {
82
2.62M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
2.62M
            ++a_pos;
84
2.62M
            ++b_pos;
85
2.62M
            ++c_pos;
86
2.62M
        }
87
1.03k
    }
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
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
10
        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
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
69
                                        PaddedPODArray<UInt8>& c) {
75
69
        size_t size = a.size();
76
69
        const A* __restrict a_pos = a.data();
77
69
        const B* __restrict b_pos = b.data();
78
69
        UInt8* __restrict c_pos = c.data();
79
69
        const A* __restrict a_end = a_pos + size;
80
81
384
        while (a_pos < a_end) {
82
315
            *c_pos = Op::apply(*a_pos, *b_pos);
83
315
            ++a_pos;
84
315
            ++b_pos;
85
315
            ++c_pos;
86
315
        }
87
69
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_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
371
        while (a_pos < a_end) {
82
261
            *c_pos = Op::apply(*a_pos, *b_pos);
83
261
            ++a_pos;
84
261
            ++b_pos;
85
261
            ++c_pos;
86
261
        }
87
110
    }
_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
182
                                        PaddedPODArray<UInt8>& c) {
75
182
        size_t size = a.size();
76
182
        const A* __restrict a_pos = a.data();
77
182
        const B* __restrict b_pos = b.data();
78
182
        UInt8* __restrict c_pos = c.data();
79
182
        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
182
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_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
6
        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
2
    }
_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
35
                                        PaddedPODArray<UInt8>& c) {
75
35
        size_t size = a.size();
76
35
        const A* __restrict a_pos = a.data();
77
35
        const B* __restrict b_pos = b.data();
78
35
        UInt8* __restrict c_pos = c.data();
79
35
        const A* __restrict a_end = a_pos + size;
80
81
124
        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
35
    }
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
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
10
        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
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
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
32
                                        PaddedPODArray<UInt8>& c) {
75
32
        size_t size = a.size();
76
32
        const A* __restrict a_pos = a.data();
77
32
        const B* __restrict b_pos = b.data();
78
32
        UInt8* __restrict c_pos = c.data();
79
32
        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
32
    }
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
69
        while (a_pos < a_end) {
82
45
            *c_pos = Op::apply(*a_pos, *b_pos);
83
45
            ++a_pos;
84
45
            ++b_pos;
85
45
            ++c_pos;
86
45
        }
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
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
344
        while (a_pos < a_end) {
82
259
            *c_pos = Op::apply(*a_pos, *b_pos);
83
259
            ++a_pos;
84
259
            ++b_pos;
85
259
            ++c_pos;
86
259
        }
87
85
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
1.62k
                                        PaddedPODArray<UInt8>& c) {
75
1.62k
        size_t size = a.size();
76
1.62k
        const A* __restrict a_pos = a.data();
77
1.62k
        const B* __restrict b_pos = b.data();
78
1.62k
        UInt8* __restrict c_pos = c.data();
79
1.62k
        const A* __restrict a_end = a_pos + size;
80
81
1.80M
        while (a_pos < a_end) {
82
1.79M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.79M
            ++a_pos;
84
1.79M
            ++b_pos;
85
1.79M
            ++c_pos;
86
1.79M
        }
87
1.62k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
241
                                        PaddedPODArray<UInt8>& c) {
75
241
        size_t size = a.size();
76
241
        const A* __restrict a_pos = a.data();
77
241
        const B* __restrict b_pos = b.data();
78
241
        UInt8* __restrict c_pos = c.data();
79
241
        const A* __restrict a_end = a_pos + size;
80
81
830
        while (a_pos < a_end) {
82
589
            *c_pos = Op::apply(*a_pos, *b_pos);
83
589
            ++a_pos;
84
589
            ++b_pos;
85
589
            ++c_pos;
86
589
        }
87
241
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
105
                                        PaddedPODArray<UInt8>& c) {
75
105
        size_t size = a.size();
76
105
        const A* __restrict a_pos = a.data();
77
105
        const B* __restrict b_pos = b.data();
78
105
        UInt8* __restrict c_pos = c.data();
79
105
        const A* __restrict a_end = a_pos + size;
80
81
221
        while (a_pos < a_end) {
82
116
            *c_pos = Op::apply(*a_pos, *b_pos);
83
116
            ++a_pos;
84
116
            ++b_pos;
85
116
            ++c_pos;
86
116
        }
87
105
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_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
10
        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
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
218
                                        PaddedPODArray<UInt8>& c) {
75
218
        size_t size = a.size();
76
218
        const A* __restrict a_pos = a.data();
77
218
        const B* __restrict b_pos = b.data();
78
218
        UInt8* __restrict c_pos = c.data();
79
218
        const A* __restrict a_end = a_pos + size;
80
81
610
        while (a_pos < a_end) {
82
392
            *c_pos = Op::apply(*a_pos, *b_pos);
83
392
            ++a_pos;
84
392
            ++b_pos;
85
392
            ++c_pos;
86
392
        }
87
218
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
155
                                        PaddedPODArray<UInt8>& c) {
75
155
        size_t size = a.size();
76
155
        const A* __restrict a_pos = a.data();
77
155
        const B* __restrict b_pos = b.data();
78
155
        UInt8* __restrict c_pos = c.data();
79
155
        const A* __restrict a_end = a_pos + size;
80
81
486
        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
155
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
902
                                        PaddedPODArray<UInt8>& c) {
75
902
        size_t size = a.size();
76
902
        const A* __restrict a_pos = a.data();
77
902
        const B* __restrict b_pos = b.data();
78
902
        UInt8* __restrict c_pos = c.data();
79
902
        const A* __restrict a_end = a_pos + size;
80
81
18.8k
        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
902
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
266
                                        PaddedPODArray<UInt8>& c) {
75
266
        size_t size = a.size();
76
266
        const A* __restrict a_pos = a.data();
77
266
        const B* __restrict b_pos = b.data();
78
266
        UInt8* __restrict c_pos = c.data();
79
266
        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
266
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
134
                                        PaddedPODArray<UInt8>& c) {
75
134
        size_t size = a.size();
76
134
        const A* __restrict a_pos = a.data();
77
134
        const B* __restrict b_pos = b.data();
78
134
        UInt8* __restrict c_pos = c.data();
79
134
        const A* __restrict a_end = a_pos + size;
80
81
442
        while (a_pos < a_end) {
82
308
            *c_pos = Op::apply(*a_pos, *b_pos);
83
308
            ++a_pos;
84
308
            ++b_pos;
85
308
            ++c_pos;
86
308
        }
87
134
    }
_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
144
                                        PaddedPODArray<UInt8>& c) {
75
144
        size_t size = a.size();
76
144
        const A* __restrict a_pos = a.data();
77
144
        const B* __restrict b_pos = b.data();
78
144
        UInt8* __restrict c_pos = c.data();
79
144
        const A* __restrict a_end = a_pos + size;
80
81
505
        while (a_pos < a_end) {
82
361
            *c_pos = Op::apply(*a_pos, *b_pos);
83
361
            ++a_pos;
84
361
            ++b_pos;
85
361
            ++c_pos;
86
361
        }
87
144
    }
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
396
                                        PaddedPODArray<UInt8>& c) {
75
396
        size_t size = a.size();
76
396
        const A* __restrict a_pos = a.data();
77
396
        const B* __restrict b_pos = b.data();
78
396
        UInt8* __restrict c_pos = c.data();
79
396
        const A* __restrict a_end = a_pos + size;
80
81
6.05k
        while (a_pos < a_end) {
82
5.65k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
5.65k
            ++a_pos;
84
5.65k
            ++b_pos;
85
5.65k
            ++c_pos;
86
5.65k
        }
87
396
    }
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
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
10
        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
1
    }
_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
113k
                                          PaddedPODArray<UInt8>& c) {
91
113k
        size_t size = a.size();
92
113k
        const A* __restrict a_pos = a.data();
93
113k
        UInt8* __restrict c_pos = c.data();
94
113k
        const A* __restrict a_end = a_pos + size;
95
96
37.6M
        while (a_pos < a_end) {
97
37.5M
            *c_pos = Op::apply(*a_pos, b);
98
37.5M
            ++a_pos;
99
37.5M
            ++c_pos;
100
37.5M
        }
101
113k
    }
_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
183
        while (a_pos < a_end) {
97
153
            *c_pos = Op::apply(*a_pos, b);
98
153
            ++a_pos;
99
153
            ++c_pos;
100
153
        }
101
30
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
652
                                          PaddedPODArray<UInt8>& c) {
91
652
        size_t size = a.size();
92
652
        const A* __restrict a_pos = a.data();
93
652
        UInt8* __restrict c_pos = c.data();
94
652
        const A* __restrict a_end = a_pos + size;
95
96
204k
        while (a_pos < a_end) {
97
204k
            *c_pos = Op::apply(*a_pos, b);
98
204k
            ++a_pos;
99
204k
            ++c_pos;
100
204k
        }
101
652
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
202
                                          PaddedPODArray<UInt8>& c) {
91
202
        size_t size = a.size();
92
202
        const A* __restrict a_pos = a.data();
93
202
        UInt8* __restrict c_pos = c.data();
94
202
        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
202
    }
_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.98k
                                          PaddedPODArray<UInt8>& c) {
91
5.98k
        size_t size = a.size();
92
5.98k
        const A* __restrict a_pos = a.data();
93
5.98k
        UInt8* __restrict c_pos = c.data();
94
5.98k
        const A* __restrict a_end = a_pos + size;
95
96
8.97M
        while (a_pos < a_end) {
97
8.96M
            *c_pos = Op::apply(*a_pos, b);
98
8.96M
            ++a_pos;
99
8.96M
            ++c_pos;
100
8.96M
        }
101
5.98k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
317
                                          PaddedPODArray<UInt8>& c) {
91
317
        size_t size = a.size();
92
317
        const A* __restrict a_pos = a.data();
93
317
        UInt8* __restrict c_pos = c.data();
94
317
        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
317
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2.16k
                                          PaddedPODArray<UInt8>& c) {
91
2.16k
        size_t size = a.size();
92
2.16k
        const A* __restrict a_pos = a.data();
93
2.16k
        UInt8* __restrict c_pos = c.data();
94
2.16k
        const A* __restrict a_end = a_pos + size;
95
96
202k
        while (a_pos < a_end) {
97
200k
            *c_pos = Op::apply(*a_pos, b);
98
200k
            ++a_pos;
99
200k
            ++c_pos;
100
200k
        }
101
2.16k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
6.38k
                                          PaddedPODArray<UInt8>& c) {
91
6.38k
        size_t size = a.size();
92
6.38k
        const A* __restrict a_pos = a.data();
93
6.38k
        UInt8* __restrict c_pos = c.data();
94
6.38k
        const A* __restrict a_end = a_pos + size;
95
96
4.87M
        while (a_pos < a_end) {
97
4.86M
            *c_pos = Op::apply(*a_pos, b);
98
4.86M
            ++a_pos;
99
4.86M
            ++c_pos;
100
4.86M
        }
101
6.38k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
45
                                          PaddedPODArray<UInt8>& c) {
91
45
        size_t size = a.size();
92
45
        const A* __restrict a_pos = a.data();
93
45
        UInt8* __restrict c_pos = c.data();
94
45
        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
45
    }
_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
812
                                          PaddedPODArray<UInt8>& c) {
91
812
        size_t size = a.size();
92
812
        const A* __restrict a_pos = a.data();
93
812
        UInt8* __restrict c_pos = c.data();
94
812
        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
812
    }
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
197
                                          PaddedPODArray<UInt8>& c) {
91
197
        size_t size = a.size();
92
197
        const A* __restrict a_pos = a.data();
93
197
        UInt8* __restrict c_pos = c.data();
94
197
        const A* __restrict a_end = a_pos + size;
95
96
1.90k
        while (a_pos < a_end) {
97
1.70k
            *c_pos = Op::apply(*a_pos, b);
98
1.70k
            ++a_pos;
99
1.70k
            ++c_pos;
100
1.70k
        }
101
197
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
807
                                          PaddedPODArray<UInt8>& c) {
91
807
        size_t size = a.size();
92
807
        const A* __restrict a_pos = a.data();
93
807
        UInt8* __restrict c_pos = c.data();
94
807
        const A* __restrict a_end = a_pos + size;
95
96
5.99k
        while (a_pos < a_end) {
97
5.18k
            *c_pos = Op::apply(*a_pos, b);
98
5.18k
            ++a_pos;
99
5.18k
            ++c_pos;
100
5.18k
        }
101
807
    }
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
388
                                          PaddedPODArray<UInt8>& c) {
91
388
        size_t size = a.size();
92
388
        const A* __restrict a_pos = a.data();
93
388
        UInt8* __restrict c_pos = c.data();
94
388
        const A* __restrict a_end = a_pos + size;
95
96
1.34M
        while (a_pos < a_end) {
97
1.34M
            *c_pos = Op::apply(*a_pos, b);
98
1.34M
            ++a_pos;
99
1.34M
            ++c_pos;
100
1.34M
        }
101
388
    }
_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.29k
                                          PaddedPODArray<UInt8>& c) {
91
1.29k
        size_t size = a.size();
92
1.29k
        const A* __restrict a_pos = a.data();
93
1.29k
        UInt8* __restrict c_pos = c.data();
94
1.29k
        const A* __restrict a_end = a_pos + size;
95
96
13.1k
        while (a_pos < a_end) {
97
11.8k
            *c_pos = Op::apply(*a_pos, b);
98
11.8k
            ++a_pos;
99
11.8k
            ++c_pos;
100
11.8k
        }
101
1.29k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2.14k
                                          PaddedPODArray<UInt8>& c) {
91
2.14k
        size_t size = a.size();
92
2.14k
        const A* __restrict a_pos = a.data();
93
2.14k
        UInt8* __restrict c_pos = c.data();
94
2.14k
        const A* __restrict a_end = a_pos + size;
95
96
5.79k
        while (a_pos < a_end) {
97
3.65k
            *c_pos = Op::apply(*a_pos, b);
98
3.65k
            ++a_pos;
99
3.65k
            ++c_pos;
100
3.65k
        }
101
2.14k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.97k
                                          PaddedPODArray<UInt8>& c) {
91
1.97k
        size_t size = a.size();
92
1.97k
        const A* __restrict a_pos = a.data();
93
1.97k
        UInt8* __restrict c_pos = c.data();
94
1.97k
        const A* __restrict a_end = a_pos + size;
95
96
7.28k
        while (a_pos < a_end) {
97
5.31k
            *c_pos = Op::apply(*a_pos, b);
98
5.31k
            ++a_pos;
99
5.31k
            ++c_pos;
100
5.31k
        }
101
1.97k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
266
                                          PaddedPODArray<UInt8>& c) {
91
266
        size_t size = a.size();
92
266
        const A* __restrict a_pos = a.data();
93
266
        UInt8* __restrict c_pos = c.data();
94
266
        const A* __restrict a_end = a_pos + size;
95
96
1.18k
        while (a_pos < a_end) {
97
915
            *c_pos = Op::apply(*a_pos, b);
98
915
            ++a_pos;
99
915
            ++c_pos;
100
915
        }
101
266
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
5.48k
                                          PaddedPODArray<UInt8>& c) {
91
5.48k
        size_t size = a.size();
92
5.48k
        const A* __restrict a_pos = a.data();
93
5.48k
        UInt8* __restrict c_pos = c.data();
94
5.48k
        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.48k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
63.1k
                                          PaddedPODArray<UInt8>& c) {
91
63.1k
        size_t size = a.size();
92
63.1k
        const A* __restrict a_pos = a.data();
93
63.1k
        UInt8* __restrict c_pos = c.data();
94
63.1k
        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.1k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.93k
                                          PaddedPODArray<UInt8>& c) {
91
1.93k
        size_t size = a.size();
92
1.93k
        const A* __restrict a_pos = a.data();
93
1.93k
        UInt8* __restrict c_pos = c.data();
94
1.93k
        const A* __restrict a_end = a_pos + size;
95
96
99.1k
        while (a_pos < a_end) {
97
97.2k
            *c_pos = Op::apply(*a_pos, b);
98
97.2k
            ++a_pos;
99
97.2k
            ++c_pos;
100
97.2k
        }
101
1.93k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.07k
                                          PaddedPODArray<UInt8>& c) {
91
1.07k
        size_t size = a.size();
92
1.07k
        const A* __restrict a_pos = a.data();
93
1.07k
        UInt8* __restrict c_pos = c.data();
94
1.07k
        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.07k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
289
                                          PaddedPODArray<UInt8>& c) {
91
289
        size_t size = a.size();
92
289
        const A* __restrict a_pos = a.data();
93
289
        UInt8* __restrict c_pos = c.data();
94
289
        const A* __restrict a_end = a_pos + size;
95
96
1.92k
        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
289
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
100
                                          PaddedPODArray<UInt8>& c) {
91
100
        size_t size = a.size();
92
100
        const A* __restrict a_pos = a.data();
93
100
        UInt8* __restrict c_pos = c.data();
94
100
        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
100
    }
_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
510
                                          PaddedPODArray<UInt8>& c) {
91
510
        size_t size = a.size();
92
510
        const A* __restrict a_pos = a.data();
93
510
        UInt8* __restrict c_pos = c.data();
94
510
        const A* __restrict a_end = a_pos + size;
95
96
7.47k
        while (a_pos < a_end) {
97
6.96k
            *c_pos = Op::apply(*a_pos, b);
98
6.96k
            ++a_pos;
99
6.96k
            ++c_pos;
100
6.96k
        }
101
510
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.09k
                                          PaddedPODArray<UInt8>& c) {
91
1.09k
        size_t size = a.size();
92
1.09k
        const A* __restrict a_pos = a.data();
93
1.09k
        UInt8* __restrict c_pos = c.data();
94
1.09k
        const A* __restrict a_end = a_pos + size;
95
96
284k
        while (a_pos < a_end) {
97
283k
            *c_pos = Op::apply(*a_pos, b);
98
283k
            ++a_pos;
99
283k
            ++c_pos;
100
283k
        }
101
1.09k
    }
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
9
                                          PaddedPODArray<UInt8>& c) {
91
9
        size_t size = a.size();
92
9
        const A* __restrict a_pos = a.data();
93
9
        UInt8* __restrict c_pos = c.data();
94
9
        const A* __restrict a_end = a_pos + size;
95
96
29.2k
        while (a_pos < a_end) {
97
29.2k
            *c_pos = Op::apply(*a_pos, b);
98
29.2k
            ++a_pos;
99
29.2k
            ++c_pos;
100
29.2k
        }
101
9
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
90
14
                                          PaddedPODArray<UInt8>& c) {
91
14
        size_t size = a.size();
92
14
        const A* __restrict a_pos = a.data();
93
14
        UInt8* __restrict c_pos = c.data();
94
14
        const A* __restrict a_end = a_pos + size;
95
96
25.8k
        while (a_pos < a_end) {
97
25.8k
            *c_pos = Op::apply(*a_pos, b);
98
25.8k
            ++a_pos;
99
25.8k
            ++c_pos;
100
25.8k
        }
101
14
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
479
                                          PaddedPODArray<UInt8>& c) {
91
479
        size_t size = a.size();
92
479
        const A* __restrict a_pos = a.data();
93
479
        UInt8* __restrict c_pos = c.data();
94
479
        const A* __restrict a_end = a_pos + size;
95
96
1.43M
        while (a_pos < a_end) {
97
1.43M
            *c_pos = Op::apply(*a_pos, b);
98
1.43M
            ++a_pos;
99
1.43M
            ++c_pos;
100
1.43M
        }
101
479
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
125
                                          PaddedPODArray<UInt8>& c) {
91
125
        size_t size = a.size();
92
125
        const A* __restrict a_pos = a.data();
93
125
        UInt8* __restrict c_pos = c.data();
94
125
        const A* __restrict a_end = a_pos + size;
95
96
624k
        while (a_pos < a_end) {
97
624k
            *c_pos = Op::apply(*a_pos, b);
98
624k
            ++a_pos;
99
624k
            ++c_pos;
100
624k
        }
101
125
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
115
                                          PaddedPODArray<UInt8>& c) {
91
115
        size_t size = a.size();
92
115
        const A* __restrict a_pos = a.data();
93
115
        UInt8* __restrict c_pos = c.data();
94
115
        const A* __restrict a_end = a_pos + size;
95
96
421
        while (a_pos < a_end) {
97
306
            *c_pos = Op::apply(*a_pos, b);
98
306
            ++a_pos;
99
306
            ++c_pos;
100
306
        }
101
115
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_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
174
        while (a_pos < a_end) {
97
119
            *c_pos = Op::apply(*a_pos, b);
98
119
            ++a_pos;
99
119
            ++c_pos;
100
119
        }
101
55
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
46
                                          PaddedPODArray<UInt8>& c) {
91
46
        size_t size = a.size();
92
46
        const A* __restrict a_pos = a.data();
93
46
        UInt8* __restrict c_pos = c.data();
94
46
        const A* __restrict a_end = a_pos + size;
95
96
110
        while (a_pos < a_end) {
97
64
            *c_pos = Op::apply(*a_pos, b);
98
64
            ++a_pos;
99
64
            ++c_pos;
100
64
        }
101
46
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
38
                                          PaddedPODArray<UInt8>& c) {
91
38
        size_t size = a.size();
92
38
        const A* __restrict a_pos = a.data();
93
38
        UInt8* __restrict c_pos = c.data();
94
38
        const A* __restrict a_end = a_pos + size;
95
96
88
        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
38
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_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
3
        while (a_pos < a_end) {
97
2
            *c_pos = Op::apply(*a_pos, b);
98
2
            ++a_pos;
99
2
            ++c_pos;
100
2
        }
101
1
    }
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_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
27.6k
        while (a_pos < a_end) {
97
27.5k
            *c_pos = Op::apply(*a_pos, b);
98
27.5k
            ++a_pos;
99
27.5k
            ++c_pos;
100
27.5k
        }
101
64
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
101
                                          PaddedPODArray<UInt8>& c) {
91
101
        size_t size = a.size();
92
101
        const A* __restrict a_pos = a.data();
93
101
        UInt8* __restrict c_pos = c.data();
94
101
        const A* __restrict a_end = a_pos + size;
95
96
106k
        while (a_pos < a_end) {
97
106k
            *c_pos = Op::apply(*a_pos, b);
98
106k
            ++a_pos;
99
106k
            ++c_pos;
100
106k
        }
101
101
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
99
                                          PaddedPODArray<UInt8>& c) {
91
99
        size_t size = a.size();
92
99
        const A* __restrict a_pos = a.data();
93
99
        UInt8* __restrict c_pos = c.data();
94
99
        const A* __restrict a_end = a_pos + size;
95
96
22.3k
        while (a_pos < a_end) {
97
22.2k
            *c_pos = Op::apply(*a_pos, b);
98
22.2k
            ++a_pos;
99
22.2k
            ++c_pos;
100
22.2k
        }
101
99
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
134
                                          PaddedPODArray<UInt8>& c) {
91
134
        size_t size = a.size();
92
134
        const A* __restrict a_pos = a.data();
93
134
        UInt8* __restrict c_pos = c.data();
94
134
        const A* __restrict a_end = a_pos + size;
95
96
10.0k
        while (a_pos < a_end) {
97
9.86k
            *c_pos = Op::apply(*a_pos, b);
98
9.86k
            ++a_pos;
99
9.86k
            ++c_pos;
100
9.86k
        }
101
134
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.69k
                                          PaddedPODArray<UInt8>& c) {
91
1.69k
        size_t size = a.size();
92
1.69k
        const A* __restrict a_pos = a.data();
93
1.69k
        UInt8* __restrict c_pos = c.data();
94
1.69k
        const A* __restrict a_end = a_pos + size;
95
96
3.59M
        while (a_pos < a_end) {
97
3.59M
            *c_pos = Op::apply(*a_pos, b);
98
3.59M
            ++a_pos;
99
3.59M
            ++c_pos;
100
3.59M
        }
101
1.69k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
6.83k
                                          PaddedPODArray<UInt8>& c) {
91
6.83k
        size_t size = a.size();
92
6.83k
        const A* __restrict a_pos = a.data();
93
6.83k
        UInt8* __restrict c_pos = c.data();
94
6.83k
        const A* __restrict a_end = a_pos + size;
95
96
7.50M
        while (a_pos < a_end) {
97
7.50M
            *c_pos = Op::apply(*a_pos, b);
98
7.50M
            ++a_pos;
99
7.50M
            ++c_pos;
100
7.50M
        }
101
6.83k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
798
                                          PaddedPODArray<UInt8>& c) {
91
798
        size_t size = a.size();
92
798
        const A* __restrict a_pos = a.data();
93
798
        UInt8* __restrict c_pos = c.data();
94
798
        const A* __restrict a_end = a_pos + size;
95
96
4.04k
        while (a_pos < a_end) {
97
3.24k
            *c_pos = Op::apply(*a_pos, b);
98
3.24k
            ++a_pos;
99
3.24k
            ++c_pos;
100
3.24k
        }
101
798
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
563
                                          PaddedPODArray<UInt8>& c) {
91
563
        size_t size = a.size();
92
563
        const A* __restrict a_pos = a.data();
93
563
        UInt8* __restrict c_pos = c.data();
94
563
        const A* __restrict a_end = a_pos + size;
95
96
45.7k
        while (a_pos < a_end) {
97
45.2k
            *c_pos = Op::apply(*a_pos, b);
98
45.2k
            ++a_pos;
99
45.2k
            ++c_pos;
100
45.2k
        }
101
563
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
12
                                          PaddedPODArray<UInt8>& c) {
91
12
        size_t size = a.size();
92
12
        const A* __restrict a_pos = a.data();
93
12
        UInt8* __restrict c_pos = c.data();
94
12
        const A* __restrict a_end = a_pos + size;
95
96
35.0k
        while (a_pos < a_end) {
97
35.0k
            *c_pos = Op::apply(*a_pos, b);
98
35.0k
            ++a_pos;
99
35.0k
            ++c_pos;
100
35.0k
        }
101
12
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
6
                                          PaddedPODArray<UInt8>& c) {
91
6
        size_t size = a.size();
92
6
        const A* __restrict a_pos = a.data();
93
6
        UInt8* __restrict c_pos = c.data();
94
6
        const A* __restrict a_end = a_pos + size;
95
96
30.1k
        while (a_pos < a_end) {
97
30.1k
            *c_pos = Op::apply(*a_pos, b);
98
30.1k
            ++a_pos;
99
30.1k
            ++c_pos;
100
30.1k
        }
101
6
    }
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
94
                                          PaddedPODArray<UInt8>& c) {
91
94
        size_t size = a.size();
92
94
        const A* __restrict a_pos = a.data();
93
94
        UInt8* __restrict c_pos = c.data();
94
94
        const A* __restrict a_end = a_pos + size;
95
96
275k
        while (a_pos < a_end) {
97
275k
            *c_pos = Op::apply(*a_pos, b);
98
275k
            ++a_pos;
99
275k
            ++c_pos;
100
275k
        }
101
94
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
93
                                          PaddedPODArray<UInt8>& c) {
91
93
        size_t size = a.size();
92
93
        const A* __restrict a_pos = a.data();
93
93
        UInt8* __restrict c_pos = c.data();
94
93
        const A* __restrict a_end = a_pos + size;
95
96
275k
        while (a_pos < a_end) {
97
275k
            *c_pos = Op::apply(*a_pos, b);
98
275k
            ++a_pos;
99
275k
            ++c_pos;
100
275k
        }
101
93
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
102
103
65.9k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
65.9k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
65.9k
    }
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
336
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
336
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
336
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
48
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
70
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
70
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
70
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
402
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
402
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
402
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
16
    }
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
772
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
772
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
772
    }
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
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
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
252
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
252
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
252
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
62.1k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
62.1k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
62.1k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
527
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
527
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
527
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_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: _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
288
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
288
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
288
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
121
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
121
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
121
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
75
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
75
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
75
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
88
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
88
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
88
    }
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
324
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
324
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
324
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
48
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE44EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
106
};
107
108
/// Generic version, implemented for columns of same type.
109
template <typename Op>
110
struct GenericComparisonImpl {
111
22
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
73
        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
22
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
111
14
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
44
        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
14
    }
_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
137
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
137
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
316k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
316k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
316k
        }
122
137
    }
_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
42
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
42
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
124k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
124k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
124k
        }
122
42
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
117
52
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
52
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
191k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
191k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
191k
        }
122
52
    }
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
423
                                                      PaddedPODArray<UInt8>& c) {
136
423
        size_t size = a_offsets.size();
137
423
        ColumnString::Offset prev_a_offset = 0;
138
423
        ColumnString::Offset prev_b_offset = 0;
139
423
        const auto* a_pos = a_data.data();
140
423
        const auto* b_pos = b_data.data();
141
142
1.57k
        for (size_t i = 0; i < size; ++i) {
143
1.15k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
144
1.15k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
145
1.15k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
146
1.15k
                             0);
147
148
1.15k
            prev_a_offset = a_offsets[i];
149
1.15k
            prev_b_offset = b_offsets[i];
150
1.15k
        }
151
423
    }
_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
390
                                                      PaddedPODArray<UInt8>& c) {
136
390
        size_t size = a_offsets.size();
137
390
        ColumnString::Offset prev_a_offset = 0;
138
390
        ColumnString::Offset prev_b_offset = 0;
139
390
        const auto* a_pos = a_data.data();
140
390
        const auto* b_pos = b_data.data();
141
142
1.31k
        for (size_t i = 0; i < size; ++i) {
143
922
            c[i] = Op::apply(memcmp_small_allow_overflow15(
144
922
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
145
922
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
146
922
                             0);
147
148
922
            prev_a_offset = a_offsets[i];
149
922
            prev_b_offset = b_offsets[i];
150
922
        }
151
390
    }
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
921
                                                 PaddedPODArray<UInt8>& c) {
158
921
        size_t size = a_offsets.size();
159
921
        ColumnString::Offset prev_a_offset = 0;
160
921
        const auto* a_pos = a_data.data();
161
921
        const auto* b_pos = b_data.data();
162
163
1.28M
        for (size_t i = 0; i < size; ++i) {
164
1.28M
            c[i] = Op::apply(
165
1.28M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
1.28M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
1.28M
                    0);
168
169
1.28M
            prev_a_offset = a_offsets[i];
170
1.28M
        }
171
921
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
224
                                                 PaddedPODArray<UInt8>& c) {
158
224
        size_t size = a_offsets.size();
159
224
        ColumnString::Offset prev_a_offset = 0;
160
224
        const auto* a_pos = a_data.data();
161
224
        const auto* b_pos = b_data.data();
162
163
358k
        for (size_t i = 0; i < size; ++i) {
164
358k
            c[i] = Op::apply(
165
358k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
358k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
358k
                    0);
168
169
358k
            prev_a_offset = a_offsets[i];
170
358k
        }
171
224
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
127
                                                 PaddedPODArray<UInt8>& c) {
158
127
        size_t size = a_offsets.size();
159
127
        ColumnString::Offset prev_a_offset = 0;
160
127
        const auto* a_pos = a_data.data();
161
127
        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
127
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
241
                                                 PaddedPODArray<UInt8>& c) {
158
241
        size_t size = a_offsets.size();
159
241
        ColumnString::Offset prev_a_offset = 0;
160
241
        const auto* a_pos = a_data.data();
161
241
        const auto* b_pos = b_data.data();
162
163
408k
        for (size_t i = 0; i < size; ++i) {
164
408k
            c[i] = Op::apply(
165
408k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
408k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
408k
                    0);
168
169
408k
            prev_a_offset = a_offsets[i];
170
408k
        }
171
241
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
329
                                                 PaddedPODArray<UInt8>& c) {
158
329
        size_t size = a_offsets.size();
159
329
        ColumnString::Offset prev_a_offset = 0;
160
329
        const auto* a_pos = a_data.data();
161
329
        const auto* b_pos = b_data.data();
162
163
409k
        for (size_t i = 0; i < size; ++i) {
164
409k
            c[i] = Op::apply(
165
409k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
409k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
409k
                    0);
168
169
409k
            prev_a_offset = a_offsets[i];
170
409k
        }
171
329
    }
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
52
                                       PaddedPODArray<UInt8>& c) {
178
52
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
52
                                                                               a_data, a_size, c);
180
52
    }
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
48
                                       PaddedPODArray<UInt8>& c) {
178
48
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
48
                                                                               a_data, a_size, c);
180
48
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
177
4
                                       PaddedPODArray<UInt8>& c) {
178
4
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
4
                                                                               a_data, a_size, c);
180
4
    }
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
446
                                                      PaddedPODArray<UInt8>& c) {
190
446
        size_t size = a_offsets.size();
191
446
        ColumnString::Offset prev_a_offset = 0;
192
446
        ColumnString::Offset prev_b_offset = 0;
193
446
        const auto* a_pos = a_data.data();
194
446
        const auto* b_pos = b_data.data();
195
196
13.0k
        for (size_t i = 0; i < size; ++i) {
197
12.5k
            auto a_size = a_offsets[i] - prev_a_offset;
198
12.5k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
12.5k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
12.5k
                                                               b_pos + prev_b_offset, b_size);
202
203
12.5k
            prev_a_offset = a_offsets[i];
204
12.5k
            prev_b_offset = b_offsets[i];
205
12.5k
        }
206
446
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
189
431
                                                      PaddedPODArray<UInt8>& c) {
190
431
        size_t size = a_offsets.size();
191
431
        ColumnString::Offset prev_a_offset = 0;
192
431
        ColumnString::Offset prev_b_offset = 0;
193
431
        const auto* a_pos = a_data.data();
194
431
        const auto* b_pos = b_data.data();
195
196
7.98k
        for (size_t i = 0; i < size; ++i) {
197
7.55k
            auto a_size = a_offsets[i] - prev_a_offset;
198
7.55k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
7.55k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
7.55k
                                                               b_pos + prev_b_offset, b_size);
202
203
7.55k
            prev_a_offset = a_offsets[i];
204
7.55k
            prev_b_offset = b_offsets[i];
205
7.55k
        }
206
431
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
189
15
                                                      PaddedPODArray<UInt8>& c) {
190
15
        size_t size = a_offsets.size();
191
15
        ColumnString::Offset prev_a_offset = 0;
192
15
        ColumnString::Offset prev_b_offset = 0;
193
15
        const auto* a_pos = a_data.data();
194
15
        const auto* b_pos = b_data.data();
195
196
5.04k
        for (size_t i = 0; i < size; ++i) {
197
5.02k
            auto a_size = a_offsets[i] - prev_a_offset;
198
5.02k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
5.02k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
5.02k
                                                               b_pos + prev_b_offset, b_size);
202
203
5.02k
            prev_a_offset = a_offsets[i];
204
5.02k
            prev_b_offset = b_offsets[i];
205
5.02k
        }
206
15
    }
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.3k
                                                 PaddedPODArray<UInt8>& c) {
213
20.3k
        size_t size = a_offsets.size();
214
20.3k
        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.3k
        } else {
224
20.3k
            ColumnString::Offset prev_a_offset = 0;
225
20.3k
            const auto* a_pos = a_data.data();
226
20.3k
            const auto* b_pos = b_data.data();
227
9.52M
            for (size_t i = 0; i < size; ++i) {
228
9.50M
                auto a_size = a_offsets[i] - prev_a_offset;
229
9.50M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
9.50M
                                                                   b_pos, b_size);
231
9.50M
                prev_a_offset = a_offsets[i];
232
9.50M
            }
233
20.3k
        }
234
20.3k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
212
20.2k
                                                 PaddedPODArray<UInt8>& c) {
213
20.2k
        size_t size = a_offsets.size();
214
20.2k
        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
20.2k
        } else {
224
20.2k
            ColumnString::Offset prev_a_offset = 0;
225
20.2k
            const auto* a_pos = a_data.data();
226
20.2k
            const auto* b_pos = b_data.data();
227
9.46M
            for (size_t i = 0; i < size; ++i) {
228
9.44M
                auto a_size = a_offsets[i] - prev_a_offset;
229
9.44M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
9.44M
                                                                   b_pos, b_size);
231
9.44M
                prev_a_offset = a_offsets[i];
232
9.44M
            }
233
20.2k
        }
234
20.2k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
212
136
                                                 PaddedPODArray<UInt8>& c) {
213
136
        size_t size = a_offsets.size();
214
136
        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
135
        } else {
224
135
            ColumnString::Offset prev_a_offset = 0;
225
135
            const auto* a_pos = a_data.data();
226
135
            const auto* b_pos = b_data.data();
227
60.8k
            for (size_t i = 0; i < size; ++i) {
228
60.7k
                auto a_size = a_offsets[i] - prev_a_offset;
229
60.7k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
60.7k
                                                                   b_pos, b_size);
231
60.7k
                prev_a_offset = a_offsets[i];
232
60.7k
            }
233
135
        }
234
136
    }
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
11
                                                 PaddedPODArray<UInt8>& c) {
241
11
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
242
11
    }
_ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Line
Count
Source
240
11
                                                 PaddedPODArray<UInt8>& c) {
241
11
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
242
11
    }
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.64k
                                    const Field& rmax, Op op) {
306
3.64k
    switch (op) {
307
1.99k
    case Op::EQ:
308
        // Disjoint ranges cannot share a value.
309
1.99k
        return lmin > rmax || rmin > lmax;
310
183
    case Op::NE:
311
        // Only provable when both sides collapse to the same single value.
312
183
        return lmin == lmax && rmin == rmax && lmin == rmin;
313
433
    case Op::LT:
314
433
        return lmin >= rmax;
315
276
    case Op::LE:
316
276
        return lmin > rmax;
317
431
    case Op::GT:
318
431
        return rmin >= lmax;
319
329
    case Op::GE:
320
329
        return rmin > lmax;
321
3.64k
    }
322
0
    __builtin_unreachable();
323
3.64k
}
324
325
inline ZoneMapFilterResult evaluate_slot_literal(const ZoneMapEvalContext& ctx,
326
                                                 const expr_zonemap::SlotLiteral& slot_literal,
327
3.48k
                                                 Op op) {
328
3.48k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal.slot_index,
329
3.48k
                                                              slot_literal.slot_type);
330
3.48k
    if (slot_type == nullptr) {
331
293
        return unsupported_zonemap_filter(ctx);
332
293
    }
333
3.19k
    auto zone_map_ptr = ctx.zone_map(slot_literal.slot_index);
334
3.19k
    if (zone_map_ptr == nullptr) {
335
46
        return unsupported_zonemap_filter(ctx);
336
46
    }
337
3.15k
    const auto& zone_map = *zone_map_ptr;
338
3.15k
    if (!zone_map.has_not_null) {
339
54
        return ZoneMapFilterResult::kNoMatch;
340
54
    }
341
3.09k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
342
117
        return unsupported_zonemap_filter(ctx);
343
117
    }
344
345
2.97k
    const auto effective_op = slot_literal.literal_on_left ? symmetric_op(op) : op;
346
2.97k
    const auto& literal = slot_literal.literal;
347
2.97k
    const bool literal_is_nan = literal.is_nan();
348
2.97k
    const bool hidden_nan_can_match = (effective_op == Op::EQ && literal_is_nan) ||
349
2.97k
                                      (effective_op == Op::NE && !literal_is_nan) ||
350
2.97k
                                      (effective_op == Op::GT && !literal_is_nan) ||
351
2.97k
                                      effective_op == Op::GE;
352
2.97k
    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.92k
    return range_vs_range_no_match(zone_map.min_value, zone_map.max_value, literal, literal,
357
2.92k
                                   effective_op)
358
2.92k
                   ? ZoneMapFilterResult::kNoMatch
359
2.92k
                   : ZoneMapFilterResult::kMayMatch;
360
2.97k
}
361
362
inline ZoneMapFilterResult evaluate_slot_slot(const ZoneMapEvalContext& ctx,
363
789
                                              const expr_zonemap::SlotSlot& slot_slot, Op op) {
364
789
    const auto left_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_slot.left_slot_index,
365
789
                                                                    slot_slot.left_type);
366
789
    const auto right_type = expr_zonemap::fetch_compatible_slot_type(
367
789
            ctx, slot_slot.right_slot_index, slot_slot.right_type);
368
791
    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
788
    const auto left_zone_map = ctx.zone_map(slot_slot.left_slot_index);
373
788
    const auto right_zone_map = ctx.zone_map(slot_slot.right_slot_index);
374
788
    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
779
    if (!left_zone_map->has_not_null || !right_zone_map->has_not_null) {
382
30
        return ZoneMapFilterResult::kNoMatch;
383
30
    }
384
749
    if (!expr_zonemap::range_stats_usable_for_zonemap(*left_zone_map, left_type) ||
385
749
        !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
740
    if (is_string_type(remove_nullable(left_type)->get_primitive_type())) {
399
350
        auto is_untruncated = [](const Field& f) {
400
350
            return f.get<TYPE_STRING>().size() < MAX_ZONE_MAP_INDEX_SIZE;
401
350
        };
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
737
    if (ctx.floating_nan_count_unknown(slot_slot.left_slot_index) ||
414
737
        ctx.floating_nan_count_unknown(slot_slot.right_slot_index)) {
415
12
        return unsupported_zonemap_filter(ctx);
416
12
    }
417
725
    return range_vs_range_no_match(left_zone_map->min_value, left_zone_map->max_value,
418
725
                                   right_zone_map->min_value, right_zone_map->max_value, op)
419
725
                   ? ZoneMapFilterResult::kNoMatch
420
725
                   : ZoneMapFilterResult::kMayMatch;
421
737
}
422
423
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
424
4.26k
                                    Op op) {
425
4.26k
    if (auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
426
4.26k
        slot_literal.has_value()) {
427
3.49k
        return evaluate_slot_literal(ctx, *slot_literal, op);
428
3.49k
    }
429
762
    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
762
    DORIS_CHECK(slot_slot.has_value());
433
762
    return evaluate_slot_slot(ctx, *slot_slot, op);
434
4.26k
}
435
436
34.1k
inline bool can_evaluate(const VExprSPtrs& arguments) {
437
34.1k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
438
34.1k
    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
15.0k
    if (slot_literal->literal.is_null()) {
446
4
        return false;
447
4
    }
448
449
15.0k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
450
15.0k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
451
15.0k
    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
15.0k
    return true;
459
15.0k
}
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
16.8k
        return false;
469
16.8k
    }
470
1.95k
    DORIS_CHECK(slot_slot->left_type != nullptr);
471
1.95k
    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
4.10k
    const auto excluded = [](const DataTypePtr& type) {
480
4.10k
        const auto primitive_type = remove_nullable(type)->get_primitive_type();
481
4.14k
        return is_varbinary(primitive_type) || primitive_type == TYPE_VARIANT ||
482
4.13k
               primitive_type == TYPE_JSONB || is_complex_type(primitive_type) ||
483
4.10k
               is_var_len_object(primitive_type);
484
4.10k
    };
485
2.05k
    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
1.94k
    return expr_zonemap::data_types_compatible(slot_slot->left_type, slot_slot->right_type);
493
1.95k
}
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.9k
inline std::optional<Op> op_from_name(std::string_view name) {
557
38.9k
    if (name == NameEquals::name) {
558
18.8k
        return Op::EQ;
559
18.8k
    }
560
20.1k
    if (name == NameNotEquals::name) {
561
1.70k
        return Op::NE;
562
1.70k
    }
563
18.3k
    if (name == NameLess::name) {
564
4.56k
        return Op::LT;
565
4.56k
    }
566
13.8k
    if (name == NameLessOrEquals::name) {
567
2.46k
        return Op::LE;
568
2.46k
    }
569
11.3k
    if (name == NameGreater::name) {
570
6.16k
        return Op::GT;
571
6.16k
    }
572
5.36k
    if (name == NameGreaterOrEquals::name) {
573
5.36k
        return Op::GE;
574
5.36k
    }
575
18.4E
    return std::nullopt;
576
5.20k
}
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
304k
    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.24k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
583
7.08k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
583
9.35k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
583
4.04k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
583
10.7k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
584
585
304k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
585
272k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
585
1.25k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
585
7.09k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
585
9.35k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
585
4.05k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
585
10.7k
    FunctionComparison() = default;
586
587
690k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
587
681k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
587
598
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
587
2.19k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
587
3.44k
    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.89k
    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
124k
                            const ColumnPtr& col_right_ptr) const {
593
124k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
124k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
124k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
124k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
124k
        DCHECK(!(left_is_const && right_is_const));
600
601
124k
        if (!left_is_const && !right_is_const) {
602
11.6k
            auto col_res = ColumnUInt8::create();
603
604
11.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
11.6k
            vec_res.resize(col_left->get_data().size());
606
11.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
11.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
11.6k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
11.6k
                                                     vec_res);
610
611
11.6k
            block.replace_by_position(result, std::move(col_res));
612
112k
        } 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
65.9k
        } else if (left_is_const && !right_is_const) {
624
65.9k
            auto col_res = ColumnUInt8::create();
625
626
65.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
65.9k
            vec_res.resize(col_right->size());
628
65.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
65.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
630
65.9k
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
65.9k
                                                       col_right->get_data(), vec_res);
632
633
65.9k
            block.replace_by_position(result, std::move(col_res));
634
65.9k
        }
635
124k
        return Status::OK();
636
124k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
94
                            const ColumnPtr& col_right_ptr) const {
593
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
94
        DCHECK(!(left_is_const && right_is_const));
600
601
94
        if (!left_is_const && !right_is_const) {
602
64
            auto col_res = ColumnUInt8::create();
603
604
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
64
            vec_res.resize(col_left->get_data().size());
606
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
64
                              typename PrimitiveTypeTraits<PT>::CppType,
608
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
64
                                                     vec_res);
610
611
64
            block.replace_by_position(result, std::move(col_res));
612
64
        } 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
94
        return Status::OK();
636
94
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
848
                            const ColumnPtr& col_right_ptr) const {
593
848
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
848
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
848
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
848
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
848
        DCHECK(!(left_is_const && right_is_const));
600
601
848
        if (!left_is_const && !right_is_const) {
602
196
            auto col_res = ColumnUInt8::create();
603
604
196
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
196
            vec_res.resize(col_left->get_data().size());
606
196
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
196
                              typename PrimitiveTypeTraits<PT>::CppType,
608
196
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
196
                                                     vec_res);
610
611
196
            block.replace_by_position(result, std::move(col_res));
612
652
        } else if (!left_is_const && right_is_const) {
613
651
            auto col_res = ColumnUInt8::create();
614
615
651
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
651
            vec_res.resize(col_left->size());
617
651
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
651
                              typename PrimitiveTypeTraits<PT>::CppType,
619
651
                              Op<PT>>::vector_constant(col_left->get_data(),
620
651
                                                       col_right->get_element(0), vec_res);
621
622
651
            block.replace_by_position(result, std::move(col_res));
623
651
        } 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
848
        return Status::OK();
636
848
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
407
                            const ColumnPtr& col_right_ptr) const {
593
407
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
407
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
407
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
407
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
407
        DCHECK(!(left_is_const && right_is_const));
600
601
407
        if (!left_is_const && !right_is_const) {
602
205
            auto col_res = ColumnUInt8::create();
603
604
205
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
205
            vec_res.resize(col_left->get_data().size());
606
205
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
205
                              typename PrimitiveTypeTraits<PT>::CppType,
608
205
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
205
                                                     vec_res);
610
611
205
            block.replace_by_position(result, std::move(col_res));
612
205
        } 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
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
407
        return Status::OK();
636
407
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
197
                            const ColumnPtr& col_right_ptr) const {
593
197
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
197
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
197
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
197
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
197
        DCHECK(!(left_is_const && right_is_const));
600
601
197
        if (!left_is_const && !right_is_const) {
602
111
            auto col_res = ColumnUInt8::create();
603
604
111
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
111
            vec_res.resize(col_left->get_data().size());
606
111
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
111
                              typename PrimitiveTypeTraits<PT>::CppType,
608
111
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
111
                                                     vec_res);
610
611
111
            block.replace_by_position(result, std::move(col_res));
612
111
        } 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
197
        return Status::OK();
636
197
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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
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
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
12
        return Status::OK();
636
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
6.10k
                            const ColumnPtr& col_right_ptr) const {
593
6.10k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
6.10k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
6.10k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
6.10k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
6.10k
        DCHECK(!(left_is_const && right_is_const));
600
601
6.10k
        if (!left_is_const && !right_is_const) {
602
121
            auto col_res = ColumnUInt8::create();
603
604
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
121
            vec_res.resize(col_left->get_data().size());
606
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
121
                              typename PrimitiveTypeTraits<PT>::CppType,
608
121
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
121
                                                     vec_res);
610
611
121
            block.replace_by_position(result, std::move(col_res));
612
5.98k
        } else if (!left_is_const && right_is_const) {
613
5.65k
            auto col_res = ColumnUInt8::create();
614
615
5.65k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
5.65k
            vec_res.resize(col_left->size());
617
5.65k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
5.65k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
5.65k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
5.65k
                                                       col_right->get_element(0), vec_res);
621
622
5.65k
            block.replace_by_position(result, std::move(col_res));
623
5.65k
        } else if (left_is_const && !right_is_const) {
624
336
            auto col_res = ColumnUInt8::create();
625
626
336
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
336
            vec_res.resize(col_right->size());
628
336
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
336
                              typename PrimitiveTypeTraits<PT>::CppType,
630
336
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
336
                                                       col_right->get_data(), vec_res);
632
633
336
            block.replace_by_position(result, std::move(col_res));
634
336
        }
635
6.10k
        return Status::OK();
636
6.10k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
406
                            const ColumnPtr& col_right_ptr) const {
593
406
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
406
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
406
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
406
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
406
        DCHECK(!(left_is_const && right_is_const));
600
601
406
        if (!left_is_const && !right_is_const) {
602
89
            auto col_res = ColumnUInt8::create();
603
604
89
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
89
            vec_res.resize(col_left->get_data().size());
606
89
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
89
                              typename PrimitiveTypeTraits<PT>::CppType,
608
89
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
89
                                                     vec_res);
610
611
89
            block.replace_by_position(result, std::move(col_res));
612
317
        } 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
48
            auto col_res = ColumnUInt8::create();
625
626
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
48
            vec_res.resize(col_right->size());
628
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
48
                              typename PrimitiveTypeTraits<PT>::CppType,
630
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
48
                                                       col_right->get_data(), vec_res);
632
633
48
            block.replace_by_position(result, std::move(col_res));
634
48
        }
635
406
        return Status::OK();
636
406
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
3.18k
                            const ColumnPtr& col_right_ptr) const {
593
3.18k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
3.18k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
3.18k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
3.18k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
3.18k
        DCHECK(!(left_is_const && right_is_const));
600
601
3.18k
        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
2.16k
        } else if (!left_is_const && right_is_const) {
613
2.09k
            auto col_res = ColumnUInt8::create();
614
615
2.09k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
2.09k
            vec_res.resize(col_left->size());
617
2.09k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
2.09k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
2.09k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
2.09k
                                                       col_right->get_element(0), vec_res);
621
622
2.09k
            block.replace_by_position(result, std::move(col_res));
623
2.09k
        } else if (left_is_const && !right_is_const) {
624
70
            auto col_res = ColumnUInt8::create();
625
626
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
70
            vec_res.resize(col_right->size());
628
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
70
                              typename PrimitiveTypeTraits<PT>::CppType,
630
70
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
70
                                                       col_right->get_data(), vec_res);
632
633
70
            block.replace_by_position(result, std::move(col_res));
634
70
        }
635
3.18k
        return Status::OK();
636
3.18k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
6.57k
                            const ColumnPtr& col_right_ptr) const {
593
6.57k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
6.57k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
6.57k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
6.57k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
6.57k
        DCHECK(!(left_is_const && right_is_const));
600
601
6.57k
        if (!left_is_const && !right_is_const) {
602
186
            auto col_res = ColumnUInt8::create();
603
604
186
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
186
            vec_res.resize(col_left->get_data().size());
606
186
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
186
                              typename PrimitiveTypeTraits<PT>::CppType,
608
186
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
186
                                                     vec_res);
610
611
186
            block.replace_by_position(result, std::move(col_res));
612
6.38k
        } else if (!left_is_const && right_is_const) {
613
5.98k
            auto col_res = ColumnUInt8::create();
614
615
5.98k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
5.98k
            vec_res.resize(col_left->size());
617
5.98k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
5.98k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
5.98k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
5.98k
                                                       col_right->get_element(0), vec_res);
621
622
5.98k
            block.replace_by_position(result, std::move(col_res));
623
5.98k
        } else if (left_is_const && !right_is_const) {
624
402
            auto col_res = ColumnUInt8::create();
625
626
402
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
402
            vec_res.resize(col_right->size());
628
402
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
402
                              typename PrimitiveTypeTraits<PT>::CppType,
630
402
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
402
                                                       col_right->get_data(), vec_res);
632
633
402
            block.replace_by_position(result, std::move(col_res));
634
402
        }
635
6.57k
        return Status::OK();
636
6.57k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
99
                            const ColumnPtr& col_right_ptr) const {
593
99
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
99
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
99
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
99
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
99
        DCHECK(!(left_is_const && right_is_const));
600
601
99
        if (!left_is_const && !right_is_const) {
602
54
            auto col_res = ColumnUInt8::create();
603
604
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
54
            vec_res.resize(col_left->get_data().size());
606
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
54
                              typename PrimitiveTypeTraits<PT>::CppType,
608
54
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
54
                                                     vec_res);
610
611
54
            block.replace_by_position(result, std::move(col_res));
612
54
        } 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
16
            auto col_res = ColumnUInt8::create();
625
626
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
16
            vec_res.resize(col_right->size());
628
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
16
                              typename PrimitiveTypeTraits<PT>::CppType,
630
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
16
                                                       col_right->get_data(), vec_res);
632
633
16
            block.replace_by_position(result, std::move(col_res));
634
16
        }
635
99
        return Status::OK();
636
99
    }
_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.80k
                            const ColumnPtr& col_right_ptr) const {
593
2.80k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.80k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.80k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.80k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.80k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.80k
        if (!left_is_const && !right_is_const) {
602
785
            auto col_res = ColumnUInt8::create();
603
604
785
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
785
            vec_res.resize(col_left->get_data().size());
606
785
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
785
                              typename PrimitiveTypeTraits<PT>::CppType,
608
785
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
785
                                                     vec_res);
610
611
785
            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.80k
        return Status::OK();
636
2.80k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
73
                            const ColumnPtr& col_right_ptr) const {
593
73
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
73
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
73
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
73
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
73
        DCHECK(!(left_is_const && right_is_const));
600
601
73
        if (!left_is_const && !right_is_const) {
602
73
            auto col_res = ColumnUInt8::create();
603
604
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
73
            vec_res.resize(col_left->get_data().size());
606
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
73
                              typename PrimitiveTypeTraits<PT>::CppType,
608
73
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
73
                                                     vec_res);
610
611
73
            block.replace_by_position(result, std::move(col_res));
612
73
        } 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
73
        return Status::OK();
636
73
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
906
                            const ColumnPtr& col_right_ptr) const {
593
906
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
906
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
906
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
906
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
906
        DCHECK(!(left_is_const && right_is_const));
600
601
906
        if (!left_is_const && !right_is_const) {
602
94
            auto col_res = ColumnUInt8::create();
603
604
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
94
            vec_res.resize(col_left->get_data().size());
606
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
94
                              typename PrimitiveTypeTraits<PT>::CppType,
608
94
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
94
                                                     vec_res);
610
611
94
            block.replace_by_position(result, std::move(col_res));
612
812
        } else if (!left_is_const && right_is_const) {
613
812
            auto col_res = ColumnUInt8::create();
614
615
812
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
812
            vec_res.resize(col_left->size());
617
812
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
812
                              typename PrimitiveTypeTraits<PT>::CppType,
619
812
                              Op<PT>>::vector_constant(col_left->get_data(),
620
812
                                                       col_right->get_element(0), vec_res);
621
622
812
            block.replace_by_position(result, std::move(col_res));
623
812
        } 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
906
        return Status::OK();
636
906
    }
_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
78
                            const ColumnPtr& col_right_ptr) const {
593
78
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
78
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
78
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
78
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
78
        DCHECK(!(left_is_const && right_is_const));
600
601
78
        if (!left_is_const && !right_is_const) {
602
50
            auto col_res = ColumnUInt8::create();
603
604
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
50
            vec_res.resize(col_left->get_data().size());
606
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
50
                              typename PrimitiveTypeTraits<PT>::CppType,
608
50
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
50
                                                     vec_res);
610
611
50
            block.replace_by_position(result, std::move(col_res));
612
50
        } 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
78
        return Status::OK();
636
78
    }
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.25k
                            const ColumnPtr& col_right_ptr) const {
593
1.25k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.25k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.25k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.25k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.25k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.25k
        if (!left_is_const && !right_is_const) {
602
1.05k
            auto col_res = ColumnUInt8::create();
603
604
1.05k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1.05k
            vec_res.resize(col_left->get_data().size());
606
1.05k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1.05k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1.05k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1.05k
                                                     vec_res);
610
611
1.05k
            block.replace_by_position(result, std::move(col_res));
612
1.05k
        } else if (!left_is_const && right_is_const) {
613
197
            auto col_res = ColumnUInt8::create();
614
615
197
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
197
            vec_res.resize(col_left->size());
617
197
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
197
                              typename PrimitiveTypeTraits<PT>::CppType,
619
197
                              Op<PT>>::vector_constant(col_left->get_data(),
620
197
                                                       col_right->get_element(0), vec_res);
621
622
197
            block.replace_by_position(result, std::move(col_res));
623
197
        } 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.25k
        return Status::OK();
636
1.25k
    }
_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
385
            auto col_res = ColumnUInt8::create();
603
604
385
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
385
            vec_res.resize(col_left->get_data().size());
606
385
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
385
                              typename PrimitiveTypeTraits<PT>::CppType,
608
385
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
385
                                                     vec_res);
610
611
385
            block.replace_by_position(result, std::move(col_res));
612
807
        } 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
773
        } else if (left_is_const && !right_is_const) {
624
771
            auto col_res = ColumnUInt8::create();
625
626
771
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
771
            vec_res.resize(col_right->size());
628
771
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
771
                              typename PrimitiveTypeTraits<PT>::CppType,
630
771
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
771
                                                       col_right->get_data(), vec_res);
632
633
771
            block.replace_by_position(result, std::move(col_res));
634
771
        }
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
23
            auto col_res = ColumnUInt8::create();
603
604
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
23
            vec_res.resize(col_left->get_data().size());
606
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
23
                              typename PrimitiveTypeTraits<PT>::CppType,
608
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
23
                                                     vec_res);
610
611
23
            block.replace_by_position(result, std::move(col_res));
612
40
        } 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.07k
                            const ColumnPtr& col_right_ptr) const {
593
1.07k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.07k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.07k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.07k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.07k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.07k
        if (!left_is_const && !right_is_const) {
602
1.03k
            auto col_res = ColumnUInt8::create();
603
604
1.03k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1.03k
            vec_res.resize(col_left->get_data().size());
606
1.03k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1.03k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1.03k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1.03k
                                                     vec_res);
610
611
1.03k
            block.replace_by_position(result, std::move(col_res));
612
1.03k
        } 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.07k
        return Status::OK();
636
1.07k
    }
_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
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_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.31k
                            const ColumnPtr& col_right_ptr) const {
593
1.31k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.31k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.31k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.31k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.31k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.31k
        if (!left_is_const && !right_is_const) {
602
69
            auto col_res = ColumnUInt8::create();
603
604
69
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
69
            vec_res.resize(col_left->get_data().size());
606
69
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
69
                              typename PrimitiveTypeTraits<PT>::CppType,
608
69
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
69
                                                     vec_res);
610
611
69
            block.replace_by_position(result, std::move(col_res));
612
1.24k
        } else if (!left_is_const && right_is_const) {
613
1.00k
            auto col_res = ColumnUInt8::create();
614
615
1.00k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.00k
            vec_res.resize(col_left->size());
617
1.00k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.00k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.00k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.00k
                                                       col_right->get_element(0), vec_res);
621
622
1.00k
            block.replace_by_position(result, std::move(col_res));
623
1.00k
        } 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
1.31k
        return Status::OK();
636
1.31k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.33k
                            const ColumnPtr& col_right_ptr) const {
593
2.33k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.33k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.33k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.33k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.33k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.33k
        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
2.22k
        } 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
252
            auto col_res = ColumnUInt8::create();
625
626
252
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
252
            vec_res.resize(col_right->size());
628
252
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
252
                              typename PrimitiveTypeTraits<PT>::CppType,
630
252
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
252
                                                       col_right->get_data(), vec_res);
632
633
252
            block.replace_by_position(result, std::move(col_res));
634
252
        }
635
2.33k
        return Status::OK();
636
2.33k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
67.6k
                            const ColumnPtr& col_right_ptr) const {
593
67.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
67.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
67.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
67.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
67.6k
        DCHECK(!(left_is_const && right_is_const));
600
601
67.6k
        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.5k
        } else if (!left_is_const && right_is_const) {
613
5.36k
            auto col_res = ColumnUInt8::create();
614
615
5.36k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
5.36k
            vec_res.resize(col_left->size());
617
5.36k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
5.36k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
5.36k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
5.36k
                                                       col_right->get_element(0), vec_res);
621
622
5.36k
            block.replace_by_position(result, std::move(col_res));
623
62.1k
        } else if (left_is_const && !right_is_const) {
624
62.1k
            auto col_res = ColumnUInt8::create();
625
626
62.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
62.1k
            vec_res.resize(col_right->size());
628
62.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
62.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
630
62.1k
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
62.1k
                                                       col_right->get_data(), vec_res);
632
633
62.1k
            block.replace_by_position(result, std::move(col_res));
634
62.1k
        }
635
67.6k
        return Status::OK();
636
67.6k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.57k
                            const ColumnPtr& col_right_ptr) const {
593
2.57k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.57k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.57k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.57k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.57k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.57k
        if (!left_is_const && !right_is_const) {
602
182
            auto col_res = ColumnUInt8::create();
603
604
182
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
182
            vec_res.resize(col_left->get_data().size());
606
182
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
182
                              typename PrimitiveTypeTraits<PT>::CppType,
608
182
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
182
                                                     vec_res);
610
611
182
            block.replace_by_position(result, std::move(col_res));
612
2.38k
        } else if (!left_is_const && right_is_const) {
613
1.86k
            auto col_res = ColumnUInt8::create();
614
615
1.86k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.86k
            vec_res.resize(col_left->size());
617
1.86k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.86k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.86k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.86k
                                                       col_right->get_element(0), vec_res);
621
622
1.86k
            block.replace_by_position(result, std::move(col_res));
623
1.86k
        } else if (left_is_const && !right_is_const) {
624
527
            auto col_res = ColumnUInt8::create();
625
626
527
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
527
            vec_res.resize(col_right->size());
628
527
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
527
                              typename PrimitiveTypeTraits<PT>::CppType,
630
527
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
527
                                                       col_right->get_data(), vec_res);
632
633
527
            block.replace_by_position(result, std::move(col_res));
634
527
        }
635
2.57k
        return Status::OK();
636
2.57k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
256
                            const ColumnPtr& col_right_ptr) const {
593
256
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
256
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
256
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
256
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
256
        DCHECK(!(left_is_const && right_is_const));
600
601
256
        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
254
        } else if (!left_is_const && right_is_const) {
613
201
            auto col_res = ColumnUInt8::create();
614
615
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
201
            vec_res.resize(col_left->size());
617
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
201
                              typename PrimitiveTypeTraits<PT>::CppType,
619
201
                              Op<PT>>::vector_constant(col_left->get_data(),
620
201
                                                       col_right->get_element(0), vec_res);
621
622
201
            block.replace_by_position(result, std::move(col_res));
623
201
        } 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
256
        return Status::OK();
636
256
    }
_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
324
                            const ColumnPtr& col_right_ptr) const {
593
324
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
324
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
324
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
324
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
324
        DCHECK(!(left_is_const && right_is_const));
600
601
324
        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
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
324
        return Status::OK();
636
324
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
543
                            const ColumnPtr& col_right_ptr) const {
593
543
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
543
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
543
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
543
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
543
        DCHECK(!(left_is_const && right_is_const));
600
601
543
        if (!left_is_const && !right_is_const) {
602
35
            auto col_res = ColumnUInt8::create();
603
604
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
35
            vec_res.resize(col_left->get_data().size());
606
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
35
                              typename PrimitiveTypeTraits<PT>::CppType,
608
35
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
35
                                                     vec_res);
610
611
35
            block.replace_by_position(result, std::move(col_res));
612
510
        } else if (!left_is_const && right_is_const) {
613
510
            auto col_res = ColumnUInt8::create();
614
615
510
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
510
            vec_res.resize(col_left->size());
617
510
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
510
                              typename PrimitiveTypeTraits<PT>::CppType,
619
510
                              Op<PT>>::vector_constant(col_left->get_data(),
620
510
                                                       col_right->get_element(0), vec_res);
621
622
510
            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
543
        return Status::OK();
636
543
    }
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
9
                            const ColumnPtr& col_right_ptr) const {
593
9
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
9
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
9
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
9
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
9
        DCHECK(!(left_is_const && right_is_const));
600
601
9
        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
9
        } else if (!left_is_const && right_is_const) {
613
9
            auto col_res = ColumnUInt8::create();
614
615
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
9
            vec_res.resize(col_left->size());
617
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
9
                              typename PrimitiveTypeTraits<PT>::CppType,
619
9
                              Op<PT>>::vector_constant(col_left->get_data(),
620
9
                                                       col_right->get_element(0), vec_res);
621
622
9
            block.replace_by_position(result, std::move(col_res));
623
9
        } 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
9
        return Status::OK();
636
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
481
                            const ColumnPtr& col_right_ptr) const {
593
481
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
481
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
481
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
481
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
481
        DCHECK(!(left_is_const && right_is_const));
600
601
481
        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
480
        } else if (!left_is_const && right_is_const) {
613
474
            auto col_res = ColumnUInt8::create();
614
615
474
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
474
            vec_res.resize(col_left->size());
617
474
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
474
                              typename PrimitiveTypeTraits<PT>::CppType,
619
474
                              Op<PT>>::vector_constant(col_left->get_data(),
620
474
                                                       col_right->get_element(0), vec_res);
621
622
474
            block.replace_by_position(result, std::move(col_res));
623
474
        } 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
481
        return Status::OK();
636
481
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
122
                            const ColumnPtr& col_right_ptr) const {
593
122
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
122
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
122
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
122
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
122
        DCHECK(!(left_is_const && right_is_const));
600
601
122
        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
115
        } else if (!left_is_const && right_is_const) {
613
115
            auto col_res = ColumnUInt8::create();
614
615
115
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
115
            vec_res.resize(col_left->size());
617
115
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
115
                              typename PrimitiveTypeTraits<PT>::CppType,
619
115
                              Op<PT>>::vector_constant(col_left->get_data(),
620
115
                                                       col_right->get_element(0), vec_res);
621
622
115
            block.replace_by_position(result, std::move(col_res));
623
115
        } 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
122
        return Status::OK();
636
122
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
405
                            const ColumnPtr& col_right_ptr) const {
593
405
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
405
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
405
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
405
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
405
        DCHECK(!(left_is_const && right_is_const));
600
601
405
        if (!left_is_const && !right_is_const) {
602
359
            auto col_res = ColumnUInt8::create();
603
604
359
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
359
            vec_res.resize(col_left->get_data().size());
606
359
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
359
                              typename PrimitiveTypeTraits<PT>::CppType,
608
359
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
359
                                                     vec_res);
610
611
359
            block.replace_by_position(result, std::move(col_res));
612
359
        } 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
46
        } 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
405
        return Status::OK();
636
405
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
64
                            const ColumnPtr& col_right_ptr) const {
593
64
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
64
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
64
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
64
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
64
        DCHECK(!(left_is_const && right_is_const));
600
601
64
        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
64
        } else if (!left_is_const && right_is_const) {
613
64
            auto col_res = ColumnUInt8::create();
614
615
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
64
            vec_res.resize(col_left->size());
617
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
64
                              typename PrimitiveTypeTraits<PT>::CppType,
619
64
                              Op<PT>>::vector_constant(col_left->get_data(),
620
64
                                                       col_right->get_element(0), vec_res);
621
622
64
            block.replace_by_position(result, std::move(col_res));
623
64
        } 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
64
        return Status::OK();
636
64
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
99
                            const ColumnPtr& col_right_ptr) const {
593
99
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
99
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
99
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
99
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
99
        DCHECK(!(left_is_const && right_is_const));
600
601
99
        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
99
        } else if (!left_is_const && right_is_const) {
613
99
            auto col_res = ColumnUInt8::create();
614
615
99
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
99
            vec_res.resize(col_left->size());
617
99
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
99
                              typename PrimitiveTypeTraits<PT>::CppType,
619
99
                              Op<PT>>::vector_constant(col_left->get_data(),
620
99
                                                       col_right->get_element(0), vec_res);
621
622
99
            block.replace_by_position(result, std::move(col_res));
623
99
        } 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
99
        return Status::OK();
636
99
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.38k
                            const ColumnPtr& col_right_ptr) const {
593
1.38k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.38k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.38k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.38k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.38k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.38k
        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.37k
        } else if (!left_is_const && right_is_const) {
613
1.37k
            auto col_res = ColumnUInt8::create();
614
615
1.37k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.37k
            vec_res.resize(col_left->size());
617
1.37k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.37k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.37k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.37k
                                                       col_right->get_element(0), vec_res);
621
622
1.37k
            block.replace_by_position(result, std::move(col_res));
623
1.37k
        } 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.38k
        return Status::OK();
636
1.38k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
782
                            const ColumnPtr& col_right_ptr) const {
593
782
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
782
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
782
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
782
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
782
        DCHECK(!(left_is_const && right_is_const));
600
601
782
        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
750
        } else if (!left_is_const && right_is_const) {
613
750
            auto col_res = ColumnUInt8::create();
614
615
750
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
750
            vec_res.resize(col_left->size());
617
750
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
750
                              typename PrimitiveTypeTraits<PT>::CppType,
619
750
                              Op<PT>>::vector_constant(col_left->get_data(),
620
750
                                                       col_right->get_element(0), vec_res);
621
622
750
            block.replace_by_position(result, std::move(col_res));
623
750
        } 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
782
        return Status::OK();
636
782
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_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
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
12
        } else if (!left_is_const && right_is_const) {
613
12
            auto col_res = ColumnUInt8::create();
614
615
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
12
            vec_res.resize(col_left->size());
617
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
12
                              typename PrimitiveTypeTraits<PT>::CppType,
619
12
                              Op<PT>>::vector_constant(col_left->get_data(),
620
12
                                                       col_right->get_element(0), vec_res);
621
622
12
            block.replace_by_position(result, std::move(col_res));
623
12
        } 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_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
24
                            const ColumnPtr& col_right_ptr) const {
593
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
24
        DCHECK(!(left_is_const && right_is_const));
600
601
24
        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
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
24
        return Status::OK();
636
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
118
                            const ColumnPtr& col_right_ptr) const {
593
118
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
118
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
118
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
118
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
118
        DCHECK(!(left_is_const && right_is_const));
600
601
118
        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
94
        } else if (!left_is_const && right_is_const) {
613
94
            auto col_res = ColumnUInt8::create();
614
615
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
94
            vec_res.resize(col_left->size());
617
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
94
                              typename PrimitiveTypeTraits<PT>::CppType,
619
94
                              Op<PT>>::vector_constant(col_left->get_data(),
620
94
                                                       col_right->get_element(0), vec_res);
621
622
94
            block.replace_by_position(result, std::move(col_res));
623
94
        } 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
118
        return Status::OK();
636
118
    }
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
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
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
85
        } 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
85
        return Status::OK();
636
85
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.00k
                            const ColumnPtr& col_right_ptr) const {
593
2.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.00k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.01k
        if (!left_is_const && !right_is_const) {
602
1.62k
            auto col_res = ColumnUInt8::create();
603
604
1.62k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1.62k
            vec_res.resize(col_left->get_data().size());
606
1.62k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1.62k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1.62k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1.62k
                                                     vec_res);
610
611
1.62k
            block.replace_by_position(result, std::move(col_res));
612
1.62k
        } else if (!left_is_const && right_is_const) {
613
388
            auto col_res = ColumnUInt8::create();
614
615
388
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
388
            vec_res.resize(col_left->size());
617
388
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
388
                              typename PrimitiveTypeTraits<PT>::CppType,
619
388
                              Op<PT>>::vector_constant(col_left->get_data(),
620
388
                                                       col_right->get_element(0), vec_res);
621
622
388
            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.00k
        return Status::OK();
636
2.00k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
300
                            const ColumnPtr& col_right_ptr) const {
593
300
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
300
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
300
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
300
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
300
        DCHECK(!(left_is_const && right_is_const));
600
601
300
        if (!left_is_const && !right_is_const) {
602
241
            auto col_res = ColumnUInt8::create();
603
604
241
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
241
            vec_res.resize(col_left->get_data().size());
606
241
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
241
                              typename PrimitiveTypeTraits<PT>::CppType,
608
241
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
241
                                                     vec_res);
610
611
241
            block.replace_by_position(result, std::move(col_res));
612
241
        } 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
300
        return Status::OK();
636
300
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
144
                            const ColumnPtr& col_right_ptr) const {
593
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
144
        DCHECK(!(left_is_const && right_is_const));
600
601
144
        if (!left_is_const && !right_is_const) {
602
105
            auto col_res = ColumnUInt8::create();
603
604
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
105
            vec_res.resize(col_left->get_data().size());
606
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
105
                              typename PrimitiveTypeTraits<PT>::CppType,
608
105
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
105
                                                     vec_res);
610
611
105
            block.replace_by_position(result, std::move(col_res));
612
105
        } 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
144
        return Status::OK();
636
144
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_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
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
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
2
        return Status::OK();
636
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.40k
                            const ColumnPtr& col_right_ptr) const {
593
2.40k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.40k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.40k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.40k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.40k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.40k
        if (!left_is_const && !right_is_const) {
602
218
            auto col_res = ColumnUInt8::create();
603
604
218
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
218
            vec_res.resize(col_left->get_data().size());
606
218
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
218
                              typename PrimitiveTypeTraits<PT>::CppType,
608
218
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
218
                                                     vec_res);
610
611
218
            block.replace_by_position(result, std::move(col_res));
612
2.18k
        } else if (!left_is_const && right_is_const) {
613
1.90k
            auto col_res = ColumnUInt8::create();
614
615
1.90k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.90k
            vec_res.resize(col_left->size());
617
1.90k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.90k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.90k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.90k
                                                       col_right->get_element(0), vec_res);
621
622
1.90k
            block.replace_by_position(result, std::move(col_res));
623
1.90k
        } else if (left_is_const && !right_is_const) {
624
288
            auto col_res = ColumnUInt8::create();
625
626
288
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
288
            vec_res.resize(col_right->size());
628
288
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
288
                              typename PrimitiveTypeTraits<PT>::CppType,
630
288
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
288
                                                       col_right->get_data(), vec_res);
632
633
288
            block.replace_by_position(result, std::move(col_res));
634
288
        }
635
2.40k
        return Status::OK();
636
2.40k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
169
                            const ColumnPtr& col_right_ptr) const {
593
169
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
169
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
169
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
169
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
169
        DCHECK(!(left_is_const && right_is_const));
600
601
169
        if (!left_is_const && !right_is_const) {
602
155
            auto col_res = ColumnUInt8::create();
603
604
155
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
155
            vec_res.resize(col_left->get_data().size());
606
155
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
155
                              typename PrimitiveTypeTraits<PT>::CppType,
608
155
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
155
                                                     vec_res);
610
611
155
            block.replace_by_position(result, std::move(col_res));
612
155
        } 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
169
        return Status::OK();
636
169
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.95k
                            const ColumnPtr& col_right_ptr) const {
593
1.95k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.95k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.95k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.95k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.95k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.95k
        if (!left_is_const && !right_is_const) {
602
902
            auto col_res = ColumnUInt8::create();
603
604
902
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
902
            vec_res.resize(col_left->get_data().size());
606
902
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
902
                              typename PrimitiveTypeTraits<PT>::CppType,
608
902
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
902
                                                     vec_res);
610
611
902
            block.replace_by_position(result, std::move(col_res));
612
1.05k
        } else if (!left_is_const && right_is_const) {
613
929
            auto col_res = ColumnUInt8::create();
614
615
929
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
929
            vec_res.resize(col_left->size());
617
929
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
929
                              typename PrimitiveTypeTraits<PT>::CppType,
619
929
                              Op<PT>>::vector_constant(col_left->get_data(),
620
929
                                                       col_right->get_element(0), vec_res);
621
622
929
            block.replace_by_position(result, std::move(col_res));
623
929
        } else if (left_is_const && !right_is_const) {
624
121
            auto col_res = ColumnUInt8::create();
625
626
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
121
            vec_res.resize(col_right->size());
628
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
121
                              typename PrimitiveTypeTraits<PT>::CppType,
630
121
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
121
                                                       col_right->get_data(), vec_res);
632
633
121
            block.replace_by_position(result, std::move(col_res));
634
121
        }
635
1.95k
        return Status::OK();
636
1.95k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
889
                            const ColumnPtr& col_right_ptr) const {
593
889
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
889
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
889
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
889
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
889
        DCHECK(!(left_is_const && right_is_const));
600
601
889
        if (!left_is_const && !right_is_const) {
602
265
            auto col_res = ColumnUInt8::create();
603
604
265
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
265
            vec_res.resize(col_left->get_data().size());
606
265
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
265
                              typename PrimitiveTypeTraits<PT>::CppType,
608
265
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
265
                                                     vec_res);
610
611
265
            block.replace_by_position(result, std::move(col_res));
612
624
        } else if (!left_is_const && right_is_const) {
613
549
            auto col_res = ColumnUInt8::create();
614
615
549
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
549
            vec_res.resize(col_left->size());
617
549
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
549
                              typename PrimitiveTypeTraits<PT>::CppType,
619
549
                              Op<PT>>::vector_constant(col_left->get_data(),
620
549
                                                       col_right->get_element(0), vec_res);
621
622
549
            block.replace_by_position(result, std::move(col_res));
623
549
        } else if (left_is_const && !right_is_const) {
624
75
            auto col_res = ColumnUInt8::create();
625
626
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
75
            vec_res.resize(col_right->size());
628
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
75
                              typename PrimitiveTypeTraits<PT>::CppType,
630
75
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
75
                                                       col_right->get_data(), vec_res);
632
633
75
            block.replace_by_position(result, std::move(col_res));
634
75
        }
635
889
        return Status::OK();
636
889
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
267
                            const ColumnPtr& col_right_ptr) const {
593
267
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
267
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
267
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
267
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
267
        DCHECK(!(left_is_const && right_is_const));
600
601
267
        if (!left_is_const && !right_is_const) {
602
134
            auto col_res = ColumnUInt8::create();
603
604
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
134
            vec_res.resize(col_left->get_data().size());
606
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
134
                              typename PrimitiveTypeTraits<PT>::CppType,
608
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
134
                                                     vec_res);
610
611
134
            block.replace_by_position(result, std::move(col_res));
612
134
        } 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
87
        } else if (left_is_const && !right_is_const) {
624
87
            auto col_res = ColumnUInt8::create();
625
626
87
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
87
            vec_res.resize(col_right->size());
628
87
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
87
                              typename PrimitiveTypeTraits<PT>::CppType,
630
87
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
87
                                                       col_right->get_data(), vec_res);
632
633
87
            block.replace_by_position(result, std::move(col_res));
634
87
        }
635
267
        return Status::OK();
636
267
    }
_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.24k
                            const ColumnPtr& col_right_ptr) const {
593
1.24k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.24k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.24k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.24k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.24k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.24k
        if (!left_is_const && !right_is_const) {
602
144
            auto col_res = ColumnUInt8::create();
603
604
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
144
            vec_res.resize(col_left->get_data().size());
606
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
144
                              typename PrimitiveTypeTraits<PT>::CppType,
608
144
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
144
                                                     vec_res);
610
611
144
            block.replace_by_position(result, std::move(col_res));
612
1.09k
        } else if (!left_is_const && right_is_const) {
613
1.09k
            auto col_res = ColumnUInt8::create();
614
615
1.09k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.09k
            vec_res.resize(col_left->size());
617
1.09k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.09k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.09k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.09k
                                                       col_right->get_element(0), vec_res);
621
622
1.09k
            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.24k
        return Status::OK();
636
1.24k
    }
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
14
                            const ColumnPtr& col_right_ptr) const {
593
14
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
14
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
14
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
14
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
14
        DCHECK(!(left_is_const && right_is_const));
600
601
14
        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
14
        } 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
14
        return Status::OK();
636
14
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
517
                            const ColumnPtr& col_right_ptr) const {
593
517
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
517
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
517
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
517
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
517
        DCHECK(!(left_is_const && right_is_const));
600
601
517
        if (!left_is_const && !right_is_const) {
602
395
            auto col_res = ColumnUInt8::create();
603
604
395
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
395
            vec_res.resize(col_left->get_data().size());
606
395
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
395
                              typename PrimitiveTypeTraits<PT>::CppType,
608
395
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
395
                                                     vec_res);
610
611
395
            block.replace_by_position(result, std::move(col_res));
612
395
        } else if (!left_is_const && right_is_const) {
613
119
            auto col_res = ColumnUInt8::create();
614
615
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
119
            vec_res.resize(col_left->size());
617
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
119
                              typename PrimitiveTypeTraits<PT>::CppType,
619
119
                              Op<PT>>::vector_constant(col_left->get_data(),
620
119
                                                       col_right->get_element(0), vec_res);
621
622
119
            block.replace_by_position(result, std::move(col_res));
623
119
        } 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
517
        return Status::OK();
636
517
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_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
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
62
                            const ColumnPtr& col_right_ptr) const {
593
62
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
62
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
62
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
62
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
62
        DCHECK(!(left_is_const && right_is_const));
600
601
62
        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
38
        } else if (!left_is_const && right_is_const) {
613
38
            auto col_res = ColumnUInt8::create();
614
615
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
38
            vec_res.resize(col_left->size());
617
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
38
                              typename PrimitiveTypeTraits<PT>::CppType,
619
38
                              Op<PT>>::vector_constant(col_left->get_data(),
620
38
                                                       col_right->get_element(0), vec_res);
621
622
38
            block.replace_by_position(result, std::move(col_res));
623
38
        } 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
62
        return Status::OK();
636
62
    }
_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
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
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
2
        return Status::OK();
636
2
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
102
                            const ColumnPtr& col_right_ptr) const {
593
102
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
102
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
102
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
102
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
102
        DCHECK(!(left_is_const && right_is_const));
600
601
102
        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
101
        } else if (!left_is_const && right_is_const) {
613
101
            auto col_res = ColumnUInt8::create();
614
615
101
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
101
            vec_res.resize(col_left->size());
617
101
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
101
                              typename PrimitiveTypeTraits<PT>::CppType,
619
101
                              Op<PT>>::vector_constant(col_left->get_data(),
620
101
                                                       col_right->get_element(0), vec_res);
621
622
101
            block.replace_by_position(result, std::move(col_res));
623
101
        } 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
102
        return Status::OK();
636
102
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
134
                            const ColumnPtr& col_right_ptr) const {
593
134
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
134
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
134
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
134
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
134
        DCHECK(!(left_is_const && right_is_const));
600
601
134
        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
134
        } else if (!left_is_const && right_is_const) {
613
134
            auto col_res = ColumnUInt8::create();
614
615
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
134
            vec_res.resize(col_left->size());
617
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
134
                              typename PrimitiveTypeTraits<PT>::CppType,
619
134
                              Op<PT>>::vector_constant(col_left->get_data(),
620
134
                                                       col_right->get_element(0), vec_res);
621
622
134
            block.replace_by_position(result, std::move(col_res));
623
134
        } 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
134
        return Status::OK();
636
134
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
7.19k
                            const ColumnPtr& col_right_ptr) const {
593
7.19k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
7.19k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
7.19k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
7.19k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
7.19k
        DCHECK(!(left_is_const && right_is_const));
600
601
7.19k
        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
7.14k
        } else if (!left_is_const && right_is_const) {
613
6.82k
            auto col_res = ColumnUInt8::create();
614
615
6.82k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
6.82k
            vec_res.resize(col_left->size());
617
6.82k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
6.82k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
6.82k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
6.82k
                                                       col_right->get_element(0), vec_res);
621
622
6.82k
            block.replace_by_position(result, std::move(col_res));
623
6.82k
        } else if (left_is_const && !right_is_const) {
624
324
            auto col_res = ColumnUInt8::create();
625
626
324
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
324
            vec_res.resize(col_right->size());
628
324
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
324
                              typename PrimitiveTypeTraits<PT>::CppType,
630
324
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
324
                                                       col_right->get_data(), vec_res);
632
633
324
            block.replace_by_position(result, std::move(col_res));
634
324
        }
635
7.19k
        return Status::OK();
636
7.19k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
686
                            const ColumnPtr& col_right_ptr) const {
593
686
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
686
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
686
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
686
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
686
        DCHECK(!(left_is_const && right_is_const));
600
601
686
        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
611
        } else if (!left_is_const && right_is_const) {
613
563
            auto col_res = ColumnUInt8::create();
614
615
563
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
563
            vec_res.resize(col_left->size());
617
563
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
563
                              typename PrimitiveTypeTraits<PT>::CppType,
619
563
                              Op<PT>>::vector_constant(col_left->get_data(),
620
563
                                                       col_right->get_element(0), vec_res);
621
622
563
            block.replace_by_position(result, std::move(col_res));
623
563
        } else if (left_is_const && !right_is_const) {
624
48
            auto col_res = ColumnUInt8::create();
625
626
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
48
            vec_res.resize(col_right->size());
628
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
48
                              typename PrimitiveTypeTraits<PT>::CppType,
630
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
48
                                                       col_right->get_data(), vec_res);
632
633
48
            block.replace_by_position(result, std::move(col_res));
634
48
        }
635
686
        return Status::OK();
636
686
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
6
                            const ColumnPtr& col_right_ptr) const {
593
6
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
6
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
6
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
6
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
6
        DCHECK(!(left_is_const && right_is_const));
600
601
6
        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
6
        } else if (!left_is_const && right_is_const) {
613
6
            auto col_res = ColumnUInt8::create();
614
615
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
6
            vec_res.resize(col_left->size());
617
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
6
                              typename PrimitiveTypeTraits<PT>::CppType,
619
6
                              Op<PT>>::vector_constant(col_left->get_data(),
620
6
                                                       col_right->get_element(0), vec_res);
621
622
6
            block.replace_by_position(result, std::move(col_res));
623
6
        } 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
6
        return Status::OK();
636
6
    }
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
20
                            const ColumnPtr& col_right_ptr) const {
593
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
20
        DCHECK(!(left_is_const && right_is_const));
600
601
20
        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
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
20
        return Status::OK();
636
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
113
                            const ColumnPtr& col_right_ptr) const {
593
113
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
113
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
113
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
113
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
113
        DCHECK(!(left_is_const && right_is_const));
600
601
113
        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
93
        } else if (!left_is_const && right_is_const) {
613
93
            auto col_res = ColumnUInt8::create();
614
615
93
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
93
            vec_res.resize(col_left->size());
617
93
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
93
                              typename PrimitiveTypeTraits<PT>::CppType,
619
93
                              Op<PT>>::vector_constant(col_left->get_data(),
620
93
                                                       col_right->get_element(0), vec_res);
621
622
93
            block.replace_by_position(result, std::move(col_res));
623
93
        } 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
113
        return Status::OK();
636
113
    }
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
2.99k
                           const ColumnWithTypeAndName& col_right) const {
640
2.99k
        auto call = [&](const auto& type) -> bool {
641
2.99k
            using DispatchType = std::decay_t<decltype(type)>;
642
2.99k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
2.99k
                    block, result, col_left, col_right);
644
2.99k
            return true;
645
2.99k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
640
114
        auto call = [&](const auto& type) -> bool {
641
114
            using DispatchType = std::decay_t<decltype(type)>;
642
114
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
114
                    block, result, col_left, col_right);
644
114
            return true;
645
114
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
107
        auto call = [&](const auto& type) -> bool {
641
107
            using DispatchType = std::decay_t<decltype(type)>;
642
107
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
107
                    block, result, col_left, col_right);
644
107
            return true;
645
107
        };
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
863
        auto call = [&](const auto& type) -> bool {
641
863
            using DispatchType = std::decay_t<decltype(type)>;
642
863
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
863
                    block, result, col_left, col_right);
644
863
            return true;
645
863
        };
_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
67
        auto call = [&](const auto& type) -> bool {
641
67
            using DispatchType = std::decay_t<decltype(type)>;
642
67
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
67
                    block, result, col_left, col_right);
644
67
            return true;
645
67
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
640
637
        auto call = [&](const auto& type) -> bool {
641
637
            using DispatchType = std::decay_t<decltype(type)>;
642
637
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
637
                    block, result, col_left, col_right);
644
637
            return true;
645
637
        };
_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
53
        auto call = [&](const auto& type) -> bool {
641
53
            using DispatchType = std::decay_t<decltype(type)>;
642
53
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
53
                    block, result, col_left, col_right);
644
53
            return true;
645
53
        };
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
58
        auto call = [&](const auto& type) -> bool {
641
58
            using DispatchType = std::decay_t<decltype(type)>;
642
58
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
58
                    block, result, col_left, col_right);
644
58
            return true;
645
58
        };
_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
167
        auto call = [&](const auto& type) -> bool {
641
167
            using DispatchType = std::decay_t<decltype(type)>;
642
167
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
167
                    block, result, col_left, col_right);
644
167
            return true;
645
167
        };
_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
423
        auto call = [&](const auto& type) -> bool {
641
423
            using DispatchType = std::decay_t<decltype(type)>;
642
423
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
423
                    block, result, col_left, col_right);
644
423
            return true;
645
423
        };
_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
62
        auto call = [&](const auto& type) -> bool {
641
62
            using DispatchType = std::decay_t<decltype(type)>;
642
62
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
62
                    block, result, col_left, col_right);
644
62
            return true;
645
62
        };
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
77
        auto call = [&](const auto& type) -> bool {
641
77
            using DispatchType = std::decay_t<decltype(type)>;
642
77
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
77
                    block, result, col_left, col_right);
644
77
            return true;
645
77
        };
_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
2.99k
        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
2.99k
        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
2.99k
        return Status::OK();
658
2.99k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
1.09k
                           const ColumnWithTypeAndName& col_right) const {
640
1.09k
        auto call = [&](const auto& type) -> bool {
641
1.09k
            using DispatchType = std::decay_t<decltype(type)>;
642
1.09k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
1.09k
                    block, result, col_left, col_right);
644
1.09k
            return true;
645
1.09k
        };
646
647
1.09k
        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.09k
        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.09k
        return Status::OK();
658
1.09k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
124
                           const ColumnWithTypeAndName& col_right) const {
640
124
        auto call = [&](const auto& type) -> bool {
641
124
            using DispatchType = std::decay_t<decltype(type)>;
642
124
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
124
                    block, result, col_left, col_right);
644
124
            return true;
645
124
        };
646
647
124
        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
124
        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
124
        return Status::OK();
658
124
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
714
                           const ColumnWithTypeAndName& col_right) const {
640
714
        auto call = [&](const auto& type) -> bool {
641
714
            using DispatchType = std::decay_t<decltype(type)>;
642
714
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
714
                    block, result, col_left, col_right);
644
714
            return true;
645
714
        };
646
647
714
        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
714
        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
714
        return Status::OK();
658
714
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
129
                           const ColumnWithTypeAndName& col_right) const {
640
129
        auto call = [&](const auto& type) -> bool {
641
129
            using DispatchType = std::decay_t<decltype(type)>;
642
129
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
129
                    block, result, col_left, col_right);
644
129
            return true;
645
129
        };
646
647
129
        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
129
        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
129
        return Status::OK();
658
129
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
774
                           const ColumnWithTypeAndName& col_right) const {
640
774
        auto call = [&](const auto& type) -> bool {
641
774
            using DispatchType = std::decay_t<decltype(type)>;
642
774
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
774
                    block, result, col_left, col_right);
644
774
            return true;
645
774
        };
646
647
774
        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
774
        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
774
        return Status::OK();
658
774
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
155
                           const ColumnWithTypeAndName& col_right) const {
640
155
        auto call = [&](const auto& type) -> bool {
641
155
            using DispatchType = std::decay_t<decltype(type)>;
642
155
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
155
                    block, result, col_left, col_right);
644
155
            return true;
645
155
        };
646
647
155
        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
155
        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
155
        return Status::OK();
658
155
    }
659
660
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
661
22.1k
                          const IColumn* c1) const {
662
22.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
22.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
22.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
22.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
22.1k
        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
22.1k
        DCHECK(!(c0_const && c1_const));
671
22.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
672
22.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
673
22.1k
        ColumnString::Offset c0_const_size = 0;
674
22.1k
        ColumnString::Offset c1_const_size = 0;
675
676
22.1k
        if (c0_const) {
677
63
            const ColumnString* c0_const_string =
678
63
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
63
            if (c0_const_string) {
681
63
                c0_const_chars = &c0_const_string->get_chars();
682
63
                c0_const_size = c0_const_string->get_offsets()[0];
683
63
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
63
        }
688
689
22.1k
        if (c1_const) {
690
21.2k
            const ColumnString* c1_const_string =
691
21.2k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
21.2k
            if (c1_const_string) {
694
21.2k
                c1_const_chars = &c1_const_string->get_chars();
695
21.2k
                c1_const_size = c1_const_string->get_offsets()[0];
696
21.2k
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
21.2k
        }
701
702
22.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
22.1k
        auto c_res = ColumnUInt8::create();
705
22.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
22.1k
        vec_res.resize(c0->size());
707
708
22.1k
        if (c0_string && c1_string) {
709
869
            StringImpl::string_vector_string_vector(
710
869
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
869
                    c1_string->get_offsets(), vec_res);
712
21.2k
        } else if (c0_string && c1_const) {
713
21.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
21.2k
                                               *c1_const_chars, c1_const_size, vec_res);
715
21.2k
        } else if (c0_const && c1_string) {
716
63
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
63
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
63
                                               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
22.1k
        block.replace_by_position(result, std::move(c_res));
724
22.1k
        return Status::OK();
725
22.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
20.6k
                          const IColumn* c1) const {
662
20.6k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
20.6k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
20.6k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
20.6k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
20.6k
        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.6k
        DCHECK(!(c0_const && c1_const));
671
20.6k
        const ColumnString::Chars* c0_const_chars = nullptr;
672
20.6k
        const ColumnString::Chars* c1_const_chars = nullptr;
673
20.6k
        ColumnString::Offset c0_const_size = 0;
674
20.6k
        ColumnString::Offset c1_const_size = 0;
675
676
20.6k
        if (c0_const) {
677
11
            const ColumnString* c0_const_string =
678
11
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
11
            if (c0_const_string) {
681
11
                c0_const_chars = &c0_const_string->get_chars();
682
11
                c0_const_size = c0_const_string->get_offsets()[0];
683
11
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
11
        }
688
689
20.6k
        if (c1_const) {
690
20.2k
            const ColumnString* c1_const_string =
691
20.2k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
20.2k
            if (c1_const_string) {
694
20.2k
                c1_const_chars = &c1_const_string->get_chars();
695
20.2k
                c1_const_size = c1_const_string->get_offsets()[0];
696
20.2k
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
20.2k
        }
701
702
20.6k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
20.6k
        auto c_res = ColumnUInt8::create();
705
20.6k
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
20.6k
        vec_res.resize(c0->size());
707
708
20.6k
        if (c0_string && c1_string) {
709
431
            StringImpl::string_vector_string_vector(
710
431
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
431
                    c1_string->get_offsets(), vec_res);
712
20.2k
        } else if (c0_string && c1_const) {
713
20.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
20.2k
                                               *c1_const_chars, c1_const_size, vec_res);
715
20.2k
        } else if (c0_const && c1_string) {
716
11
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
11
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
11
                                               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.6k
        block.replace_by_position(result, std::move(c_res));
724
20.6k
        return Status::OK();
725
20.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
151
                          const IColumn* c1) const {
662
151
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
151
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
151
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
151
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
151
        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
151
        DCHECK(!(c0_const && c1_const));
671
151
        const ColumnString::Chars* c0_const_chars = nullptr;
672
151
        const ColumnString::Chars* c1_const_chars = nullptr;
673
151
        ColumnString::Offset c0_const_size = 0;
674
151
        ColumnString::Offset c1_const_size = 0;
675
676
151
        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
151
        if (c1_const) {
690
136
            const ColumnString* c1_const_string =
691
136
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
136
            if (c1_const_string) {
694
136
                c1_const_chars = &c1_const_string->get_chars();
695
136
                c1_const_size = c1_const_string->get_offsets()[0];
696
136
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
136
        }
701
702
151
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
151
        auto c_res = ColumnUInt8::create();
705
151
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
151
        vec_res.resize(c0->size());
707
708
151
        if (c0_string && c1_string) {
709
15
            StringImpl::string_vector_string_vector(
710
15
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
15
                    c1_string->get_offsets(), vec_res);
712
136
        } else if (c0_string && c1_const) {
713
136
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
136
                                               *c1_const_chars, c1_const_size, vec_res);
715
136
        } 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
151
        block.replace_by_position(result, std::move(c_res));
724
151
        return Status::OK();
725
151
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
222
                          const IColumn* c1) const {
662
222
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
222
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
222
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
222
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
222
        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
222
        DCHECK(!(c0_const && c1_const));
671
222
        const ColumnString::Chars* c0_const_chars = nullptr;
672
222
        const ColumnString::Chars* c1_const_chars = nullptr;
673
222
        ColumnString::Offset c0_const_size = 0;
674
222
        ColumnString::Offset c1_const_size = 0;
675
676
222
        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
222
        if (c1_const) {
690
220
            const ColumnString* c1_const_string =
691
220
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
220
            if (c1_const_string) {
694
220
                c1_const_chars = &c1_const_string->get_chars();
695
220
                c1_const_size = c1_const_string->get_offsets()[0];
696
220
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
220
        }
701
702
222
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
222
        auto c_res = ColumnUInt8::create();
705
222
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
222
        vec_res.resize(c0->size());
707
708
222
        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
220
        } else if (c0_string && c1_const) {
713
220
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
220
                                               *c1_const_chars, c1_const_size, vec_res);
715
220
        } 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
222
        block.replace_by_position(result, std::move(c_res));
724
222
        return Status::OK();
725
222
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
320
                          const IColumn* c1) const {
662
320
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
320
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
320
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
320
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
320
        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
320
        DCHECK(!(c0_const && c1_const));
671
320
        const ColumnString::Chars* c0_const_chars = nullptr;
672
320
        const ColumnString::Chars* c1_const_chars = nullptr;
673
320
        ColumnString::Offset c0_const_size = 0;
674
320
        ColumnString::Offset c1_const_size = 0;
675
676
320
        if (c0_const) {
677
48
            const ColumnString* c0_const_string =
678
48
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
48
            if (c0_const_string) {
681
48
                c0_const_chars = &c0_const_string->get_chars();
682
48
                c0_const_size = c0_const_string->get_offsets()[0];
683
48
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
48
        }
688
689
320
        if (c1_const) {
690
241
            const ColumnString* c1_const_string =
691
241
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
241
            if (c1_const_string) {
694
241
                c1_const_chars = &c1_const_string->get_chars();
695
241
                c1_const_size = c1_const_string->get_offsets()[0];
696
241
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
241
        }
701
702
320
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
320
        auto c_res = ColumnUInt8::create();
705
320
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
320
        vec_res.resize(c0->size());
707
708
320
        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
289
        } else if (c0_string && c1_const) {
713
241
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
241
                                               *c1_const_chars, c1_const_size, vec_res);
715
241
        } else if (c0_const && c1_string) {
716
48
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
48
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
48
                                               vec_res);
719
48
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
320
        block.replace_by_position(result, std::move(c_res));
724
320
        return Status::OK();
725
320
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
521
                          const IColumn* c1) const {
662
521
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
521
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
521
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
521
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
521
        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
521
        DCHECK(!(c0_const && c1_const));
671
521
        const ColumnString::Chars* c0_const_chars = nullptr;
672
521
        const ColumnString::Chars* c1_const_chars = nullptr;
673
521
        ColumnString::Offset c0_const_size = 0;
674
521
        ColumnString::Offset c1_const_size = 0;
675
676
521
        if (c0_const) {
677
4
            const ColumnString* c0_const_string =
678
4
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
4
            if (c0_const_string) {
681
4
                c0_const_chars = &c0_const_string->get_chars();
682
4
                c0_const_size = c0_const_string->get_offsets()[0];
683
4
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
4
        }
688
689
521
        if (c1_const) {
690
127
            const ColumnString* c1_const_string =
691
127
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
127
            if (c1_const_string) {
694
127
                c1_const_chars = &c1_const_string->get_chars();
695
127
                c1_const_size = c1_const_string->get_offsets()[0];
696
127
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
127
        }
701
702
521
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
521
        auto c_res = ColumnUInt8::create();
705
521
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
521
        vec_res.resize(c0->size());
707
708
521
        if (c0_string && c1_string) {
709
390
            StringImpl::string_vector_string_vector(
710
390
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
390
                    c1_string->get_offsets(), vec_res);
712
390
        } else if (c0_string && c1_const) {
713
127
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
127
                                               *c1_const_chars, c1_const_size, vec_res);
715
127
        } else if (c0_const && c1_string) {
716
4
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
4
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
4
                                               vec_res);
719
4
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
521
        block.replace_by_position(result, std::move(c_res));
724
521
        return Status::OK();
725
521
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
281
                          const IColumn* c1) const {
662
281
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
281
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
281
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
281
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
281
        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
281
        DCHECK(!(c0_const && c1_const));
671
281
        const ColumnString::Chars* c0_const_chars = nullptr;
672
281
        const ColumnString::Chars* c1_const_chars = nullptr;
673
281
        ColumnString::Offset c0_const_size = 0;
674
281
        ColumnString::Offset c1_const_size = 0;
675
676
281
        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
281
        if (c1_const) {
690
281
            const ColumnString* c1_const_string =
691
281
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
281
            if (c1_const_string) {
694
281
                c1_const_chars = &c1_const_string->get_chars();
695
281
                c1_const_size = c1_const_string->get_offsets()[0];
696
281
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
281
        }
701
702
281
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
281
        auto c_res = ColumnUInt8::create();
705
281
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
281
        vec_res.resize(c0->size());
707
708
281
        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
281
        } else if (c0_string && c1_const) {
713
281
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
281
                                               *c1_const_chars, c1_const_size, vec_res);
715
281
        } 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
281
        block.replace_by_position(result, std::move(c_res));
724
281
        return Status::OK();
725
281
    }
726
727
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
728
158
                                         const IColumn* c1) const {
729
158
        bool c0_const = is_column_const(*c0);
730
158
        bool c1_const = is_column_const(*c1);
731
732
158
        DCHECK(!(c0_const && c1_const));
733
734
158
        auto c_res = ColumnUInt8::create();
735
158
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
158
        vec_res.resize(c0->size());
737
738
158
        if (c0_const) {
739
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
157
        } else if (c1_const) {
741
136
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
136
        } else {
743
21
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
21
        }
745
746
158
        block.replace_by_position(result, std::move(c_res));
747
158
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
33
                                         const IColumn* c1) const {
729
33
        bool c0_const = is_column_const(*c0);
730
33
        bool c1_const = is_column_const(*c1);
731
732
33
        DCHECK(!(c0_const && c1_const));
733
734
33
        auto c_res = ColumnUInt8::create();
735
33
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
33
        vec_res.resize(c0->size());
737
738
33
        if (c0_const) {
739
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
32
        } else if (c1_const) {
741
18
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
18
        } else {
743
14
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
14
        }
745
746
33
        block.replace_by_position(result, std::move(c_res));
747
33
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_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_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
53
                                         const IColumn* c1) const {
729
53
        bool c0_const = is_column_const(*c0);
730
53
        bool c1_const = is_column_const(*c1);
731
732
53
        DCHECK(!(c0_const && c1_const));
733
734
53
        auto c_res = ColumnUInt8::create();
735
53
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
53
        vec_res.resize(c0->size());
737
738
53
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
53
        } else if (c1_const) {
741
52
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
52
        } else {
743
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
1
        }
745
746
53
        block.replace_by_position(result, std::move(c_res));
747
53
    }
_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
42
                                         const IColumn* c1) const {
729
42
        bool c0_const = is_column_const(*c0);
730
42
        bool c1_const = is_column_const(*c1);
731
732
42
        DCHECK(!(c0_const && c1_const));
733
734
42
        auto c_res = ColumnUInt8::create();
735
42
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
42
        vec_res.resize(c0->size());
737
738
42
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
42
        } else if (c1_const) {
741
42
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
42
        } else {
743
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
0
        }
745
746
42
        block.replace_by_position(result, std::move(c_res));
747
42
    }
748
749
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
750
158
                           const ColumnWithTypeAndName& c1) const {
751
158
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
158
        return Status::OK();
753
158
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
33
                           const ColumnWithTypeAndName& c1) const {
751
33
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
33
        return Status::OK();
753
33
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_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_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
53
                           const ColumnWithTypeAndName& c1) const {
751
53
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
53
        return Status::OK();
753
53
    }
_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
42
                           const ColumnWithTypeAndName& c1) const {
751
42
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
42
        return Status::OK();
753
42
    }
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
180
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
842
51
    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
63
    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
303k
    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.23k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
844
7.07k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
9.33k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
844
4.03k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
10.6k
    size_t get_number_of_arguments() const override { return 2; }
845
846
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
847
4.23k
                                                const VExprSPtrs& arguments) const override {
848
4.23k
        auto op = comparison_zonemap_detail::op_from_name(name);
849
4.23k
        DORIS_CHECK(op.has_value());
850
4.23k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
4.23k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
2.23k
                                                const VExprSPtrs& arguments) const override {
848
2.23k
        auto op = comparison_zonemap_detail::op_from_name(name);
849
2.23k
        DORIS_CHECK(op.has_value());
850
2.23k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
2.23k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
234
                                                const VExprSPtrs& arguments) const override {
848
234
        auto op = comparison_zonemap_detail::op_from_name(name);
849
234
        DORIS_CHECK(op.has_value());
850
234
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
234
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
465
                                                const VExprSPtrs& arguments) const override {
848
465
        auto op = comparison_zonemap_detail::op_from_name(name);
849
465
        DORIS_CHECK(op.has_value());
850
465
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
465
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
456
                                                const VExprSPtrs& arguments) const override {
848
456
        auto op = comparison_zonemap_detail::op_from_name(name);
849
456
        DORIS_CHECK(op.has_value());
850
456
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
456
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
560
                                                const VExprSPtrs& arguments) const override {
848
560
        auto op = comparison_zonemap_detail::op_from_name(name);
849
560
        DORIS_CHECK(op.has_value());
850
560
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
560
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
283
                                                const VExprSPtrs& arguments) const override {
848
283
        auto op = comparison_zonemap_detail::op_from_name(name);
849
283
        DORIS_CHECK(op.has_value());
850
283
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
283
    }
852
853
33.5k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
33.5k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
33.5k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
33.5k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
33.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
16.1k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
16.1k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
16.1k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
16.1k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
16.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
1.47k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
1.47k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
1.47k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
1.47k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
1.47k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
5.49k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
5.49k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
5.49k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
5.49k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
5.49k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
4.56k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
4.56k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
4.56k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
4.56k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
4.56k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
3.79k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
3.79k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
3.79k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
3.79k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
3.79k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
2.15k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
2.15k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
2.15k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
2.15k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
2.15k
    }
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
303k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
303k
        return std::make_shared<DataTypeUInt8>();
889
303k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
271k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
271k
        return std::make_shared<DataTypeUInt8>();
889
271k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
1.23k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
1.23k
        return std::make_shared<DataTypeUInt8>();
889
1.23k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
7.07k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
7.07k
        return std::make_shared<DataTypeUInt8>();
889
7.07k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
9.34k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
9.34k
        return std::make_shared<DataTypeUInt8>();
889
9.34k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
4.03k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
4.03k
        return std::make_shared<DataTypeUInt8>();
889
4.03k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
10.6k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
10.6k
        return std::make_shared<DataTypeUInt8>();
889
10.6k
    }
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.29k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
1.29k
        DCHECK(arguments.size() == 1);
898
1.29k
        DCHECK(data_type_with_names.size() == 1);
899
1.29k
        DCHECK(iterators.size() == 1);
900
1.29k
        auto* iter = iterators[0];
901
1.29k
        auto data_type_with_name = data_type_with_names[0];
902
1.29k
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
1.29k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
296
            return Status::OK();
907
296
        }
908
995
        segment_v2::InvertedIndexQueryType query_type;
909
995
        std::string_view name_view(name);
910
995
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
688
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
688
        } else if (name_view == NameLess::name) {
913
68
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
239
        } else if (name_view == NameLessOrEquals::name) {
915
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
158
        } else if (name_view == NameGreater::name) {
917
67
            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
997
        if (segment_v2::is_range_query(query_type) &&
925
997
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
133
            return Status::OK();
928
133
        }
929
864
        Field param_value;
930
864
        arguments[0].column->get(0, param_value);
931
864
        if (param_value.is_null()) {
932
2
            return Status::OK();
933
2
        }
934
862
        segment_v2::InvertedIndexParam param;
935
862
        param.column_name = data_type_with_name.first;
936
862
        param.column_type = data_type_with_name.second;
937
862
        param.query_value = param_value;
938
862
        param.query_type = query_type;
939
862
        param.num_rows = num_rows;
940
862
        param.roaring = std::make_shared<roaring::Roaring>();
941
862
        param.analyzer_ctx = analyzer_ctx;
942
862
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
720
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
720
        if (iter->has_null()) {
945
719
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
719
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
719
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
719
        }
949
720
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
720
        bitmap_result = result;
951
720
        bitmap_result.mask_out_null();
952
953
720
        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
720
        return Status::OK();
960
720
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
654
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
654
        DCHECK(arguments.size() == 1);
898
654
        DCHECK(data_type_with_names.size() == 1);
899
654
        DCHECK(iterators.size() == 1);
900
654
        auto* iter = iterators[0];
901
654
        auto data_type_with_name = data_type_with_names[0];
902
654
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
654
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
30
            return Status::OK();
907
30
        }
908
624
        segment_v2::InvertedIndexQueryType query_type;
909
624
        std::string_view name_view(name);
910
625
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
625
            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
625
        if (segment_v2::is_range_query(query_type) &&
925
625
            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
625
        Field param_value;
930
625
        arguments[0].column->get(0, param_value);
931
625
        if (param_value.is_null()) {
932
2
            return Status::OK();
933
2
        }
934
623
        segment_v2::InvertedIndexParam param;
935
623
        param.column_name = data_type_with_name.first;
936
623
        param.column_type = data_type_with_name.second;
937
623
        param.query_value = param_value;
938
623
        param.query_type = query_type;
939
623
        param.num_rows = num_rows;
940
623
        param.roaring = std::make_shared<roaring::Roaring>();
941
623
        param.analyzer_ctx = analyzer_ctx;
942
623
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
587
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
587
        if (iter->has_null()) {
945
587
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
587
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
587
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
587
        }
949
587
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
587
        bitmap_result = result;
951
587
        bitmap_result.mask_out_null();
952
953
587
        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
587
        return Status::OK();
960
587
    }
_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
56
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
56
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
56
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
56
        }
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
105
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
105
        DCHECK(arguments.size() == 1);
898
105
        DCHECK(data_type_with_names.size() == 1);
899
105
        DCHECK(iterators.size() == 1);
900
105
        auto* iter = iterators[0];
901
105
        auto data_type_with_name = data_type_with_names[0];
902
105
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
105
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
39
            return Status::OK();
907
39
        }
908
66
        segment_v2::InvertedIndexQueryType query_type;
909
66
        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
66
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
66
        } 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
67
            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
67
        if (segment_v2::is_range_query(query_type) &&
925
67
            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
50
        Field param_value;
930
50
        arguments[0].column->get(0, param_value);
931
50
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
50
        segment_v2::InvertedIndexParam param;
935
50
        param.column_name = data_type_with_name.first;
936
50
        param.column_type = data_type_with_name.second;
937
50
        param.query_value = param_value;
938
50
        param.query_type = query_type;
939
50
        param.num_rows = num_rows;
940
50
        param.roaring = std::make_shared<roaring::Roaring>();
941
50
        param.analyzer_ctx = analyzer_ctx;
942
50
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
31
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
31
        if (iter->has_null()) {
945
27
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
27
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
27
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
27
        }
949
31
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
31
        bitmap_result = result;
951
31
        bitmap_result.mask_out_null();
952
953
31
        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
31
        return Status::OK();
960
31
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
178
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
178
        DCHECK(arguments.size() == 1);
898
178
        DCHECK(data_type_with_names.size() == 1);
899
178
        DCHECK(iterators.size() == 1);
900
178
        auto* iter = iterators[0];
901
178
        auto data_type_with_name = data_type_with_names[0];
902
178
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
178
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
85
            return Status::OK();
907
85
        }
908
93
        segment_v2::InvertedIndexQueryType query_type;
909
93
        std::string_view name_view(name);
910
93
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
93
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
93
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
93
        } 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
93
        } else {
921
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
0
        }
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
47
            return Status::OK();
928
47
        }
929
46
        Field param_value;
930
46
        arguments[0].column->get(0, param_value);
931
46
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
46
        segment_v2::InvertedIndexParam param;
935
46
        param.column_name = data_type_with_name.first;
936
46
        param.column_type = data_type_with_name.second;
937
46
        param.query_value = param_value;
938
46
        param.query_type = query_type;
939
46
        param.num_rows = num_rows;
940
46
        param.roaring = std::make_shared<roaring::Roaring>();
941
46
        param.analyzer_ctx = analyzer_ctx;
942
46
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
5
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
5
        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
5
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
5
        bitmap_result = result;
951
5
        bitmap_result.mask_out_null();
952
953
5
        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
5
        return Status::OK();
960
5
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
112
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
112
        DCHECK(arguments.size() == 1);
898
112
        DCHECK(data_type_with_names.size() == 1);
899
112
        DCHECK(iterators.size() == 1);
900
112
        auto* iter = iterators[0];
901
112
        auto data_type_with_name = data_type_with_names[0];
902
112
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
112
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
42
            return Status::OK();
907
42
        }
908
70
        segment_v2::InvertedIndexQueryType query_type;
909
70
        std::string_view name_view(name);
910
71
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
70
        } else if (name_view == NameLess::name) {
913
68
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
68
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
2
        } else if (name_view == NameGreater::name) {
917
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
2
        } else if (name_view == NameGreaterOrEquals::name) {
919
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
2
        } else {
921
2
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
2
        }
923
924
68
        if (segment_v2::is_range_query(query_type) &&
925
68
            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
50
        Field param_value;
930
50
        arguments[0].column->get(0, param_value);
931
50
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
50
        segment_v2::InvertedIndexParam param;
935
50
        param.column_name = data_type_with_name.first;
936
50
        param.column_type = data_type_with_name.second;
937
50
        param.query_value = param_value;
938
50
        param.query_type = query_type;
939
50
        param.num_rows = num_rows;
940
50
        param.roaring = std::make_shared<roaring::Roaring>();
941
50
        param.analyzer_ctx = analyzer_ctx;
942
50
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
32
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
35
        if (iter->has_null()) {
945
35
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
35
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
35
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
35
        }
949
32
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
32
        bitmap_result = result;
951
32
        bitmap_result.mask_out_null();
952
953
32
        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
32
        return Status::OK();
960
32
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
173
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
173
        DCHECK(arguments.size() == 1);
898
173
        DCHECK(data_type_with_names.size() == 1);
899
173
        DCHECK(iterators.size() == 1);
900
173
        auto* iter = iterators[0];
901
173
        auto data_type_with_name = data_type_with_names[0];
902
173
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
173
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
94
            return Status::OK();
907
94
        }
908
79
        segment_v2::InvertedIndexQueryType query_type;
909
79
        std::string_view name_view(name);
910
81
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
79
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
81
        } else if (name_view == NameLessOrEquals::name) {
915
81
            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
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
150k
                        uint32_t result, size_t input_rows_count) const override {
967
150k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
150k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
150k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
150k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
150k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
150k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
150k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
150k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
150k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
750k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
750k
        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
750k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
750k
        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
150k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
300k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
300k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
300k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
300k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
149k
#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
149k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
149k
            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
269k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
269k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
269k
                   is_timestamp_ns_type(t);
1027
269k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
62.4k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
62.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
62.4k
                   is_timestamp_ns_type(t);
1027
62.4k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
5.70k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
5.70k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
5.70k
                   is_timestamp_ns_type(t);
1027
5.70k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
153k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
153k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
153k
                   is_timestamp_ns_type(t);
1027
153k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
8.14k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
8.14k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
8.14k
                   is_timestamp_ns_type(t);
1027
8.14k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
21.0k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
21.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
21.0k
                   is_timestamp_ns_type(t);
1027
21.0k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
18.7k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
18.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
18.7k
                   is_timestamp_ns_type(t);
1027
18.7k
        };
1028
1029
149k
        if (can_compare(left_type->get_primitive_type()) &&
1030
149k
            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
119k
            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
119k
        }
1038
1039
149k
        auto compare_type = left_type->get_primitive_type();
1040
149k
        switch (compare_type) {
1041
202
        case TYPE_BOOLEAN:
1042
202
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
5.00k
        case TYPE_DATEV2:
1044
5.00k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
887
        case TYPE_DATETIMEV2:
1046
887
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
883
        case TYPE_TIMESTAMP_NS:
1048
883
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
18
        case TYPE_TIMESTAMPTZ:
1050
18
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
10.0k
        case TYPE_TINYINT:
1052
10.0k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
3.14k
        case TYPE_SMALLINT:
1054
3.14k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
82.5k
        case TYPE_INT:
1056
82.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
12.6k
        case TYPE_BIGINT:
1058
12.6k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
640
        case TYPE_LARGEINT:
1060
640
            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
619
        case TYPE_FLOAT:
1068
619
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
2.98k
        case TYPE_DOUBLE:
1070
2.98k
            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
294
        case TYPE_DECIMAL32:
1075
831
        case TYPE_DECIMAL64:
1076
2.91k
        case TYPE_DECIMAL128I:
1077
2.99k
        case TYPE_DECIMAL256:
1078
2.99k
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
2.99k
                                   col_with_type_and_name_right);
1080
734
        case TYPE_CHAR:
1081
7.57k
        case TYPE_VARCHAR:
1082
22.1k
        case TYPE_STRING:
1083
22.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
158
        default:
1085
158
            return execute_generic(block, result, col_with_type_and_name_left,
1086
158
                                   col_with_type_and_name_right);
1087
149k
        }
1088
0
        return Status::OK();
1089
149k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
43.5k
                        uint32_t result, size_t input_rows_count) const override {
967
43.5k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
43.5k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
43.5k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
43.5k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
43.5k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
43.5k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
43.5k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
43.5k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
43.5k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
43.5k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
43.5k
        right_type->get_primitive_type() == TYPE) {                                             \
981
43.5k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
43.5k
                                                         col_right_ptr, input_rows_count);      \
983
43.5k
    }                                                                                           \
984
43.5k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
43.5k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
43.5k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
43.5k
                                                          col_right_ptr, input_rows_count);     \
988
43.5k
    }
989
990
43.5k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
87.1k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
87.1k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
87.1k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
87.0k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
43.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
43.5k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
43.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
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
43.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
43.5k
                   is_timestamp_ns_type(t);
1027
43.5k
        };
1028
1029
43.5k
        if (can_compare(left_type->get_primitive_type()) &&
1030
43.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
18.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
18.9k
        }
1038
1039
43.5k
        auto compare_type = left_type->get_primitive_type();
1040
43.5k
        switch (compare_type) {
1041
94
        case TYPE_BOOLEAN:
1042
94
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
848
        case TYPE_DATEV2:
1044
848
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
407
        case TYPE_DATETIMEV2:
1046
407
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
197
        case TYPE_TIMESTAMP_NS:
1048
197
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
12
        case TYPE_TIMESTAMPTZ:
1050
12
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
6.10k
        case TYPE_TINYINT:
1052
6.10k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
406
        case TYPE_SMALLINT:
1054
406
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
3.18k
        case TYPE_INT:
1056
3.18k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
6.57k
        case TYPE_BIGINT:
1058
6.57k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
99
        case TYPE_LARGEINT:
1060
99
            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.80k
        case TYPE_UUID:
1066
2.80k
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
73
        case TYPE_FLOAT:
1068
73
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
906
        case TYPE_DOUBLE:
1070
906
            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
114
        case TYPE_DECIMAL32:
1075
221
        case TYPE_DECIMAL64:
1076
1.08k
        case TYPE_DECIMAL128I:
1077
1.09k
        case TYPE_DECIMAL256:
1078
1.09k
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
1.09k
                                   col_with_type_and_name_right);
1080
511
        case TYPE_CHAR:
1081
6.62k
        case TYPE_VARCHAR:
1082
20.6k
        case TYPE_STRING:
1083
20.6k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
33
        default:
1085
33
            return execute_generic(block, result, col_with_type_and_name_left,
1086
33
                                   col_with_type_and_name_right);
1087
43.5k
        }
1088
0
        return Status::OK();
1089
43.5k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
2.99k
                        uint32_t result, size_t input_rows_count) const override {
967
2.99k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
2.99k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
2.99k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
2.99k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
2.99k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
2.99k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
2.99k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
2.99k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
2.99k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
2.99k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
2.99k
        right_type->get_primitive_type() == TYPE) {                                             \
981
2.99k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
2.99k
                                                         col_right_ptr, input_rows_count);      \
983
2.99k
    }                                                                                           \
984
2.99k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
2.99k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
2.99k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
2.99k
                                                          col_right_ptr, input_rows_count);     \
988
2.99k
    }
989
990
2.99k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
5.99k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
5.99k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
5.99k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
5.99k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
2.99k
#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
2.99k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
2.99k
            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
2.99k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
2.99k
                   is_timestamp_ns_type(t);
1027
2.99k
        };
1028
1029
2.99k
        if (can_compare(left_type->get_primitive_type()) &&
1030
2.99k
            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
2.71k
            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
2.71k
        }
1038
1039
2.99k
        auto compare_type = left_type->get_primitive_type();
1040
2.99k
        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
78
        case TYPE_TINYINT:
1052
78
            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.25k
        case TYPE_INT:
1056
1.25k
            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
63
        case TYPE_DOUBLE:
1070
63
            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
67
        case TYPE_VARCHAR:
1082
151
        case TYPE_STRING:
1083
151
            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
2.99k
        }
1088
0
        return Status::OK();
1089
2.99k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
77.6k
                        uint32_t result, size_t input_rows_count) const override {
967
77.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
77.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
77.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
77.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
77.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
77.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
77.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
77.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
77.6k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
77.6k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
77.6k
        right_type->get_primitive_type() == TYPE) {                                             \
981
77.6k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
77.6k
                                                         col_right_ptr, input_rows_count);      \
983
77.6k
    }                                                                                           \
984
77.6k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
77.6k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
77.6k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
77.6k
                                                          col_right_ptr, input_rows_count);     \
988
77.6k
    }
989
990
77.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
155k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
155k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
155k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
155k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
77.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
77.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
77.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
                          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
77.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
77.6k
                   is_timestamp_ns_type(t);
1027
77.6k
        };
1028
1029
77.6k
        if (can_compare(left_type->get_primitive_type()) &&
1030
77.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
76.1k
            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.1k
        }
1038
1039
77.6k
        auto compare_type = left_type->get_primitive_type();
1040
77.6k
        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.07k
        case TYPE_DATEV2:
1044
1.07k
            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
1
        case TYPE_TIMESTAMPTZ:
1050
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
1.31k
        case TYPE_TINYINT:
1052
1.31k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
2.33k
        case TYPE_SMALLINT:
1054
2.33k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
67.6k
        case TYPE_INT:
1056
67.6k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
2.57k
        case TYPE_BIGINT:
1058
2.57k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
256
        case TYPE_LARGEINT:
1060
256
            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
324
        case TYPE_FLOAT:
1068
324
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
543
        case TYPE_DOUBLE:
1070
543
            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
75
        case TYPE_DECIMAL64:
1076
712
        case TYPE_DECIMAL128I:
1077
714
        case TYPE_DECIMAL256:
1078
714
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
714
                                   col_with_type_and_name_right);
1080
14
        case TYPE_CHAR:
1081
121
        case TYPE_VARCHAR:
1082
222
        case TYPE_STRING:
1083
222
            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
77.6k
        }
1088
0
        return Status::OK();
1089
77.6k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
4.59k
                        uint32_t result, size_t input_rows_count) const override {
967
4.59k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
4.59k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
4.59k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
4.59k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
4.59k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
4.59k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
4.59k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
4.59k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
4.59k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
4.59k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
4.59k
        right_type->get_primitive_type() == TYPE) {                                             \
981
4.59k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
4.59k
                                                         col_right_ptr, input_rows_count);      \
983
4.59k
    }                                                                                           \
984
4.59k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
4.59k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
4.59k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
4.59k
                                                          col_right_ptr, input_rows_count);     \
988
4.59k
    }
989
990
4.59k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
9.18k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
9.18k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
9.17k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
9.17k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
4.58k
#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.58k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
4.58k
            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.58k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
4.58k
                   is_timestamp_ns_type(t);
1027
4.58k
        };
1028
1029
4.58k
        if (can_compare(left_type->get_primitive_type()) &&
1030
4.58k
            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.55k
            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.55k
        }
1038
1039
4.58k
        auto compare_type = left_type->get_primitive_type();
1040
4.58k
        switch (compare_type) {
1041
9
        case TYPE_BOOLEAN:
1042
9
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
481
        case TYPE_DATEV2:
1044
481
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
122
        case TYPE_DATETIMEV2:
1046
122
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
405
        case TYPE_TIMESTAMP_NS:
1048
405
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
1
        case TYPE_TIMESTAMPTZ:
1050
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
64
        case TYPE_TINYINT:
1052
64
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
99
        case TYPE_SMALLINT:
1054
99
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
1.38k
        case TYPE_INT:
1056
1.38k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
782
        case TYPE_BIGINT:
1058
782
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
12
        case TYPE_LARGEINT:
1060
12
            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
24
        case TYPE_FLOAT:
1068
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
118
        case TYPE_DOUBLE:
1070
118
            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
54
        case TYPE_DECIMAL64:
1076
112
        case TYPE_DECIMAL128I:
1077
129
        case TYPE_DECIMAL256:
1078
129
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
129
                                   col_with_type_and_name_right);
1080
28
        case TYPE_CHAR:
1081
223
        case TYPE_VARCHAR:
1082
320
        case TYPE_STRING:
1083
320
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
53
        default:
1085
53
            return execute_generic(block, result, col_with_type_and_name_left,
1086
53
                                   col_with_type_and_name_right);
1087
4.58k
        }
1088
0
        return Status::OK();
1089
4.58k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
11.4k
                        uint32_t result, size_t input_rows_count) const override {
967
11.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
11.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
11.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
11.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
11.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
11.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
11.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
11.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
11.4k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
11.4k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
11.4k
        right_type->get_primitive_type() == TYPE) {                                             \
981
11.4k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
11.4k
                                                         col_right_ptr, input_rows_count);      \
983
11.4k
    }                                                                                           \
984
11.4k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
11.4k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
11.4k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
11.4k
                                                          col_right_ptr, input_rows_count);     \
988
11.4k
    }
989
990
11.4k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
22.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
22.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
22.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
22.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
11.3k
#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.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
11.3k
            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.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
11.3k
                   is_timestamp_ns_type(t);
1027
11.3k
        };
1028
1029
11.3k
        if (can_compare(left_type->get_primitive_type()) &&
1030
11.3k
            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.62k
            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.62k
        }
1038
1039
11.3k
        auto compare_type = left_type->get_primitive_type();
1040
11.3k
        switch (compare_type) {
1041
85
        case TYPE_BOOLEAN:
1042
85
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
2.01k
        case TYPE_DATEV2:
1044
2.01k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
300
        case TYPE_DATETIMEV2:
1046
300
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
144
        case TYPE_TIMESTAMP_NS:
1048
144
            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
2.40k
        case TYPE_TINYINT:
1052
2.40k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
169
        case TYPE_SMALLINT:
1054
169
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
1.95k
        case TYPE_INT:
1056
1.95k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
889
        case TYPE_BIGINT:
1058
889
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
267
        case TYPE_LARGEINT:
1060
267
            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.24k
        case TYPE_DOUBLE:
1070
1.24k
            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
167
        case TYPE_DECIMAL32:
1075
350
        case TYPE_DECIMAL64:
1076
774
        case TYPE_DECIMAL128I:
1077
775
        case TYPE_DECIMAL256:
1078
775
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
775
                                   col_with_type_and_name_right);
1080
165
        case TYPE_CHAR:
1081
376
        case TYPE_VARCHAR:
1082
521
        case TYPE_STRING:
1083
521
            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.3k
        }
1088
0
        return Status::OK();
1089
11.3k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
9.81k
                        uint32_t result, size_t input_rows_count) const override {
967
9.81k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
9.81k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
9.81k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
9.81k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
9.81k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
9.81k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
9.81k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
9.81k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
9.81k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
9.81k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
9.81k
        right_type->get_primitive_type() == TYPE) {                                             \
981
9.81k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
9.81k
                                                         col_right_ptr, input_rows_count);      \
983
9.81k
    }                                                                                           \
984
9.81k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
9.81k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
9.81k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
9.81k
                                                          col_right_ptr, input_rows_count);     \
988
9.81k
    }
989
990
9.81k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
19.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
19.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
19.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
19.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
9.81k
#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.81k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
9.81k
            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.81k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
9.81k
                   is_timestamp_ns_type(t);
1027
9.81k
        };
1028
1029
9.81k
        if (can_compare(left_type->get_primitive_type()) &&
1030
9.81k
            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.95k
            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.95k
        }
1038
1039
9.81k
        auto compare_type = left_type->get_primitive_type();
1040
9.81k
        switch (compare_type) {
1041
14
        case TYPE_BOOLEAN:
1042
14
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
518
        case TYPE_DATEV2:
1044
518
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
55
        case TYPE_DATETIMEV2:
1046
55
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
62
        case TYPE_TIMESTAMP_NS:
1048
62
            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
102
        case TYPE_TINYINT:
1052
102
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
134
        case TYPE_SMALLINT:
1054
134
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
7.19k
        case TYPE_INT:
1056
7.19k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
686
        case TYPE_BIGINT:
1058
686
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
6
        case TYPE_LARGEINT:
1060
6
            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
113
        case TYPE_DOUBLE:
1070
113
            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
66
        case TYPE_DECIMAL64:
1076
143
        case TYPE_DECIMAL128I:
1077
155
        case TYPE_DECIMAL256:
1078
155
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
155
                                   col_with_type_and_name_right);
1080
15
        case TYPE_CHAR:
1081
160
        case TYPE_VARCHAR:
1082
281
        case TYPE_STRING:
1083
281
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
42
        default:
1085
42
            return execute_generic(block, result, col_with_type_and_name_left,
1086
42
                                   col_with_type_and_name_right);
1087
9.81k
        }
1088
0
        return Status::OK();
1089
9.81k
    }
1090
};
1091
1092
} // namespace doris