Coverage Report

Created: 2026-10-21 04:53

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
14.3k
                                        PaddedPODArray<UInt8>& c) {
75
14.3k
        size_t size = a.size();
76
14.3k
        const A* __restrict a_pos = a.data();
77
14.3k
        const B* __restrict b_pos = b.data();
78
14.3k
        UInt8* __restrict c_pos = c.data();
79
14.3k
        const A* __restrict a_end = a_pos + size;
80
81
10.3M
        while (a_pos < a_end) {
82
10.3M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
10.3M
            ++a_pos;
84
10.3M
            ++b_pos;
85
10.3M
            ++c_pos;
86
10.3M
        }
87
14.3k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
74
65
                                        PaddedPODArray<UInt8>& c) {
75
65
        size_t size = a.size();
76
65
        const A* __restrict a_pos = a.data();
77
65
        const B* __restrict b_pos = b.data();
78
65
        UInt8* __restrict c_pos = c.data();
79
65
        const A* __restrict a_end = a_pos + size;
80
81
134
        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
65
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
194
                                        PaddedPODArray<UInt8>& c) {
75
194
        size_t size = a.size();
76
194
        const A* __restrict a_pos = a.data();
77
194
        const B* __restrict b_pos = b.data();
78
194
        UInt8* __restrict c_pos = c.data();
79
194
        const A* __restrict a_end = a_pos + size;
80
81
1.32k
        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
194
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
201
                                        PaddedPODArray<UInt8>& c) {
75
201
        size_t size = a.size();
76
201
        const A* __restrict a_pos = a.data();
77
201
        const B* __restrict b_pos = b.data();
78
201
        UInt8* __restrict c_pos = c.data();
79
201
        const A* __restrict a_end = a_pos + size;
80
81
418
        while (a_pos < a_end) {
82
217
            *c_pos = Op::apply(*a_pos, *b_pos);
83
217
            ++a_pos;
84
217
            ++b_pos;
85
217
            ++c_pos;
86
217
        }
87
201
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
117
                                        PaddedPODArray<UInt8>& c) {
75
117
        size_t size = a.size();
76
117
        const A* __restrict a_pos = a.data();
77
117
        const B* __restrict b_pos = b.data();
78
117
        UInt8* __restrict c_pos = c.data();
79
117
        const A* __restrict a_end = a_pos + size;
80
81
293
        while (a_pos < a_end) {
82
176
            *c_pos = Op::apply(*a_pos, *b_pos);
83
176
            ++a_pos;
84
176
            ++b_pos;
85
176
            ++c_pos;
86
176
        }
87
117
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_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
14
        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
4
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
187
                                        PaddedPODArray<UInt8>& c) {
75
187
        size_t size = a.size();
76
187
        const A* __restrict a_pos = a.data();
77
187
        const B* __restrict b_pos = b.data();
78
187
        UInt8* __restrict c_pos = c.data();
79
187
        const A* __restrict a_end = a_pos + size;
80
81
515
        while (a_pos < a_end) {
82
328
            *c_pos = Op::apply(*a_pos, *b_pos);
83
328
            ++a_pos;
84
328
            ++b_pos;
85
328
            ++c_pos;
86
328
        }
87
187
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
92
                                        PaddedPODArray<UInt8>& c) {
75
92
        size_t size = a.size();
76
92
        const A* __restrict a_pos = a.data();
77
92
        const B* __restrict b_pos = b.data();
78
92
        UInt8* __restrict c_pos = c.data();
79
92
        const A* __restrict a_end = a_pos + size;
80
81
184
        while (a_pos < a_end) {
82
92
            *c_pos = Op::apply(*a_pos, *b_pos);
83
92
            ++a_pos;
84
92
            ++b_pos;
85
92
            ++c_pos;
86
92
        }
87
92
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
1.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
19.9k
        while (a_pos < a_end) {
82
18.9k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
18.9k
            ++a_pos;
84
18.9k
            ++b_pos;
85
18.9k
            ++c_pos;
86
18.9k
        }
87
1.05k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
192
                                        PaddedPODArray<UInt8>& c) {
75
192
        size_t size = a.size();
76
192
        const A* __restrict a_pos = a.data();
77
192
        const B* __restrict b_pos = b.data();
78
192
        UInt8* __restrict c_pos = c.data();
79
192
        const A* __restrict a_end = a_pos + size;
80
81
1.62k
        while (a_pos < a_end) {
82
1.43k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.43k
            ++a_pos;
84
1.43k
            ++b_pos;
85
1.43k
            ++c_pos;
86
1.43k
        }
87
192
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_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
100
        while (a_pos < a_end) {
82
50
            *c_pos = Op::apply(*a_pos, *b_pos);
83
50
            ++a_pos;
84
50
            ++b_pos;
85
50
            ++c_pos;
86
50
        }
87
50
    }
_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
776
                                        PaddedPODArray<UInt8>& c) {
75
776
        size_t size = a.size();
76
776
        const A* __restrict a_pos = a.data();
77
776
        const B* __restrict b_pos = b.data();
78
776
        UInt8* __restrict c_pos = c.data();
79
776
        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
776
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
70
                                        PaddedPODArray<UInt8>& c) {
75
70
        size_t size = a.size();
76
70
        const A* __restrict a_pos = a.data();
77
70
        const B* __restrict b_pos = b.data();
78
70
        UInt8* __restrict c_pos = c.data();
79
70
        const A* __restrict a_end = a_pos + size;
80
81
159
        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
70
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
87
                                        PaddedPODArray<UInt8>& c) {
75
87
        size_t size = a.size();
76
87
        const A* __restrict a_pos = a.data();
77
87
        const B* __restrict b_pos = b.data();
78
87
        UInt8* __restrict c_pos = c.data();
79
87
        const A* __restrict a_end = a_pos + size;
80
81
245
        while (a_pos < a_end) {
82
158
            *c_pos = Op::apply(*a_pos, *b_pos);
83
158
            ++a_pos;
84
158
            ++b_pos;
85
158
            ++c_pos;
86
158
        }
87
87
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
4
                                        PaddedPODArray<UInt8>& c) {
75
4
        size_t size = a.size();
76
4
        const A* __restrict a_pos = a.data();
77
4
        const B* __restrict b_pos = b.data();
78
4
        UInt8* __restrict c_pos = c.data();
79
4
        const A* __restrict a_end = a_pos + size;
80
81
8
        while (a_pos < a_end) {
82
4
            *c_pos = Op::apply(*a_pos, *b_pos);
83
4
            ++a_pos;
84
4
            ++b_pos;
85
4
            ++c_pos;
86
4
        }
87
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
39
                                        PaddedPODArray<UInt8>& c) {
75
39
        size_t size = a.size();
76
39
        const A* __restrict a_pos = a.data();
77
39
        const B* __restrict b_pos = b.data();
78
39
        UInt8* __restrict c_pos = c.data();
79
39
        const A* __restrict a_end = a_pos + size;
80
81
108
        while (a_pos < a_end) {
82
69
            *c_pos = Op::apply(*a_pos, *b_pos);
83
69
            ++a_pos;
84
69
            ++b_pos;
85
69
            ++c_pos;
86
69
        }
87
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
8
                                        PaddedPODArray<UInt8>& c) {
75
8
        size_t size = a.size();
76
8
        const A* __restrict a_pos = a.data();
77
8
        const B* __restrict b_pos = b.data();
78
8
        UInt8* __restrict c_pos = c.data();
79
8
        const A* __restrict a_end = a_pos + size;
80
81
16
        while (a_pos < a_end) {
82
8
            *c_pos = Op::apply(*a_pos, *b_pos);
83
8
            ++a_pos;
84
8
            ++b_pos;
85
8
            ++c_pos;
86
8
        }
87
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
56
                                        PaddedPODArray<UInt8>& c) {
75
56
        size_t size = a.size();
76
56
        const A* __restrict a_pos = a.data();
77
56
        const B* __restrict b_pos = b.data();
78
56
        UInt8* __restrict c_pos = c.data();
79
56
        const A* __restrict a_end = a_pos + size;
80
81
252
        while (a_pos < a_end) {
82
196
            *c_pos = Op::apply(*a_pos, *b_pos);
83
196
            ++a_pos;
84
196
            ++b_pos;
85
196
            ++c_pos;
86
196
        }
87
56
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
2.57k
                                        PaddedPODArray<UInt8>& c) {
75
2.57k
        size_t size = a.size();
76
2.57k
        const A* __restrict a_pos = a.data();
77
2.57k
        const B* __restrict b_pos = b.data();
78
2.57k
        UInt8* __restrict c_pos = c.data();
79
2.57k
        const A* __restrict a_end = a_pos + size;
80
81
1.75M
        while (a_pos < a_end) {
82
1.75M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.75M
            ++a_pos;
84
1.75M
            ++b_pos;
85
1.75M
            ++c_pos;
86
1.75M
        }
87
2.57k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
403
                                        PaddedPODArray<UInt8>& c) {
75
403
        size_t size = a.size();
76
403
        const A* __restrict a_pos = a.data();
77
403
        const B* __restrict b_pos = b.data();
78
403
        UInt8* __restrict c_pos = c.data();
79
403
        const A* __restrict a_end = a_pos + size;
80
81
7.69k
        while (a_pos < a_end) {
82
7.28k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
7.28k
            ++a_pos;
84
7.28k
            ++b_pos;
85
7.28k
            ++c_pos;
86
7.28k
        }
87
403
    }
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.56k
                                        PaddedPODArray<UInt8>& c) {
75
1.56k
        size_t size = a.size();
76
1.56k
        const A* __restrict a_pos = a.data();
77
1.56k
        const B* __restrict b_pos = b.data();
78
1.56k
        UInt8* __restrict c_pos = c.data();
79
1.56k
        const A* __restrict a_end = a_pos + size;
80
81
6.10M
        while (a_pos < a_end) {
82
6.10M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
6.10M
            ++a_pos;
84
6.10M
            ++b_pos;
85
6.10M
            ++c_pos;
86
6.10M
        }
87
1.56k
    }
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
3
                                        PaddedPODArray<UInt8>& c) {
75
3
        size_t size = a.size();
76
3
        const A* __restrict a_pos = a.data();
77
3
        const B* __restrict b_pos = b.data();
78
3
        UInt8* __restrict c_pos = c.data();
79
3
        const A* __restrict a_end = a_pos + size;
80
81
12
        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
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
82
                                        PaddedPODArray<UInt8>& c) {
75
82
        size_t size = a.size();
76
82
        const A* __restrict a_pos = a.data();
77
82
        const B* __restrict b_pos = b.data();
78
82
        UInt8* __restrict c_pos = c.data();
79
82
        const A* __restrict a_end = a_pos + size;
80
81
406
        while (a_pos < a_end) {
82
324
            *c_pos = Op::apply(*a_pos, *b_pos);
83
324
            ++a_pos;
84
324
            ++b_pos;
85
324
            ++c_pos;
86
324
        }
87
82
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
129
                                        PaddedPODArray<UInt8>& c) {
75
129
        size_t size = a.size();
76
129
        const A* __restrict a_pos = a.data();
77
129
        const B* __restrict b_pos = b.data();
78
129
        UInt8* __restrict c_pos = c.data();
79
129
        const A* __restrict a_end = a_pos + size;
80
81
386
        while (a_pos < a_end) {
82
257
            *c_pos = Op::apply(*a_pos, *b_pos);
83
257
            ++a_pos;
84
257
            ++b_pos;
85
257
            ++c_pos;
86
257
        }
87
129
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
71
                                        PaddedPODArray<UInt8>& c) {
75
71
        size_t size = a.size();
76
71
        const A* __restrict a_pos = a.data();
77
71
        const B* __restrict b_pos = b.data();
78
71
        UInt8* __restrict c_pos = c.data();
79
71
        const A* __restrict a_end = a_pos + size;
80
81
8.57k
        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
71
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
179
                                        PaddedPODArray<UInt8>& c) {
75
179
        size_t size = a.size();
76
179
        const A* __restrict a_pos = a.data();
77
179
        const B* __restrict b_pos = b.data();
78
179
        UInt8* __restrict c_pos = c.data();
79
179
        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
179
    }
_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
36
                                        PaddedPODArray<UInt8>& c) {
75
36
        size_t size = a.size();
76
36
        const A* __restrict a_pos = a.data();
77
36
        const B* __restrict b_pos = b.data();
78
36
        UInt8* __restrict c_pos = c.data();
79
36
        const A* __restrict a_end = a_pos + size;
80
81
125
        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
36
    }
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
3
                                        PaddedPODArray<UInt8>& c) {
75
3
        size_t size = a.size();
76
3
        const A* __restrict a_pos = a.data();
77
3
        const B* __restrict b_pos = b.data();
78
3
        UInt8* __restrict c_pos = c.data();
79
3
        const A* __restrict a_end = a_pos + size;
80
81
12
        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
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
16
                                        PaddedPODArray<UInt8>& c) {
75
16
        size_t size = a.size();
76
16
        const A* __restrict a_pos = a.data();
77
16
        const B* __restrict b_pos = b.data();
78
16
        UInt8* __restrict c_pos = c.data();
79
16
        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
16
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_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
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
24
    }
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
25
                                        PaddedPODArray<UInt8>& c) {
75
25
        size_t size = a.size();
76
25
        const A* __restrict a_pos = a.data();
77
25
        const B* __restrict b_pos = b.data();
78
25
        UInt8* __restrict c_pos = c.data();
79
25
        const A* __restrict a_end = a_pos + size;
80
81
70
        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
25
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
74
86
                                        PaddedPODArray<UInt8>& c) {
75
86
        size_t size = a.size();
76
86
        const A* __restrict a_pos = a.data();
77
86
        const B* __restrict b_pos = b.data();
78
86
        UInt8* __restrict c_pos = c.data();
79
86
        const A* __restrict a_end = a_pos + size;
80
81
346
        while (a_pos < a_end) {
82
260
            *c_pos = Op::apply(*a_pos, *b_pos);
83
260
            ++a_pos;
84
260
            ++b_pos;
85
260
            ++c_pos;
86
260
        }
87
86
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
2.15k
                                        PaddedPODArray<UInt8>& c) {
75
2.15k
        size_t size = a.size();
76
2.15k
        const A* __restrict a_pos = a.data();
77
2.15k
        const B* __restrict b_pos = b.data();
78
2.15k
        UInt8* __restrict c_pos = c.data();
79
2.15k
        const A* __restrict a_end = a_pos + size;
80
81
1.22M
        while (a_pos < a_end) {
82
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
83
1.22M
            ++a_pos;
84
1.22M
            ++b_pos;
85
1.22M
            ++c_pos;
86
1.22M
        }
87
2.15k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
74
234
                                        PaddedPODArray<UInt8>& c) {
75
234
        size_t size = a.size();
76
234
        const A* __restrict a_pos = a.data();
77
234
        const B* __restrict b_pos = b.data();
78
234
        UInt8* __restrict c_pos = c.data();
79
234
        const A* __restrict a_end = a_pos + size;
80
81
816
        while (a_pos < a_end) {
82
582
            *c_pos = Op::apply(*a_pos, *b_pos);
83
582
            ++a_pos;
84
582
            ++b_pos;
85
582
            ++c_pos;
86
582
        }
87
234
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
112
                                        PaddedPODArray<UInt8>& c) {
75
112
        size_t size = a.size();
76
112
        const A* __restrict a_pos = a.data();
77
112
        const B* __restrict b_pos = b.data();
78
112
        UInt8* __restrict c_pos = c.data();
79
112
        const A* __restrict a_end = a_pos + size;
80
81
235
        while (a_pos < a_end) {
82
123
            *c_pos = Op::apply(*a_pos, *b_pos);
83
123
            ++a_pos;
84
123
            ++b_pos;
85
123
            ++c_pos;
86
123
        }
87
112
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
74
3
                                        PaddedPODArray<UInt8>& c) {
75
3
        size_t size = a.size();
76
3
        const A* __restrict a_pos = a.data();
77
3
        const B* __restrict b_pos = b.data();
78
3
        UInt8* __restrict c_pos = c.data();
79
3
        const A* __restrict a_end = a_pos + size;
80
81
12
        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
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
228
                                        PaddedPODArray<UInt8>& c) {
75
228
        size_t size = a.size();
76
228
        const A* __restrict a_pos = a.data();
77
228
        const B* __restrict b_pos = b.data();
78
228
        UInt8* __restrict c_pos = c.data();
79
228
        const A* __restrict a_end = a_pos + size;
80
81
630
        while (a_pos < a_end) {
82
402
            *c_pos = Op::apply(*a_pos, *b_pos);
83
402
            ++a_pos;
84
402
            ++b_pos;
85
402
            ++c_pos;
86
402
        }
87
228
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
157
                                        PaddedPODArray<UInt8>& c) {
75
157
        size_t size = a.size();
76
157
        const A* __restrict a_pos = a.data();
77
157
        const B* __restrict b_pos = b.data();
78
157
        UInt8* __restrict c_pos = c.data();
79
157
        const A* __restrict a_end = a_pos + size;
80
81
489
        while (a_pos < a_end) {
82
332
            *c_pos = Op::apply(*a_pos, *b_pos);
83
332
            ++a_pos;
84
332
            ++b_pos;
85
332
            ++c_pos;
86
332
        }
87
157
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
917
                                        PaddedPODArray<UInt8>& c) {
75
917
        size_t size = a.size();
76
917
        const A* __restrict a_pos = a.data();
77
917
        const B* __restrict b_pos = b.data();
78
917
        UInt8* __restrict c_pos = c.data();
79
917
        const A* __restrict a_end = a_pos + size;
80
81
18.9k
        while (a_pos < a_end) {
82
17.9k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
17.9k
            ++a_pos;
84
17.9k
            ++b_pos;
85
17.9k
            ++c_pos;
86
17.9k
        }
87
917
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
267
                                        PaddedPODArray<UInt8>& c) {
75
267
        size_t size = a.size();
76
267
        const A* __restrict a_pos = a.data();
77
267
        const B* __restrict b_pos = b.data();
78
267
        UInt8* __restrict c_pos = c.data();
79
267
        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
267
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
138
                                        PaddedPODArray<UInt8>& c) {
75
138
        size_t size = a.size();
76
138
        const A* __restrict a_pos = a.data();
77
138
        const B* __restrict b_pos = b.data();
78
138
        UInt8* __restrict c_pos = c.data();
79
138
        const A* __restrict a_end = a_pos + size;
80
81
450
        while (a_pos < a_end) {
82
312
            *c_pos = Op::apply(*a_pos, *b_pos);
83
312
            ++a_pos;
84
312
            ++b_pos;
85
312
            ++c_pos;
86
312
        }
87
138
    }
_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
131
                                        PaddedPODArray<UInt8>& c) {
75
131
        size_t size = a.size();
76
131
        const A* __restrict a_pos = a.data();
77
131
        const B* __restrict b_pos = b.data();
78
131
        UInt8* __restrict c_pos = c.data();
79
131
        const A* __restrict a_end = a_pos + size;
80
81
455
        while (a_pos < a_end) {
82
324
            *c_pos = Op::apply(*a_pos, *b_pos);
83
324
            ++a_pos;
84
324
            ++b_pos;
85
324
            ++c_pos;
86
324
        }
87
131
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
133
                                        PaddedPODArray<UInt8>& c) {
75
133
        size_t size = a.size();
76
133
        const A* __restrict a_pos = a.data();
77
133
        const B* __restrict b_pos = b.data();
78
133
        UInt8* __restrict c_pos = c.data();
79
133
        const A* __restrict a_end = a_pos + size;
80
81
481
        while (a_pos < a_end) {
82
348
            *c_pos = Op::apply(*a_pos, *b_pos);
83
348
            ++a_pos;
84
348
            ++b_pos;
85
348
            ++c_pos;
86
348
        }
87
133
    }
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
398
                                        PaddedPODArray<UInt8>& c) {
75
398
        size_t size = a.size();
76
398
        const A* __restrict a_pos = a.data();
77
398
        const B* __restrict b_pos = b.data();
78
398
        UInt8* __restrict c_pos = c.data();
79
398
        const A* __restrict a_end = a_pos + size;
80
81
6.00k
        while (a_pos < a_end) {
82
5.60k
            *c_pos = Op::apply(*a_pos, *b_pos);
83
5.60k
            ++a_pos;
84
5.60k
            ++b_pos;
85
5.60k
            ++c_pos;
86
5.60k
        }
87
398
    }
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
3
                                        PaddedPODArray<UInt8>& c) {
75
3
        size_t size = a.size();
76
3
        const A* __restrict a_pos = a.data();
77
3
        const B* __restrict b_pos = b.data();
78
3
        UInt8* __restrict c_pos = c.data();
79
3
        const A* __restrict a_end = a_pos + size;
80
81
12
        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
3
    }
_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
36
                                        PaddedPODArray<UInt8>& c) {
75
36
        size_t size = a.size();
76
36
        const A* __restrict a_pos = a.data();
77
36
        const B* __restrict b_pos = b.data();
78
36
        UInt8* __restrict c_pos = c.data();
79
36
        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
36
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
74
37
                                        PaddedPODArray<UInt8>& c) {
75
37
        size_t size = a.size();
76
37
        const A* __restrict a_pos = a.data();
77
37
        const B* __restrict b_pos = b.data();
78
37
        UInt8* __restrict c_pos = c.data();
79
37
        const A* __restrict a_end = a_pos + size;
80
81
82
        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
37
    }
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
58.3k
                                          PaddedPODArray<UInt8>& c) {
91
58.3k
        size_t size = a.size();
92
58.3k
        const A* __restrict a_pos = a.data();
93
58.3k
        UInt8* __restrict c_pos = c.data();
94
58.3k
        const A* __restrict a_end = a_pos + size;
95
96
38.6M
        while (a_pos < a_end) {
97
38.5M
            *c_pos = Op::apply(*a_pos, b);
98
38.5M
            ++a_pos;
99
38.5M
            ++c_pos;
100
38.5M
        }
101
58.3k
    }
_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
187
        while (a_pos < a_end) {
97
157
            *c_pos = Op::apply(*a_pos, b);
98
157
            ++a_pos;
99
157
            ++c_pos;
100
157
        }
101
30
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
475
                                          PaddedPODArray<UInt8>& c) {
91
475
        size_t size = a.size();
92
475
        const A* __restrict a_pos = a.data();
93
475
        UInt8* __restrict c_pos = c.data();
94
475
        const A* __restrict a_end = a_pos + size;
95
96
205k
        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
475
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
188
                                          PaddedPODArray<UInt8>& c) {
91
188
        size_t size = a.size();
92
188
        const A* __restrict a_pos = a.data();
93
188
        UInt8* __restrict c_pos = c.data();
94
188
        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
188
    }
_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.97k
                                          PaddedPODArray<UInt8>& c) {
91
5.97k
        size_t size = a.size();
92
5.97k
        const A* __restrict a_pos = a.data();
93
5.97k
        UInt8* __restrict c_pos = c.data();
94
5.97k
        const A* __restrict a_end = a_pos + size;
95
96
8.94M
        while (a_pos < a_end) {
97
8.94M
            *c_pos = Op::apply(*a_pos, b);
98
8.94M
            ++a_pos;
99
8.94M
            ++c_pos;
100
8.94M
        }
101
5.97k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
305
                                          PaddedPODArray<UInt8>& c) {
91
305
        size_t size = a.size();
92
305
        const A* __restrict a_pos = a.data();
93
305
        UInt8* __restrict c_pos = c.data();
94
305
        const A* __restrict a_end = a_pos + size;
95
96
101k
        while (a_pos < a_end) {
97
100k
            *c_pos = Op::apply(*a_pos, b);
98
100k
            ++a_pos;
99
100k
            ++c_pos;
100
100k
        }
101
305
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2.10k
                                          PaddedPODArray<UInt8>& c) {
91
2.10k
        size_t size = a.size();
92
2.10k
        const A* __restrict a_pos = a.data();
93
2.10k
        UInt8* __restrict c_pos = c.data();
94
2.10k
        const A* __restrict a_end = a_pos + size;
95
96
186k
        while (a_pos < a_end) {
97
184k
            *c_pos = Op::apply(*a_pos, b);
98
184k
            ++a_pos;
99
184k
            ++c_pos;
100
184k
        }
101
2.10k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
7.33k
                                          PaddedPODArray<UInt8>& c) {
91
7.33k
        size_t size = a.size();
92
7.33k
        const A* __restrict a_pos = a.data();
93
7.33k
        UInt8* __restrict c_pos = c.data();
94
7.33k
        const A* __restrict a_end = a_pos + size;
95
96
5.49M
        while (a_pos < a_end) {
97
5.48M
            *c_pos = Op::apply(*a_pos, b);
98
5.48M
            ++a_pos;
99
5.48M
            ++c_pos;
100
5.48M
        }
101
7.33k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_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
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
41
    }
_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
639
                                          PaddedPODArray<UInt8>& c) {
91
639
        size_t size = a.size();
92
639
        const A* __restrict a_pos = a.data();
93
639
        UInt8* __restrict c_pos = c.data();
94
639
        const A* __restrict a_end = a_pos + size;
95
96
713k
        while (a_pos < a_end) {
97
712k
            *c_pos = Op::apply(*a_pos, b);
98
712k
            ++a_pos;
99
712k
            ++c_pos;
100
712k
        }
101
639
    }
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
276
                                          PaddedPODArray<UInt8>& c) {
91
276
        size_t size = a.size();
92
276
        const A* __restrict a_pos = a.data();
93
276
        UInt8* __restrict c_pos = c.data();
94
276
        const A* __restrict a_end = a_pos + size;
95
96
1.99k
        while (a_pos < a_end) {
97
1.71k
            *c_pos = Op::apply(*a_pos, b);
98
1.71k
            ++a_pos;
99
1.71k
            ++c_pos;
100
1.71k
        }
101
276
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
480
                                          PaddedPODArray<UInt8>& c) {
91
480
        size_t size = a.size();
92
480
        const A* __restrict a_pos = a.data();
93
480
        UInt8* __restrict c_pos = c.data();
94
480
        const A* __restrict a_end = a_pos + size;
95
96
5.66k
        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
480
    }
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
365
                                          PaddedPODArray<UInt8>& c) {
91
365
        size_t size = a.size();
92
365
        const A* __restrict a_pos = a.data();
93
365
        UInt8* __restrict c_pos = c.data();
94
365
        const A* __restrict a_end = a_pos + size;
95
96
1.67M
        while (a_pos < a_end) {
97
1.67M
            *c_pos = Op::apply(*a_pos, b);
98
1.67M
            ++a_pos;
99
1.67M
            ++c_pos;
100
1.67M
        }
101
365
    }
_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.55k
                                          PaddedPODArray<UInt8>& c) {
91
1.55k
        size_t size = a.size();
92
1.55k
        const A* __restrict a_pos = a.data();
93
1.55k
        UInt8* __restrict c_pos = c.data();
94
1.55k
        const A* __restrict a_end = a_pos + size;
95
96
13.8k
        while (a_pos < a_end) {
97
12.3k
            *c_pos = Op::apply(*a_pos, b);
98
12.3k
            ++a_pos;
99
12.3k
            ++c_pos;
100
12.3k
        }
101
1.55k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2.13k
                                          PaddedPODArray<UInt8>& c) {
91
2.13k
        size_t size = a.size();
92
2.13k
        const A* __restrict a_pos = a.data();
93
2.13k
        UInt8* __restrict c_pos = c.data();
94
2.13k
        const A* __restrict a_end = a_pos + size;
95
96
5.88k
        while (a_pos < a_end) {
97
3.75k
            *c_pos = Op::apply(*a_pos, b);
98
3.75k
            ++a_pos;
99
3.75k
            ++c_pos;
100
3.75k
        }
101
2.13k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
2.01k
                                          PaddedPODArray<UInt8>& c) {
91
2.01k
        size_t size = a.size();
92
2.01k
        const A* __restrict a_pos = a.data();
93
2.01k
        UInt8* __restrict c_pos = c.data();
94
2.01k
        const A* __restrict a_end = a_pos + size;
95
96
7.36k
        while (a_pos < a_end) {
97
5.35k
            *c_pos = Op::apply(*a_pos, b);
98
5.35k
            ++a_pos;
99
5.35k
            ++c_pos;
100
5.35k
        }
101
2.01k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
242
                                          PaddedPODArray<UInt8>& c) {
91
242
        size_t size = a.size();
92
242
        const A* __restrict a_pos = a.data();
93
242
        UInt8* __restrict c_pos = c.data();
94
242
        const A* __restrict a_end = a_pos + size;
95
96
1.20k
        while (a_pos < a_end) {
97
959
            *c_pos = Op::apply(*a_pos, b);
98
959
            ++a_pos;
99
959
            ++c_pos;
100
959
        }
101
242
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
10.4k
                                          PaddedPODArray<UInt8>& c) {
91
10.4k
        size_t size = a.size();
92
10.4k
        const A* __restrict a_pos = a.data();
93
10.4k
        UInt8* __restrict c_pos = c.data();
94
10.4k
        const A* __restrict a_end = a_pos + size;
95
96
5.27M
        while (a_pos < a_end) {
97
5.26M
            *c_pos = Op::apply(*a_pos, b);
98
5.26M
            ++a_pos;
99
5.26M
            ++c_pos;
100
5.26M
        }
101
10.4k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
4.64k
                                          PaddedPODArray<UInt8>& c) {
91
4.64k
        size_t size = a.size();
92
4.64k
        const A* __restrict a_pos = a.data();
93
4.64k
        UInt8* __restrict c_pos = c.data();
94
4.64k
        const A* __restrict a_end = a_pos + size;
95
96
977k
        while (a_pos < a_end) {
97
972k
            *c_pos = Op::apply(*a_pos, b);
98
972k
            ++a_pos;
99
972k
            ++c_pos;
100
972k
        }
101
4.64k
    }
_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.2k
        while (a_pos < a_end) {
97
97.3k
            *c_pos = Op::apply(*a_pos, b);
98
97.3k
            ++a_pos;
99
97.3k
            ++c_pos;
100
97.3k
        }
101
1.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
217
                                          PaddedPODArray<UInt8>& c) {
91
217
        size_t size = a.size();
92
217
        const A* __restrict a_pos = a.data();
93
217
        UInt8* __restrict c_pos = c.data();
94
217
        const A* __restrict a_end = a_pos + size;
95
96
1.82k
        while (a_pos < a_end) {
97
1.60k
            *c_pos = Op::apply(*a_pos, b);
98
1.60k
            ++a_pos;
99
1.60k
            ++c_pos;
100
1.60k
        }
101
217
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
98
                                          PaddedPODArray<UInt8>& c) {
91
98
        size_t size = a.size();
92
98
        const A* __restrict a_pos = a.data();
93
98
        UInt8* __restrict c_pos = c.data();
94
98
        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
98
    }
_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
509
                                          PaddedPODArray<UInt8>& c) {
91
509
        size_t size = a.size();
92
509
        const A* __restrict a_pos = a.data();
93
509
        UInt8* __restrict c_pos = c.data();
94
509
        const A* __restrict a_end = a_pos + size;
95
96
7.46k
        while (a_pos < a_end) {
97
6.95k
            *c_pos = Op::apply(*a_pos, b);
98
6.95k
            ++a_pos;
99
6.95k
            ++c_pos;
100
6.95k
        }
101
509
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
1.00k
                                          PaddedPODArray<UInt8>& c) {
91
1.00k
        size_t size = a.size();
92
1.00k
        const A* __restrict a_pos = a.data();
93
1.00k
        UInt8* __restrict c_pos = c.data();
94
1.00k
        const A* __restrict a_end = a_pos + size;
95
96
609k
        while (a_pos < a_end) {
97
608k
            *c_pos = Op::apply(*a_pos, b);
98
608k
            ++a_pos;
99
608k
            ++c_pos;
100
608k
        }
101
1.00k
    }
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
23
                                          PaddedPODArray<UInt8>& c) {
91
23
        size_t size = a.size();
92
23
        const A* __restrict a_pos = a.data();
93
23
        UInt8* __restrict c_pos = c.data();
94
23
        const A* __restrict a_end = a_pos + size;
95
96
93.1k
        while (a_pos < a_end) {
97
93.0k
            *c_pos = Op::apply(*a_pos, b);
98
93.0k
            ++a_pos;
99
93.0k
            ++c_pos;
100
93.0k
        }
101
23
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
90
42
                                          PaddedPODArray<UInt8>& c) {
91
42
        size_t size = a.size();
92
42
        const A* __restrict a_pos = a.data();
93
42
        UInt8* __restrict c_pos = c.data();
94
42
        const A* __restrict a_end = a_pos + size;
95
96
123k
        while (a_pos < a_end) {
97
123k
            *c_pos = Op::apply(*a_pos, b);
98
123k
            ++a_pos;
99
123k
            ++c_pos;
100
123k
        }
101
42
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
463
                                          PaddedPODArray<UInt8>& c) {
91
463
        size_t size = a.size();
92
463
        const A* __restrict a_pos = a.data();
93
463
        UInt8* __restrict c_pos = c.data();
94
463
        const A* __restrict a_end = a_pos + size;
95
96
1.84M
        while (a_pos < a_end) {
97
1.84M
            *c_pos = Op::apply(*a_pos, b);
98
1.84M
            ++a_pos;
99
1.84M
            ++c_pos;
100
1.84M
        }
101
463
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
185
                                          PaddedPODArray<UInt8>& c) {
91
185
        size_t size = a.size();
92
185
        const A* __restrict a_pos = a.data();
93
185
        UInt8* __restrict c_pos = c.data();
94
185
        const A* __restrict a_end = a_pos + size;
95
96
738k
        while (a_pos < a_end) {
97
738k
            *c_pos = Op::apply(*a_pos, b);
98
738k
            ++a_pos;
99
738k
            ++c_pos;
100
738k
        }
101
185
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
117
                                          PaddedPODArray<UInt8>& c) {
91
117
        size_t size = a.size();
92
117
        const A* __restrict a_pos = a.data();
93
117
        UInt8* __restrict c_pos = c.data();
94
117
        const A* __restrict a_end = a_pos + size;
95
96
427
        while (a_pos < a_end) {
97
310
            *c_pos = Op::apply(*a_pos, b);
98
310
            ++a_pos;
99
310
            ++c_pos;
100
310
        }
101
117
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
90
78
                                          PaddedPODArray<UInt8>& c) {
91
78
        size_t size = a.size();
92
78
        const A* __restrict a_pos = a.data();
93
78
        UInt8* __restrict c_pos = c.data();
94
78
        const A* __restrict a_end = a_pos + size;
95
96
390
        while (a_pos < a_end) {
97
312
            *c_pos = Op::apply(*a_pos, b);
98
312
            ++a_pos;
99
312
            ++c_pos;
100
312
        }
101
78
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_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
106
        while (a_pos < a_end) {
97
61
            *c_pos = Op::apply(*a_pos, b);
98
61
            ++a_pos;
99
61
            ++c_pos;
100
61
        }
101
45
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
90
37
                                          PaddedPODArray<UInt8>& c) {
91
37
        size_t size = a.size();
92
37
        const A* __restrict a_pos = a.data();
93
37
        UInt8* __restrict c_pos = c.data();
94
37
        const A* __restrict a_end = a_pos + size;
95
96
84
        while (a_pos < a_end) {
97
47
            *c_pos = Op::apply(*a_pos, b);
98
47
            ++a_pos;
99
47
            ++c_pos;
100
47
        }
101
37
    }
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
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
145k
        while (a_pos < a_end) {
97
145k
            *c_pos = Op::apply(*a_pos, b);
98
145k
            ++a_pos;
99
145k
            ++c_pos;
100
145k
        }
101
45
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
55
                                          PaddedPODArray<UInt8>& c) {
91
55
        size_t size = a.size();
92
55
        const A* __restrict a_pos = a.data();
93
55
        UInt8* __restrict c_pos = c.data();
94
55
        const A* __restrict a_end = a_pos + size;
95
96
147k
        while (a_pos < a_end) {
97
147k
            *c_pos = Op::apply(*a_pos, b);
98
147k
            ++a_pos;
99
147k
            ++c_pos;
100
147k
        }
101
55
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
56
                                          PaddedPODArray<UInt8>& c) {
91
56
        size_t size = a.size();
92
56
        const A* __restrict a_pos = a.data();
93
56
        UInt8* __restrict c_pos = c.data();
94
56
        const A* __restrict a_end = a_pos + size;
95
96
160k
        while (a_pos < a_end) {
97
160k
            *c_pos = Op::apply(*a_pos, b);
98
160k
            ++a_pos;
99
160k
            ++c_pos;
100
160k
        }
101
56
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
69
                                          PaddedPODArray<UInt8>& c) {
91
69
        size_t size = a.size();
92
69
        const A* __restrict a_pos = a.data();
93
69
        UInt8* __restrict c_pos = c.data();
94
69
        const A* __restrict a_end = a_pos + size;
95
96
152k
        while (a_pos < a_end) {
97
152k
            *c_pos = Op::apply(*a_pos, b);
98
152k
            ++a_pos;
99
152k
            ++c_pos;
100
152k
        }
101
69
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
886
                                          PaddedPODArray<UInt8>& c) {
91
886
        size_t size = a.size();
92
886
        const A* __restrict a_pos = a.data();
93
886
        UInt8* __restrict c_pos = c.data();
94
886
        const A* __restrict a_end = a_pos + size;
95
96
2.38M
        while (a_pos < a_end) {
97
2.38M
            *c_pos = Op::apply(*a_pos, b);
98
2.38M
            ++a_pos;
99
2.38M
            ++c_pos;
100
2.38M
        }
101
886
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
5.92k
                                          PaddedPODArray<UInt8>& c) {
91
5.92k
        size_t size = a.size();
92
5.92k
        const A* __restrict a_pos = a.data();
93
5.92k
        UInt8* __restrict c_pos = c.data();
94
5.92k
        const A* __restrict a_end = a_pos + size;
95
96
6.34M
        while (a_pos < a_end) {
97
6.34M
            *c_pos = Op::apply(*a_pos, b);
98
6.34M
            ++a_pos;
99
6.34M
            ++c_pos;
100
6.34M
        }
101
5.92k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
844
                                          PaddedPODArray<UInt8>& c) {
91
844
        size_t size = a.size();
92
844
        const A* __restrict a_pos = a.data();
93
844
        UInt8* __restrict c_pos = c.data();
94
844
        const A* __restrict a_end = a_pos + size;
95
96
4.25k
        while (a_pos < a_end) {
97
3.40k
            *c_pos = Op::apply(*a_pos, b);
98
3.40k
            ++a_pos;
99
3.40k
            ++c_pos;
100
3.40k
        }
101
844
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
658
                                          PaddedPODArray<UInt8>& c) {
91
658
        size_t size = a.size();
92
658
        const A* __restrict a_pos = a.data();
93
658
        UInt8* __restrict c_pos = c.data();
94
658
        const A* __restrict a_end = a_pos + size;
95
96
46.5k
        while (a_pos < a_end) {
97
45.9k
            *c_pos = Op::apply(*a_pos, b);
98
45.9k
            ++a_pos;
99
45.9k
            ++c_pos;
100
45.9k
        }
101
658
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_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
171k
        while (a_pos < a_end) {
97
171k
            *c_pos = Op::apply(*a_pos, b);
98
171k
            ++a_pos;
99
171k
            ++c_pos;
100
171k
        }
101
38
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
52
                                          PaddedPODArray<UInt8>& c) {
91
52
        size_t size = a.size();
92
52
        const A* __restrict a_pos = a.data();
93
52
        UInt8* __restrict c_pos = c.data();
94
52
        const A* __restrict a_end = a_pos + size;
95
96
153k
        while (a_pos < a_end) {
97
153k
            *c_pos = Op::apply(*a_pos, b);
98
153k
            ++a_pos;
99
153k
            ++c_pos;
100
153k
        }
101
52
    }
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
475
                                          PaddedPODArray<UInt8>& c) {
91
475
        size_t size = a.size();
92
475
        const A* __restrict a_pos = a.data();
93
475
        UInt8* __restrict c_pos = c.data();
94
475
        const A* __restrict a_end = a_pos + size;
95
96
49.6k
        while (a_pos < a_end) {
97
49.2k
            *c_pos = Op::apply(*a_pos, b);
98
49.2k
            ++a_pos;
99
49.2k
            ++c_pos;
100
49.2k
        }
101
475
    }
_ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE44EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
319
                                          PaddedPODArray<UInt8>& c) {
91
319
        size_t size = a.size();
92
319
        const A* __restrict a_pos = a.data();
93
319
        UInt8* __restrict c_pos = c.data();
94
319
        const A* __restrict a_end = a_pos + size;
95
96
3.42k
        while (a_pos < a_end) {
97
3.10k
            *c_pos = Op::apply(*a_pos, b);
98
3.10k
            ++a_pos;
99
3.10k
            ++c_pos;
100
3.10k
        }
101
319
    }
_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
161
                                          PaddedPODArray<UInt8>& c) {
91
161
        size_t size = a.size();
92
161
        const A* __restrict a_pos = a.data();
93
161
        UInt8* __restrict c_pos = c.data();
94
161
        const A* __restrict a_end = a_pos + size;
95
96
681k
        while (a_pos < a_end) {
97
680k
            *c_pos = Op::apply(*a_pos, b);
98
680k
            ++a_pos;
99
680k
            ++c_pos;
100
680k
        }
101
161
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
90
122
                                          PaddedPODArray<UInt8>& c) {
91
122
        size_t size = a.size();
92
122
        const A* __restrict a_pos = a.data();
93
122
        UInt8* __restrict c_pos = c.data();
94
122
        const A* __restrict a_end = a_pos + size;
95
96
600k
        while (a_pos < a_end) {
97
600k
            *c_pos = Op::apply(*a_pos, b);
98
600k
            ++a_pos;
99
600k
            ++c_pos;
100
600k
        }
101
122
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
102
103
7.61k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
7.61k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
7.61k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
103
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
12
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
276
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
276
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
276
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
36
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
36
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
36
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
58
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
58
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
58
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
1.12k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
1.12k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
1.12k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
12
    }
Unexecuted instantiation: _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
446
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
446
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
446
    }
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
234
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
234
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
234
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
228
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
3.70k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
3.70k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
3.70k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
522
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
522
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
522
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
44
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
44
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
44
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE44EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
103
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE44EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
240
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
240
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
240
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
193
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
193
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
193
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
103
79
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
79
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
79
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_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_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
275
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
104
275
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
105
275
    }
_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
16
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
67
        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
16
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
111
8
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
112
38
        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
8
    }
_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
163
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
163
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
538k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
538k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
538k
        }
122
163
    }
_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
57
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
57
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
269k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
269k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
269k
        }
122
57
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
117
63
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
118
63
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
119
268k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
120
268k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
121
268k
        }
122
63
    }
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
429
                                                      PaddedPODArray<UInt8>& c) {
136
429
        size_t size = a_offsets.size();
137
429
        ColumnString::Offset prev_a_offset = 0;
138
429
        ColumnString::Offset prev_b_offset = 0;
139
429
        const auto* a_pos = a_data.data();
140
429
        const auto* b_pos = b_data.data();
141
142
1.59k
        for (size_t i = 0; i < size; ++i) {
143
1.16k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
144
1.16k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
145
1.16k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
146
1.16k
                             0);
147
148
1.16k
            prev_a_offset = a_offsets[i];
149
1.16k
            prev_b_offset = b_offsets[i];
150
1.16k
        }
151
429
    }
_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
396
                                                      PaddedPODArray<UInt8>& c) {
136
396
        size_t size = a_offsets.size();
137
396
        ColumnString::Offset prev_a_offset = 0;
138
396
        ColumnString::Offset prev_b_offset = 0;
139
396
        const auto* a_pos = a_data.data();
140
396
        const auto* b_pos = b_data.data();
141
142
1.32k
        for (size_t i = 0; i < size; ++i) {
143
928
            c[i] = Op::apply(memcmp_small_allow_overflow15(
144
928
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
145
928
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
146
928
                             0);
147
148
928
            prev_a_offset = a_offsets[i];
149
928
            prev_b_offset = b_offsets[i];
150
928
        }
151
396
    }
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
890
                                                 PaddedPODArray<UInt8>& c) {
158
890
        size_t size = a_offsets.size();
159
890
        ColumnString::Offset prev_a_offset = 0;
160
890
        const auto* a_pos = a_data.data();
161
890
        const auto* b_pos = b_data.data();
162
163
1.91M
        for (size_t i = 0; i < size; ++i) {
164
1.91M
            c[i] = Op::apply(
165
1.91M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
1.91M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
1.91M
                    0);
168
169
1.91M
            prev_a_offset = a_offsets[i];
170
1.91M
        }
171
890
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
202
                                                 PaddedPODArray<UInt8>& c) {
158
202
        size_t size = a_offsets.size();
159
202
        ColumnString::Offset prev_a_offset = 0;
160
202
        const auto* a_pos = a_data.data();
161
202
        const auto* b_pos = b_data.data();
162
163
634k
        for (size_t i = 0; i < size; ++i) {
164
634k
            c[i] = Op::apply(
165
634k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
634k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
634k
                    0);
168
169
634k
            prev_a_offset = a_offsets[i];
170
634k
        }
171
202
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
108
                                                 PaddedPODArray<UInt8>& c) {
158
108
        size_t size = a_offsets.size();
159
108
        ColumnString::Offset prev_a_offset = 0;
160
108
        const auto* a_pos = a_data.data();
161
108
        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
108
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
230
                                                 PaddedPODArray<UInt8>& c) {
158
230
        size_t size = a_offsets.size();
159
230
        ColumnString::Offset prev_a_offset = 0;
160
230
        const auto* a_pos = a_data.data();
161
230
        const auto* b_pos = b_data.data();
162
163
636k
        for (size_t i = 0; i < size; ++i) {
164
636k
            c[i] = Op::apply(
165
636k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
636k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
636k
                    0);
168
169
636k
            prev_a_offset = a_offsets[i];
170
636k
        }
171
230
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
157
350
                                                 PaddedPODArray<UInt8>& c) {
158
350
        size_t size = a_offsets.size();
159
350
        ColumnString::Offset prev_a_offset = 0;
160
350
        const auto* a_pos = a_data.data();
161
350
        const auto* b_pos = b_data.data();
162
163
534k
        for (size_t i = 0; i < size; ++i) {
164
534k
            c[i] = Op::apply(
165
534k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
166
534k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
167
534k
                    0);
168
169
534k
            prev_a_offset = a_offsets[i];
170
534k
        }
171
350
    }
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
76
                                       PaddedPODArray<UInt8>& c) {
178
76
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
76
                                                                               a_data, a_size, c);
180
76
    }
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
70
                                       PaddedPODArray<UInt8>& c) {
178
70
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
70
                                                                               a_data, a_size, c);
180
70
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
177
6
                                       PaddedPODArray<UInt8>& c) {
178
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
179
6
                                                                               a_data, a_size, c);
180
6
    }
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
444
                                                      PaddedPODArray<UInt8>& c) {
190
444
        size_t size = a_offsets.size();
191
444
        ColumnString::Offset prev_a_offset = 0;
192
444
        ColumnString::Offset prev_b_offset = 0;
193
444
        const auto* a_pos = a_data.data();
194
444
        const auto* b_pos = b_data.data();
195
196
13.6k
        for (size_t i = 0; i < size; ++i) {
197
13.2k
            auto a_size = a_offsets[i] - prev_a_offset;
198
13.2k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
13.2k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
13.2k
                                                               b_pos + prev_b_offset, b_size);
202
203
13.2k
            prev_a_offset = a_offsets[i];
204
13.2k
            prev_b_offset = b_offsets[i];
205
13.2k
        }
206
444
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
189
429
                                                      PaddedPODArray<UInt8>& c) {
190
429
        size_t size = a_offsets.size();
191
429
        ColumnString::Offset prev_a_offset = 0;
192
429
        ColumnString::Offset prev_b_offset = 0;
193
429
        const auto* a_pos = a_data.data();
194
429
        const auto* b_pos = b_data.data();
195
196
8.53k
        for (size_t i = 0; i < size; ++i) {
197
8.10k
            auto a_size = a_offsets[i] - prev_a_offset;
198
8.10k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
8.10k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
8.10k
                                                               b_pos + prev_b_offset, b_size);
202
203
8.10k
            prev_a_offset = a_offsets[i];
204
8.10k
            prev_b_offset = b_offsets[i];
205
8.10k
        }
206
429
    }
_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.15k
        for (size_t i = 0; i < size; ++i) {
197
5.14k
            auto a_size = a_offsets[i] - prev_a_offset;
198
5.14k
            auto b_size = b_offsets[i] - prev_b_offset;
199
200
5.14k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
201
5.14k
                                                               b_pos + prev_b_offset, b_size);
202
203
5.14k
            prev_a_offset = a_offsets[i];
204
5.14k
            prev_b_offset = b_offsets[i];
205
5.14k
        }
206
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.8k
                                                 PaddedPODArray<UInt8>& c) {
213
20.8k
        size_t size = a_offsets.size();
214
20.8k
        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.8k
        } else {
224
20.8k
            ColumnString::Offset prev_a_offset = 0;
225
20.8k
            const auto* a_pos = a_data.data();
226
20.8k
            const auto* b_pos = b_data.data();
227
9.48M
            for (size_t i = 0; i < size; ++i) {
228
9.46M
                auto a_size = a_offsets[i] - prev_a_offset;
229
9.46M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
9.46M
                                                                   b_pos, b_size);
231
9.46M
                prev_a_offset = a_offsets[i];
232
9.46M
            }
233
20.8k
        }
234
20.8k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
212
20.7k
                                                 PaddedPODArray<UInt8>& c) {
213
20.7k
        size_t size = a_offsets.size();
214
20.7k
        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.7k
        } else {
224
20.7k
            ColumnString::Offset prev_a_offset = 0;
225
20.7k
            const auto* a_pos = a_data.data();
226
20.7k
            const auto* b_pos = b_data.data();
227
9.42M
            for (size_t i = 0; i < size; ++i) {
228
9.40M
                auto a_size = a_offsets[i] - prev_a_offset;
229
9.40M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
9.40M
                                                                   b_pos, b_size);
231
9.40M
                prev_a_offset = a_offsets[i];
232
9.40M
            }
233
20.7k
        }
234
20.7k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
212
110
                                                 PaddedPODArray<UInt8>& c) {
213
110
        size_t size = a_offsets.size();
214
110
        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
109
        } else {
224
109
            ColumnString::Offset prev_a_offset = 0;
225
109
            const auto* a_pos = a_data.data();
226
109
            const auto* b_pos = b_data.data();
227
61.3k
            for (size_t i = 0; i < size; ++i) {
228
61.2k
                auto a_size = a_offsets[i] - prev_a_offset;
229
61.2k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
230
61.2k
                                                                   b_pos, b_size);
231
61.2k
                prev_a_offset = a_offsets[i];
232
61.2k
            }
233
109
        }
234
110
    }
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
19
                                                 PaddedPODArray<UInt8>& c) {
241
19
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
242
19
    }
_ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Line
Count
Source
240
19
                                                 PaddedPODArray<UInt8>& c) {
241
19
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
242
19
    }
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
4.28k
                                    const Field& rmax, Op op) {
306
4.28k
    switch (op) {
307
1.93k
    case Op::EQ:
308
        // Disjoint ranges cannot share a value.
309
1.93k
        return lmin > rmax || rmin > lmax;
310
159
    case Op::NE:
311
        // Only provable when both sides collapse to the same single value.
312
159
        return lmin == lmax && rmin == rmax && lmin == rmin;
313
854
    case Op::LT:
314
854
        return lmin >= rmax;
315
324
    case Op::LE:
316
324
        return lmin > rmax;
317
686
    case Op::GT:
318
686
        return rmin >= lmax;
319
323
    case Op::GE:
320
323
        return rmin > lmax;
321
4.28k
    }
322
0
    __builtin_unreachable();
323
4.28k
}
324
325
inline ZoneMapFilterResult evaluate_slot_literal(const ZoneMapEvalContext& ctx,
326
                                                 const expr_zonemap::SlotLiteral& slot_literal,
327
3.43k
                                                 Op op) {
328
3.43k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal.slot_index,
329
3.43k
                                                              slot_literal.slot_type);
330
3.43k
    if (slot_type == nullptr) {
331
293
        return unsupported_zonemap_filter(ctx);
332
293
    }
333
3.14k
    auto zone_map_ptr = ctx.zone_map(slot_literal.slot_index);
334
3.14k
    if (zone_map_ptr == nullptr) {
335
46
        return unsupported_zonemap_filter(ctx);
336
46
    }
337
3.09k
    const auto& zone_map = *zone_map_ptr;
338
3.09k
    if (!zone_map.has_not_null) {
339
56
        return ZoneMapFilterResult::kNoMatch;
340
56
    }
341
3.04k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
342
120
        return unsupported_zonemap_filter(ctx);
343
120
    }
344
345
2.92k
    const auto effective_op = slot_literal.literal_on_left ? symmetric_op(op) : op;
346
2.92k
    const auto& literal = slot_literal.literal;
347
2.92k
    const bool literal_is_nan = literal.is_nan();
348
2.92k
    const bool hidden_nan_can_match = (effective_op == Op::EQ && literal_is_nan) ||
349
2.92k
                                      (effective_op == Op::NE && !literal_is_nan) ||
350
2.92k
                                      (effective_op == Op::GT && !literal_is_nan) ||
351
2.92k
                                      effective_op == Op::GE;
352
2.92k
    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.86k
    return range_vs_range_no_match(zone_map.min_value, zone_map.max_value, literal, literal,
357
2.86k
                                   effective_op)
358
2.86k
                   ? ZoneMapFilterResult::kNoMatch
359
2.86k
                   : ZoneMapFilterResult::kMayMatch;
360
2.92k
}
361
362
inline ZoneMapFilterResult evaluate_slot_slot(const ZoneMapEvalContext& ctx,
363
1.47k
                                              const expr_zonemap::SlotSlot& slot_slot, Op op) {
364
1.47k
    const auto left_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_slot.left_slot_index,
365
1.47k
                                                                    slot_slot.left_type);
366
1.47k
    const auto right_type = expr_zonemap::fetch_compatible_slot_type(
367
1.47k
            ctx, slot_slot.right_slot_index, slot_slot.right_type);
368
1.47k
    if (left_type == nullptr || right_type == nullptr) {
369
        // The context skips a slot entirely when the segment cannot apply predicates on it.
370
1
        return unsupported_zonemap_filter(ctx);
371
1
    }
372
1.47k
    const auto left_zone_map = ctx.zone_map(slot_slot.left_slot_index);
373
1.47k
    const auto right_zone_map = ctx.zone_map(slot_slot.right_slot_index);
374
1.47k
    if (left_zone_map == nullptr || right_zone_map == nullptr) {
375
        // A slot can be present with a data type but no zone map, so this is a separate check.
376
9
        return unsupported_zonemap_filter(ctx);
377
9
    }
378
    // A column holding no non-null value makes the comparison NULL on every row, which never
379
    // satisfies a WHERE conjunct. This must run before the range checks below: an all-null zone map
380
    // leaves min/max default-constructed as TYPE_NULL, which the range checks would fatal on.
381
1.46k
    if (!left_zone_map->has_not_null || !right_zone_map->has_not_null) {
382
29
        return ZoneMapFilterResult::kNoMatch;
383
29
    }
384
1.43k
    if (!expr_zonemap::range_stats_usable_for_zonemap(*left_zone_map, left_type) ||
385
1.43k
        !expr_zonemap::range_stats_usable_for_zonemap(*right_zone_map, right_type)) {
386
9
        return unsupported_zonemap_filter(ctx);
387
9
    }
388
    // A native string zone-map max of exactly MAX_ZONE_MAP_INDEX_SIZE bytes was bumped upward,
389
    // and may also have been truncated (segments written before the carry fix may hold a bump
390
    // that wrapped on 0xff), so a bound of that length is not a reliable fence for a two-sided
391
    // proof. A shorter bound is the exact value; the bump never changes the length, so this also
392
    // rejects those wrapped bounds.
393
    // The test only decides whether to trust the bound as a fence. A Parquet-sourced string bound
394
    // shorter than the cap is not necessarily exact, but it is a spec-conservative min/max, which
395
    // is all a range proof needs; do not tighten this to assume exactness below the cap.
396
    // data_types_compatible pairs strings only with strings, so checking one side's type is enough
397
    // to know all four bounds are strings.
398
1.42k
    if (is_string_type(remove_nullable(left_type)->get_primitive_type())) {
399
369
        auto is_untruncated = [](const Field& f) {
400
369
            return f.get<TYPE_STRING>().size() < MAX_ZONE_MAP_INDEX_SIZE;
401
369
        };
402
93
        if (!is_untruncated(left_zone_map->min_value) ||
403
93
            !is_untruncated(left_zone_map->max_value) ||
404
93
            !is_untruncated(right_zone_map->min_value) ||
405
93
            !is_untruncated(right_zone_map->max_value)) {
406
3
            return unsupported_zonemap_filter(ctx);
407
3
        }
408
93
    }
409
    // Parquet bounds omit NaN without recording how many were skipped, so a zone map that looks
410
    // like a single point may still hide one, which would flip the NE rule from false to true. The
411
    // slot-vs-literal path can reason per operator because it knows whether the literal is NaN;
412
    // with two slots there is no literal, so bail out for every operator instead.
413
1.42k
    if (ctx.floating_nan_count_unknown(slot_slot.left_slot_index) ||
414
1.42k
        ctx.floating_nan_count_unknown(slot_slot.right_slot_index)) {
415
12
        return unsupported_zonemap_filter(ctx);
416
12
    }
417
1.41k
    return range_vs_range_no_match(left_zone_map->min_value, left_zone_map->max_value,
418
1.41k
                                   right_zone_map->min_value, right_zone_map->max_value, op)
419
1.41k
                   ? ZoneMapFilterResult::kNoMatch
420
1.41k
                   : ZoneMapFilterResult::kMayMatch;
421
1.42k
}
422
423
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
424
4.87k
                                    Op op) {
425
4.87k
    if (auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
426
4.87k
        slot_literal.has_value()) {
427
3.44k
        return evaluate_slot_literal(ctx, *slot_literal, op);
428
3.44k
    }
429
1.43k
    auto slot_slot = expr_zonemap::extract_slot_and_slot(arguments);
430
    // can_evaluate_zonemap_filter accepts exactly the two shapes handled above, so reaching this
431
    // point means the capability gate and this evaluator went out of sync.
432
1.43k
    DORIS_CHECK(slot_slot.has_value());
433
1.43k
    return evaluate_slot_slot(ctx, *slot_slot, op);
434
4.87k
}
435
436
35.6k
inline bool can_evaluate(const VExprSPtrs& arguments) {
437
35.6k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
438
35.6k
    if (!slot_literal.has_value()) {
439
20.6k
        return false;
440
20.6k
    }
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
14.9k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
450
14.9k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
451
14.9k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
452
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
453
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
454
        // values without running expression casts, so conservatively skip this optimization.
455
1
        return false;
456
1
    }
457
458
14.9k
    return true;
459
14.9k
}
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
20.4k
inline bool can_evaluate_slot_slot(const VExprSPtrs& arguments) {
466
20.4k
    auto slot_slot = expr_zonemap::extract_slot_and_slot(arguments);
467
20.4k
    if (!slot_slot.has_value()) {
468
16.3k
        return false;
469
16.3k
    }
470
4.09k
    DORIS_CHECK(slot_slot->left_type != nullptr);
471
4.09k
    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
8.30k
    const auto excluded = [](const DataTypePtr& type) {
480
8.30k
        const auto primitive_type = remove_nullable(type)->get_primitive_type();
481
8.32k
        return is_varbinary(primitive_type) || primitive_type == TYPE_VARIANT ||
482
8.32k
               primitive_type == TYPE_JSONB || is_complex_type(primitive_type) ||
483
8.32k
               is_var_len_object(primitive_type);
484
8.30k
    };
485
4.15k
    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
4.07k
    return expr_zonemap::data_types_compatible(slot_slot->left_type, slot_slot->right_type);
493
4.09k
}
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
40.9k
inline std::optional<Op> op_from_name(std::string_view name) {
557
40.9k
    if (name == NameEquals::name) {
558
18.8k
        return Op::EQ;
559
18.8k
    }
560
22.0k
    if (name == NameNotEquals::name) {
561
1.60k
        return Op::NE;
562
1.60k
    }
563
20.4k
    if (name == NameLess::name) {
564
6.21k
        return Op::LT;
565
6.21k
    }
566
14.2k
    if (name == NameLessOrEquals::name) {
567
2.31k
        return Op::LE;
568
2.31k
    }
569
11.9k
    if (name == NameGreater::name) {
570
7.10k
        return Op::GT;
571
7.10k
    }
572
5.09k
    if (name == NameGreaterOrEquals::name) {
573
5.09k
        return Op::GE;
574
5.09k
    }
575
18.4E
    return std::nullopt;
576
4.85k
}
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
300k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
583
271k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
583
1.27k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
583
7.14k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
583
7.73k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
583
4.07k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
583
8.97k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
584
585
300k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
585
271k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
585
1.28k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
585
7.15k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
585
7.72k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
585
4.08k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
585
8.89k
    FunctionComparison() = default;
586
587
685k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
587
678k
    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.24k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
587
2.09k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
587
1.28k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
587
964
    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
72.6k
                            const ColumnPtr& col_right_ptr) const {
593
72.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
72.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
72.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
72.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
72.6k
        DCHECK(!(left_is_const && right_is_const));
600
601
72.6k
        if (!left_is_const && !right_is_const) {
602
14.3k
            auto col_res = ColumnUInt8::create();
603
604
14.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
14.3k
            vec_res.resize(col_left->get_data().size());
606
14.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
14.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
14.3k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
14.3k
                                                     vec_res);
610
611
14.3k
            block.replace_by_position(result, std::move(col_res));
612
58.3k
        } else if (!left_is_const && right_is_const) {
613
50.7k
            auto col_res = ColumnUInt8::create();
614
615
50.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
50.7k
            vec_res.resize(col_left->size());
617
50.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
50.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
50.7k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
50.7k
                                                       col_right->get_element(0), vec_res);
621
622
50.7k
            block.replace_by_position(result, std::move(col_res));
623
50.7k
        } else if (left_is_const && !right_is_const) {
624
7.61k
            auto col_res = ColumnUInt8::create();
625
626
7.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
7.61k
            vec_res.resize(col_right->size());
628
7.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
7.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
630
7.61k
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
7.61k
                                                       col_right->get_data(), vec_res);
632
633
7.61k
            block.replace_by_position(result, std::move(col_res));
634
7.61k
        }
635
72.6k
        return Status::OK();
636
72.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
95
                            const ColumnPtr& col_right_ptr) const {
593
95
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
95
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
95
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
95
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
95
        DCHECK(!(left_is_const && right_is_const));
600
601
95
        if (!left_is_const && !right_is_const) {
602
65
            auto col_res = ColumnUInt8::create();
603
604
65
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
65
            vec_res.resize(col_left->get_data().size());
606
65
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
65
                              typename PrimitiveTypeTraits<PT>::CppType,
608
65
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
65
                                                     vec_res);
610
611
65
            block.replace_by_position(result, std::move(col_res));
612
65
        } 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
95
        return Status::OK();
636
95
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
669
                            const ColumnPtr& col_right_ptr) const {
593
669
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
669
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
669
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
669
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
669
        DCHECK(!(left_is_const && right_is_const));
600
601
669
        if (!left_is_const && !right_is_const) {
602
194
            auto col_res = ColumnUInt8::create();
603
604
194
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
194
            vec_res.resize(col_left->get_data().size());
606
194
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
194
                              typename PrimitiveTypeTraits<PT>::CppType,
608
194
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
194
                                                     vec_res);
610
611
194
            block.replace_by_position(result, std::move(col_res));
612
475
        } else if (!left_is_const && right_is_const) {
613
475
            auto col_res = ColumnUInt8::create();
614
615
475
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
475
            vec_res.resize(col_left->size());
617
475
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
475
                              typename PrimitiveTypeTraits<PT>::CppType,
619
475
                              Op<PT>>::vector_constant(col_left->get_data(),
620
475
                                                       col_right->get_element(0), vec_res);
621
622
475
            block.replace_by_position(result, std::move(col_res));
623
475
        } 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
669
        return Status::OK();
636
669
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
387
                            const ColumnPtr& col_right_ptr) const {
593
387
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
387
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
387
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
387
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
387
        DCHECK(!(left_is_const && right_is_const));
600
601
387
        if (!left_is_const && !right_is_const) {
602
201
            auto col_res = ColumnUInt8::create();
603
604
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
201
            vec_res.resize(col_left->get_data().size());
606
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
201
                              typename PrimitiveTypeTraits<PT>::CppType,
608
201
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
201
                                                     vec_res);
610
611
201
            block.replace_by_position(result, std::move(col_res));
612
201
        } else if (!left_is_const && right_is_const) {
613
188
            auto col_res = ColumnUInt8::create();
614
615
188
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
188
            vec_res.resize(col_left->size());
617
188
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
188
                              typename PrimitiveTypeTraits<PT>::CppType,
619
188
                              Op<PT>>::vector_constant(col_left->get_data(),
620
188
                                                       col_right->get_element(0), vec_res);
621
622
188
            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
387
        return Status::OK();
636
387
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
202
                            const ColumnPtr& col_right_ptr) const {
593
202
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
202
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
202
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
202
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
202
        DCHECK(!(left_is_const && right_is_const));
600
601
202
        if (!left_is_const && !right_is_const) {
602
117
            auto col_res = ColumnUInt8::create();
603
604
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
117
            vec_res.resize(col_left->get_data().size());
606
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
117
                              typename PrimitiveTypeTraits<PT>::CppType,
608
117
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
117
                                                     vec_res);
610
611
117
            block.replace_by_position(result, std::move(col_res));
612
117
        } 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
202
        return Status::OK();
636
202
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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
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
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
14
        return Status::OK();
636
14
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
6.15k
                            const ColumnPtr& col_right_ptr) const {
593
6.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
6.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
6.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
6.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
6.15k
        DCHECK(!(left_is_const && right_is_const));
600
601
6.15k
        if (!left_is_const && !right_is_const) {
602
187
            auto col_res = ColumnUInt8::create();
603
604
187
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
187
            vec_res.resize(col_left->get_data().size());
606
187
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
187
                              typename PrimitiveTypeTraits<PT>::CppType,
608
187
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
187
                                                     vec_res);
610
611
187
            block.replace_by_position(result, std::move(col_res));
612
5.97k
        } else if (!left_is_const && right_is_const) {
613
5.69k
            auto col_res = ColumnUInt8::create();
614
615
5.69k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
5.69k
            vec_res.resize(col_left->size());
617
5.69k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
5.69k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
5.69k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
5.69k
                                                       col_right->get_element(0), vec_res);
621
622
5.69k
            block.replace_by_position(result, std::move(col_res));
623
5.69k
        } else if (left_is_const && !right_is_const) {
624
276
            auto col_res = ColumnUInt8::create();
625
626
276
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
276
            vec_res.resize(col_right->size());
628
276
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
276
                              typename PrimitiveTypeTraits<PT>::CppType,
630
276
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
276
                                                       col_right->get_data(), vec_res);
632
633
276
            block.replace_by_position(result, std::move(col_res));
634
276
        }
635
6.15k
        return Status::OK();
636
6.15k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
397
                            const ColumnPtr& col_right_ptr) const {
593
397
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
397
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
397
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
397
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
397
        DCHECK(!(left_is_const && right_is_const));
600
601
397
        if (!left_is_const && !right_is_const) {
602
92
            auto col_res = ColumnUInt8::create();
603
604
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
92
            vec_res.resize(col_left->get_data().size());
606
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
92
                              typename PrimitiveTypeTraits<PT>::CppType,
608
92
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
92
                                                     vec_res);
610
611
92
            block.replace_by_position(result, std::move(col_res));
612
305
        } else if (!left_is_const && right_is_const) {
613
269
            auto col_res = ColumnUInt8::create();
614
615
269
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
269
            vec_res.resize(col_left->size());
617
269
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
269
                              typename PrimitiveTypeTraits<PT>::CppType,
619
269
                              Op<PT>>::vector_constant(col_left->get_data(),
620
269
                                                       col_right->get_element(0), vec_res);
621
622
269
            block.replace_by_position(result, std::move(col_res));
623
269
        } else if (left_is_const && !right_is_const) {
624
36
            auto col_res = ColumnUInt8::create();
625
626
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
36
            vec_res.resize(col_right->size());
628
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
36
                              typename PrimitiveTypeTraits<PT>::CppType,
630
36
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
36
                                                       col_right->get_data(), vec_res);
632
633
36
            block.replace_by_position(result, std::move(col_res));
634
36
        }
635
397
        return Status::OK();
636
397
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
3.15k
                            const ColumnPtr& col_right_ptr) const {
593
3.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
3.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
3.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
3.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
3.15k
        DCHECK(!(left_is_const && right_is_const));
600
601
3.15k
        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
2.10k
        } else if (!left_is_const && right_is_const) {
613
2.04k
            auto col_res = ColumnUInt8::create();
614
615
2.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
2.04k
            vec_res.resize(col_left->size());
617
2.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
2.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
2.04k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
2.04k
                                                       col_right->get_element(0), vec_res);
621
622
2.04k
            block.replace_by_position(result, std::move(col_res));
623
2.04k
        } else if (left_is_const && !right_is_const) {
624
58
            auto col_res = ColumnUInt8::create();
625
626
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
58
            vec_res.resize(col_right->size());
628
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
58
                              typename PrimitiveTypeTraits<PT>::CppType,
630
58
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
58
                                                       col_right->get_data(), vec_res);
632
633
58
            block.replace_by_position(result, std::move(col_res));
634
58
        }
635
3.15k
        return Status::OK();
636
3.15k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
7.52k
                            const ColumnPtr& col_right_ptr) const {
593
7.52k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
7.52k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
7.52k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
7.52k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
7.52k
        DCHECK(!(left_is_const && right_is_const));
600
601
7.52k
        if (!left_is_const && !right_is_const) {
602
192
            auto col_res = ColumnUInt8::create();
603
604
192
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
192
            vec_res.resize(col_left->get_data().size());
606
192
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
192
                              typename PrimitiveTypeTraits<PT>::CppType,
608
192
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
192
                                                     vec_res);
610
611
192
            block.replace_by_position(result, std::move(col_res));
612
7.33k
        } else if (!left_is_const && right_is_const) {
613
6.20k
            auto col_res = ColumnUInt8::create();
614
615
6.20k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
6.20k
            vec_res.resize(col_left->size());
617
6.20k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
6.20k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
6.20k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
6.20k
                                                       col_right->get_element(0), vec_res);
621
622
6.20k
            block.replace_by_position(result, std::move(col_res));
623
6.20k
        } else if (left_is_const && !right_is_const) {
624
1.12k
            auto col_res = ColumnUInt8::create();
625
626
1.12k
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
1.12k
            vec_res.resize(col_right->size());
628
1.12k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
1.12k
                              typename PrimitiveTypeTraits<PT>::CppType,
630
1.12k
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
1.12k
                                                       col_right->get_data(), vec_res);
632
633
1.12k
            block.replace_by_position(result, std::move(col_res));
634
1.12k
        }
635
7.52k
        return Status::OK();
636
7.52k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
91
                            const ColumnPtr& col_right_ptr) const {
593
91
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
91
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
91
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
91
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
91
        DCHECK(!(left_is_const && right_is_const));
600
601
91
        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
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
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
91
        return Status::OK();
636
91
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
12
                            const ColumnPtr& col_right_ptr) const {
593
12
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
12
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
12
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
12
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
12
        DCHECK(!(left_is_const && right_is_const));
600
601
12
        if (!left_is_const && !right_is_const) {
602
5
            auto col_res = ColumnUInt8::create();
603
604
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
5
            vec_res.resize(col_left->get_data().size());
606
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
5
                              typename PrimitiveTypeTraits<PT>::CppType,
608
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
5
                                                     vec_res);
610
611
5
            block.replace_by_position(result, std::move(col_res));
612
7
        } else if (!left_is_const && right_is_const) {
613
7
            auto col_res = ColumnUInt8::create();
614
615
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
7
            vec_res.resize(col_left->size());
617
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
7
                              typename PrimitiveTypeTraits<PT>::CppType,
619
7
                              Op<PT>>::vector_constant(col_left->get_data(),
620
7
                                                       col_right->get_element(0), vec_res);
621
622
7
            block.replace_by_position(result, std::move(col_res));
623
7
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
12
        return Status::OK();
636
12
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
17
                            const ColumnPtr& col_right_ptr) const {
593
17
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
17
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
17
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
17
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
17
        DCHECK(!(left_is_const && right_is_const));
600
601
17
        if (!left_is_const && !right_is_const) {
602
13
            auto col_res = ColumnUInt8::create();
603
604
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
13
            vec_res.resize(col_left->get_data().size());
606
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
13
                              typename PrimitiveTypeTraits<PT>::CppType,
608
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
13
                                                     vec_res);
610
611
13
            block.replace_by_position(result, std::move(col_res));
612
13
        } else if (!left_is_const && right_is_const) {
613
4
            auto col_res = ColumnUInt8::create();
614
615
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
4
            vec_res.resize(col_left->size());
617
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
4
                              typename PrimitiveTypeTraits<PT>::CppType,
619
4
                              Op<PT>>::vector_constant(col_left->get_data(),
620
4
                                                       col_right->get_element(0), vec_res);
621
622
4
            block.replace_by_position(result, std::move(col_res));
623
4
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
17
        return Status::OK();
636
17
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE44EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.79k
                            const ColumnPtr& col_right_ptr) const {
593
2.79k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.79k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.79k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.79k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.79k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.79k
        if (!left_is_const && !right_is_const) {
602
776
            auto col_res = ColumnUInt8::create();
603
604
776
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
776
            vec_res.resize(col_left->get_data().size());
606
776
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
776
                              typename PrimitiveTypeTraits<PT>::CppType,
608
776
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
776
                                                     vec_res);
610
611
776
            block.replace_by_position(result, std::move(col_res));
612
2.02k
        } else if (!left_is_const && right_is_const) {
613
1.96k
            auto col_res = ColumnUInt8::create();
614
615
1.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.96k
            vec_res.resize(col_left->size());
617
1.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.96k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.96k
                                                       col_right->get_element(0), vec_res);
621
622
1.96k
            block.replace_by_position(result, std::move(col_res));
623
1.96k
        } else if (left_is_const && !right_is_const) {
624
54
            auto col_res = ColumnUInt8::create();
625
626
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
54
            vec_res.resize(col_right->size());
628
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
54
                              typename PrimitiveTypeTraits<PT>::CppType,
630
54
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
54
                                                       col_right->get_data(), vec_res);
632
633
54
            block.replace_by_position(result, std::move(col_res));
634
54
        }
635
2.79k
        return Status::OK();
636
2.79k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
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
70
            auto col_res = ColumnUInt8::create();
603
604
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
70
            vec_res.resize(col_left->get_data().size());
606
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
70
                              typename PrimitiveTypeTraits<PT>::CppType,
608
70
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
70
                                                     vec_res);
610
611
70
            block.replace_by_position(result, std::move(col_res));
612
70
        } 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
70
        return Status::OK();
636
70
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
726
                            const ColumnPtr& col_right_ptr) const {
593
726
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
726
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
726
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
726
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
726
        DCHECK(!(left_is_const && right_is_const));
600
601
726
        if (!left_is_const && !right_is_const) {
602
87
            auto col_res = ColumnUInt8::create();
603
604
87
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
87
            vec_res.resize(col_left->get_data().size());
606
87
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
87
                              typename PrimitiveTypeTraits<PT>::CppType,
608
87
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
87
                                                     vec_res);
610
611
87
            block.replace_by_position(result, std::move(col_res));
612
639
        } else if (!left_is_const && right_is_const) {
613
639
            auto col_res = ColumnUInt8::create();
614
615
639
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
639
            vec_res.resize(col_left->size());
617
639
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
639
                              typename PrimitiveTypeTraits<PT>::CppType,
619
639
                              Op<PT>>::vector_constant(col_left->get_data(),
620
639
                                                       col_right->get_element(0), vec_res);
621
622
639
            block.replace_by_position(result, std::move(col_res));
623
639
        } 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
726
        return Status::OK();
636
726
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
4
                            const ColumnPtr& col_right_ptr) const {
593
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
4
        DCHECK(!(left_is_const && right_is_const));
600
601
4
        if (!left_is_const && !right_is_const) {
602
4
            auto col_res = ColumnUInt8::create();
603
604
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
4
            vec_res.resize(col_left->get_data().size());
606
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
4
                              typename PrimitiveTypeTraits<PT>::CppType,
608
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
4
                                                     vec_res);
610
611
4
            block.replace_by_position(result, std::move(col_res));
612
4
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
4
        return Status::OK();
636
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
70
                            const ColumnPtr& col_right_ptr) const {
593
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
70
        DCHECK(!(left_is_const && right_is_const));
600
601
70
        if (!left_is_const && !right_is_const) {
602
39
            auto col_res = ColumnUInt8::create();
603
604
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
39
            vec_res.resize(col_left->get_data().size());
606
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
39
                              typename PrimitiveTypeTraits<PT>::CppType,
608
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
39
                                                     vec_res);
610
611
39
            block.replace_by_position(result, std::move(col_res));
612
39
        } else if (!left_is_const && right_is_const) {
613
31
            auto col_res = ColumnUInt8::create();
614
615
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
31
            vec_res.resize(col_left->size());
617
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
31
                              typename PrimitiveTypeTraits<PT>::CppType,
619
31
                              Op<PT>>::vector_constant(col_left->get_data(),
620
31
                                                       col_right->get_element(0), vec_res);
621
622
31
            block.replace_by_position(result, std::move(col_res));
623
31
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
70
        return Status::OK();
636
70
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
8
                            const ColumnPtr& col_right_ptr) const {
593
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
8
        DCHECK(!(left_is_const && right_is_const));
600
601
8
        if (!left_is_const && !right_is_const) {
602
8
            auto col_res = ColumnUInt8::create();
603
604
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
8
            vec_res.resize(col_left->get_data().size());
606
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
8
                              typename PrimitiveTypeTraits<PT>::CppType,
608
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
8
                                                     vec_res);
610
611
8
            block.replace_by_position(result, std::move(col_res));
612
8
        } else if (!left_is_const && right_is_const) {
613
0
            auto col_res = ColumnUInt8::create();
614
615
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
0
            vec_res.resize(col_left->size());
617
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
0
                              typename PrimitiveTypeTraits<PT>::CppType,
619
0
                              Op<PT>>::vector_constant(col_left->get_data(),
620
0
                                                       col_right->get_element(0), vec_res);
621
622
0
            block.replace_by_position(result, std::move(col_res));
623
0
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
8
        return Status::OK();
636
8
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
84
                            const ColumnPtr& col_right_ptr) const {
593
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
84
        DCHECK(!(left_is_const && right_is_const));
600
601
84
        if (!left_is_const && !right_is_const) {
602
56
            auto col_res = ColumnUInt8::create();
603
604
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
56
            vec_res.resize(col_left->get_data().size());
606
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
56
                              typename PrimitiveTypeTraits<PT>::CppType,
608
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
56
                                                     vec_res);
610
611
56
            block.replace_by_position(result, std::move(col_res));
612
56
        } else if (!left_is_const && right_is_const) {
613
28
            auto col_res = ColumnUInt8::create();
614
615
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
28
            vec_res.resize(col_left->size());
617
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
28
                              typename PrimitiveTypeTraits<PT>::CppType,
619
28
                              Op<PT>>::vector_constant(col_left->get_data(),
620
28
                                                       col_right->get_element(0), vec_res);
621
622
28
            block.replace_by_position(result, std::move(col_res));
623
28
        } else if (left_is_const && !right_is_const) {
624
0
            auto col_res = ColumnUInt8::create();
625
626
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
0
            vec_res.resize(col_right->size());
628
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
0
                              typename PrimitiveTypeTraits<PT>::CppType,
630
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
0
                                                       col_right->get_data(), vec_res);
632
633
0
            block.replace_by_position(result, std::move(col_res));
634
0
        }
635
84
        return Status::OK();
636
84
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.85k
                            const ColumnPtr& col_right_ptr) const {
593
2.85k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.85k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.85k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.85k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.85k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.85k
        if (!left_is_const && !right_is_const) {
602
2.57k
            auto col_res = ColumnUInt8::create();
603
604
2.57k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
2.57k
            vec_res.resize(col_left->get_data().size());
606
2.57k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
2.57k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
2.57k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
2.57k
                                                     vec_res);
610
611
2.57k
            block.replace_by_position(result, std::move(col_res));
612
2.57k
        } else if (!left_is_const && right_is_const) {
613
276
            auto col_res = ColumnUInt8::create();
614
615
276
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
276
            vec_res.resize(col_left->size());
617
276
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
276
                              typename PrimitiveTypeTraits<PT>::CppType,
619
276
                              Op<PT>>::vector_constant(col_left->get_data(),
620
276
                                                       col_right->get_element(0), vec_res);
621
622
276
            block.replace_by_position(result, std::move(col_res));
623
276
        } 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.85k
        return Status::OK();
636
2.85k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
880
                            const ColumnPtr& col_right_ptr) const {
593
880
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
880
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
880
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
880
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
880
        DCHECK(!(left_is_const && right_is_const));
600
601
880
        if (!left_is_const && !right_is_const) {
602
400
            auto col_res = ColumnUInt8::create();
603
604
400
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
400
            vec_res.resize(col_left->get_data().size());
606
400
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
400
                              typename PrimitiveTypeTraits<PT>::CppType,
608
400
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
400
                                                     vec_res);
610
611
400
            block.replace_by_position(result, std::move(col_res));
612
480
        } 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
446
        } else if (left_is_const && !right_is_const) {
624
446
            auto col_res = ColumnUInt8::create();
625
626
446
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
446
            vec_res.resize(col_right->size());
628
446
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
446
                              typename PrimitiveTypeTraits<PT>::CppType,
630
446
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
446
                                                       col_right->get_data(), vec_res);
632
633
446
            block.replace_by_position(result, std::move(col_res));
634
446
        }
635
880
        return Status::OK();
636
880
    }
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.60k
                            const ColumnPtr& col_right_ptr) const {
593
1.60k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.60k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.60k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.60k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.60k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.60k
        if (!left_is_const && !right_is_const) {
602
1.56k
            auto col_res = ColumnUInt8::create();
603
604
1.56k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
1.56k
            vec_res.resize(col_left->get_data().size());
606
1.56k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
1.56k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
1.56k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
1.56k
                                                     vec_res);
610
611
1.56k
            block.replace_by_position(result, std::move(col_res));
612
1.56k
        } 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
41
        } 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.60k
        return Status::OK();
636
1.60k
    }
_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
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
3
            auto col_res = ColumnUInt8::create();
603
604
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
3
            vec_res.resize(col_left->get_data().size());
606
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
3
                              typename PrimitiveTypeTraits<PT>::CppType,
608
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
3
                                                     vec_res);
610
611
3
            block.replace_by_position(result, std::move(col_res));
612
3
        } 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
3
        return Status::OK();
636
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.63k
                            const ColumnPtr& col_right_ptr) const {
593
1.63k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.63k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.63k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.63k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.63k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.63k
        if (!left_is_const && !right_is_const) {
602
82
            auto col_res = ColumnUInt8::create();
603
604
82
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
82
            vec_res.resize(col_left->get_data().size());
606
82
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
82
                              typename PrimitiveTypeTraits<PT>::CppType,
608
82
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
82
                                                     vec_res);
610
611
82
            block.replace_by_position(result, std::move(col_res));
612
1.54k
        } else if (!left_is_const && right_is_const) {
613
1.31k
            auto col_res = ColumnUInt8::create();
614
615
1.31k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.31k
            vec_res.resize(col_left->size());
617
1.31k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.31k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.31k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.31k
                                                       col_right->get_element(0), vec_res);
621
622
1.31k
            block.replace_by_position(result, std::move(col_res));
623
1.31k
        } else if (left_is_const && !right_is_const) {
624
234
            auto col_res = ColumnUInt8::create();
625
626
234
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
234
            vec_res.resize(col_right->size());
628
234
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
234
                              typename PrimitiveTypeTraits<PT>::CppType,
630
234
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
234
                                                       col_right->get_data(), vec_res);
632
633
234
            block.replace_by_position(result, std::move(col_res));
634
234
        }
635
1.63k
        return Status::OK();
636
1.63k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.36k
                            const ColumnPtr& col_right_ptr) const {
593
2.36k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.36k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.36k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.36k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.36k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.36k
        if (!left_is_const && !right_is_const) {
602
129
            auto col_res = ColumnUInt8::create();
603
604
129
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
129
            vec_res.resize(col_left->get_data().size());
606
129
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
129
                              typename PrimitiveTypeTraits<PT>::CppType,
608
129
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
129
                                                     vec_res);
610
611
129
            block.replace_by_position(result, std::move(col_res));
612
2.23k
        } else if (!left_is_const && right_is_const) {
613
2.01k
            auto col_res = ColumnUInt8::create();
614
615
2.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
2.01k
            vec_res.resize(col_left->size());
617
2.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
2.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
2.01k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
2.01k
                                                       col_right->get_element(0), vec_res);
621
622
2.01k
            block.replace_by_position(result, std::move(col_res));
623
2.01k
        } else if (left_is_const && !right_is_const) {
624
227
            auto col_res = ColumnUInt8::create();
625
626
227
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
227
            vec_res.resize(col_right->size());
628
227
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
227
                              typename PrimitiveTypeTraits<PT>::CppType,
630
227
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
227
                                                       col_right->get_data(), vec_res);
632
633
227
            block.replace_by_position(result, std::move(col_res));
634
227
        }
635
2.36k
        return Status::OK();
636
2.36k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
14.0k
                            const ColumnPtr& col_right_ptr) const {
593
14.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
14.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
14.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
14.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
14.0k
        DCHECK(!(left_is_const && right_is_const));
600
601
14.0k
        if (!left_is_const && !right_is_const) {
602
71
            auto col_res = ColumnUInt8::create();
603
604
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
71
            vec_res.resize(col_left->get_data().size());
606
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
71
                              typename PrimitiveTypeTraits<PT>::CppType,
608
71
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
71
                                                     vec_res);
610
611
71
            block.replace_by_position(result, std::move(col_res));
612
13.9k
        } else if (!left_is_const && right_is_const) {
613
10.2k
            auto col_res = ColumnUInt8::create();
614
615
10.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
10.2k
            vec_res.resize(col_left->size());
617
10.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
10.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
10.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
10.2k
                                                       col_right->get_element(0), vec_res);
621
622
10.2k
            block.replace_by_position(result, std::move(col_res));
623
10.2k
        } else if (left_is_const && !right_is_const) {
624
3.70k
            auto col_res = ColumnUInt8::create();
625
626
3.70k
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
3.70k
            vec_res.resize(col_right->size());
628
3.70k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
3.70k
                              typename PrimitiveTypeTraits<PT>::CppType,
630
3.70k
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
3.70k
                                                       col_right->get_data(), vec_res);
632
633
3.70k
            block.replace_by_position(result, std::move(col_res));
634
3.70k
        }
635
14.0k
        return Status::OK();
636
14.0k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.55k
                            const ColumnPtr& col_right_ptr) const {
593
2.55k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.55k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.55k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.55k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.55k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.55k
        if (!left_is_const && !right_is_const) {
602
179
            auto col_res = ColumnUInt8::create();
603
604
179
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
179
            vec_res.resize(col_left->get_data().size());
606
179
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
179
                              typename PrimitiveTypeTraits<PT>::CppType,
608
179
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
179
                                                     vec_res);
610
611
179
            block.replace_by_position(result, std::move(col_res));
612
2.37k
        } else if (!left_is_const && right_is_const) {
613
1.85k
            auto col_res = ColumnUInt8::create();
614
615
1.85k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.85k
            vec_res.resize(col_left->size());
617
1.85k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.85k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.85k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.85k
                                                       col_right->get_element(0), vec_res);
621
622
1.85k
            block.replace_by_position(result, std::move(col_res));
623
1.85k
        } else if (left_is_const && !right_is_const) {
624
522
            auto col_res = ColumnUInt8::create();
625
626
522
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
522
            vec_res.resize(col_right->size());
628
522
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
522
                              typename PrimitiveTypeTraits<PT>::CppType,
630
522
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
522
                                                       col_right->get_data(), vec_res);
632
633
522
            block.replace_by_position(result, std::move(col_res));
634
522
        }
635
2.55k
        return Status::OK();
636
2.55k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
247
                            const ColumnPtr& col_right_ptr) const {
593
247
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
247
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
247
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
247
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
247
        DCHECK(!(left_is_const && right_is_const));
600
601
247
        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
245
        } 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
44
            auto col_res = ColumnUInt8::create();
625
626
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
44
            vec_res.resize(col_right->size());
628
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
44
                              typename PrimitiveTypeTraits<PT>::CppType,
630
44
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
44
                                                       col_right->get_data(), vec_res);
632
633
44
            block.replace_by_position(result, std::move(col_res));
634
44
        }
635
247
        return Status::OK();
636
247
    }
_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
323
                            const ColumnPtr& col_right_ptr) const {
593
323
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
323
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
323
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
323
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
323
        DCHECK(!(left_is_const && right_is_const));
600
601
323
        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
323
        return Status::OK();
636
323
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
545
                            const ColumnPtr& col_right_ptr) const {
593
545
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
545
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
545
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
545
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
545
        DCHECK(!(left_is_const && right_is_const));
600
601
545
        if (!left_is_const && !right_is_const) {
602
36
            auto col_res = ColumnUInt8::create();
603
604
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
36
            vec_res.resize(col_left->get_data().size());
606
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
36
                              typename PrimitiveTypeTraits<PT>::CppType,
608
36
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
36
                                                     vec_res);
610
611
36
            block.replace_by_position(result, std::move(col_res));
612
509
        } else if (!left_is_const && right_is_const) {
613
509
            auto col_res = ColumnUInt8::create();
614
615
509
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
509
            vec_res.resize(col_left->size());
617
509
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
509
                              typename PrimitiveTypeTraits<PT>::CppType,
619
509
                              Op<PT>>::vector_constant(col_left->get_data(),
620
509
                                                       col_right->get_element(0), vec_res);
621
622
509
            block.replace_by_position(result, std::move(col_res));
623
509
        } 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
545
        return Status::OK();
636
545
    }
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
23
                            const ColumnPtr& col_right_ptr) const {
593
23
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
23
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
23
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
23
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
23
        DCHECK(!(left_is_const && right_is_const));
600
601
23
        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
23
        } else if (!left_is_const && right_is_const) {
613
23
            auto col_res = ColumnUInt8::create();
614
615
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
23
            vec_res.resize(col_left->size());
617
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
23
                              typename PrimitiveTypeTraits<PT>::CppType,
619
23
                              Op<PT>>::vector_constant(col_left->get_data(),
620
23
                                                       col_right->get_element(0), vec_res);
621
622
23
            block.replace_by_position(result, std::move(col_res));
623
23
        } 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
23
        return Status::OK();
636
23
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
465
                            const ColumnPtr& col_right_ptr) const {
593
465
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
465
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
465
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
465
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
465
        DCHECK(!(left_is_const && right_is_const));
600
601
465
        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
464
        } else if (!left_is_const && right_is_const) {
613
458
            auto col_res = ColumnUInt8::create();
614
615
458
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
458
            vec_res.resize(col_left->size());
617
458
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
458
                              typename PrimitiveTypeTraits<PT>::CppType,
619
458
                              Op<PT>>::vector_constant(col_left->get_data(),
620
458
                                                       col_right->get_element(0), vec_res);
621
622
458
            block.replace_by_position(result, std::move(col_res));
623
458
        } 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
465
        return Status::OK();
636
465
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
124
                            const ColumnPtr& col_right_ptr) const {
593
124
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
124
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
124
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
124
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
124
        DCHECK(!(left_is_const && right_is_const));
600
601
124
        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
117
        } else if (!left_is_const && right_is_const) {
613
117
            auto col_res = ColumnUInt8::create();
614
615
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
117
            vec_res.resize(col_left->size());
617
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
117
                              typename PrimitiveTypeTraits<PT>::CppType,
619
117
                              Op<PT>>::vector_constant(col_left->get_data(),
620
117
                                                       col_right->get_element(0), vec_res);
621
622
117
            block.replace_by_position(result, std::move(col_res));
623
117
        } 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
124
        return Status::OK();
636
124
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
404
                            const ColumnPtr& col_right_ptr) const {
593
404
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
404
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
404
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
404
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
404
        DCHECK(!(left_is_const && right_is_const));
600
601
404
        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
45
            auto col_res = ColumnUInt8::create();
614
615
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
45
            vec_res.resize(col_left->size());
617
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
45
                              typename PrimitiveTypeTraits<PT>::CppType,
619
45
                              Op<PT>>::vector_constant(col_left->get_data(),
620
45
                                                       col_right->get_element(0), vec_res);
621
622
45
            block.replace_by_position(result, std::move(col_res));
623
45
        } 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
404
        return Status::OK();
636
404
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
3
                            const ColumnPtr& col_right_ptr) const {
593
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
3
        DCHECK(!(left_is_const && right_is_const));
600
601
3
        if (!left_is_const && !right_is_const) {
602
3
            auto col_res = ColumnUInt8::create();
603
604
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
3
            vec_res.resize(col_left->get_data().size());
606
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
3
                              typename PrimitiveTypeTraits<PT>::CppType,
608
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
3
                                                     vec_res);
610
611
3
            block.replace_by_position(result, std::move(col_res));
612
3
        } 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
3
        return Status::OK();
636
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
45
                            const ColumnPtr& col_right_ptr) const {
593
45
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
45
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
45
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
45
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
45
        DCHECK(!(left_is_const && right_is_const));
600
601
45
        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
45
        } else if (!left_is_const && right_is_const) {
613
45
            auto col_res = ColumnUInt8::create();
614
615
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
45
            vec_res.resize(col_left->size());
617
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
45
                              typename PrimitiveTypeTraits<PT>::CppType,
619
45
                              Op<PT>>::vector_constant(col_left->get_data(),
620
45
                                                       col_right->get_element(0), vec_res);
621
622
45
            block.replace_by_position(result, std::move(col_res));
623
45
        } 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
45
        return Status::OK();
636
45
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
56
                            const ColumnPtr& col_right_ptr) const {
593
56
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
56
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
56
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
56
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
56
        DCHECK(!(left_is_const && right_is_const));
600
601
56
        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
56
        } else if (!left_is_const && right_is_const) {
613
56
            auto col_res = ColumnUInt8::create();
614
615
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
56
            vec_res.resize(col_left->size());
617
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
56
                              typename PrimitiveTypeTraits<PT>::CppType,
619
56
                              Op<PT>>::vector_constant(col_left->get_data(),
620
56
                                                       col_right->get_element(0), vec_res);
621
622
56
            block.replace_by_position(result, std::move(col_res));
623
56
        } 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
56
        return Status::OK();
636
56
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
627
                            const ColumnPtr& col_right_ptr) const {
593
627
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
627
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
627
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
627
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
627
        DCHECK(!(left_is_const && right_is_const));
600
601
627
        if (!left_is_const && !right_is_const) {
602
16
            auto col_res = ColumnUInt8::create();
603
604
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
16
            vec_res.resize(col_left->get_data().size());
606
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
16
                              typename PrimitiveTypeTraits<PT>::CppType,
608
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
16
                                                     vec_res);
610
611
16
            block.replace_by_position(result, std::move(col_res));
612
611
        } else if (!left_is_const && right_is_const) {
613
611
            auto col_res = ColumnUInt8::create();
614
615
611
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
611
            vec_res.resize(col_left->size());
617
611
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
611
                              typename PrimitiveTypeTraits<PT>::CppType,
619
611
                              Op<PT>>::vector_constant(col_left->get_data(),
620
611
                                                       col_right->get_element(0), vec_res);
621
622
611
            block.replace_by_position(result, std::move(col_res));
623
611
        } 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
627
        return Status::OK();
636
627
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
820
                            const ColumnPtr& col_right_ptr) const {
593
820
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
820
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
820
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
820
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
820
        DCHECK(!(left_is_const && right_is_const));
600
601
820
        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
796
        } else if (!left_is_const && right_is_const) {
613
796
            auto col_res = ColumnUInt8::create();
614
615
796
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
796
            vec_res.resize(col_left->size());
617
796
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
796
                              typename PrimitiveTypeTraits<PT>::CppType,
619
796
                              Op<PT>>::vector_constant(col_left->get_data(),
620
796
                                                       col_right->get_element(0), vec_res);
621
622
796
            block.replace_by_position(result, std::move(col_res));
623
796
        } 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
820
        return Status::OK();
636
820
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
38
                            const ColumnPtr& col_right_ptr) const {
593
38
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
38
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
38
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
38
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
38
        DCHECK(!(left_is_const && right_is_const));
600
601
38
        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
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
38
        return Status::OK();
636
38
    }
_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
583
                            const ColumnPtr& col_right_ptr) const {
593
583
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
583
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
583
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
583
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
583
        DCHECK(!(left_is_const && right_is_const));
600
601
583
        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
475
        } else if (!left_is_const && right_is_const) {
613
475
            auto col_res = ColumnUInt8::create();
614
615
475
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
475
            vec_res.resize(col_left->size());
617
475
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
475
                              typename PrimitiveTypeTraits<PT>::CppType,
619
475
                              Op<PT>>::vector_constant(col_left->get_data(),
620
475
                                                       col_right->get_element(0), vec_res);
621
622
475
            block.replace_by_position(result, std::move(col_res));
623
475
        } 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
583
        return Status::OK();
636
583
    }
_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
186
                            const ColumnPtr& col_right_ptr) const {
593
186
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
186
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
186
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
186
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
186
        DCHECK(!(left_is_const && right_is_const));
600
601
186
        if (!left_is_const && !right_is_const) {
602
25
            auto col_res = ColumnUInt8::create();
603
604
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
25
            vec_res.resize(col_left->get_data().size());
606
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
25
                              typename PrimitiveTypeTraits<PT>::CppType,
608
25
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
25
                                                     vec_res);
610
611
25
            block.replace_by_position(result, std::move(col_res));
612
161
        } else if (!left_is_const && right_is_const) {
613
161
            auto col_res = ColumnUInt8::create();
614
615
161
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
161
            vec_res.resize(col_left->size());
617
161
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
161
                              typename PrimitiveTypeTraits<PT>::CppType,
619
161
                              Op<PT>>::vector_constant(col_left->get_data(),
620
161
                                                       col_right->get_element(0), vec_res);
621
622
161
            block.replace_by_position(result, std::move(col_res));
623
161
        } 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
186
        return Status::OK();
636
186
    }
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
86
                            const ColumnPtr& col_right_ptr) const {
593
86
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
86
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
86
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
86
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
86
        DCHECK(!(left_is_const && right_is_const));
600
601
86
        if (!left_is_const && !right_is_const) {
602
86
            auto col_res = ColumnUInt8::create();
603
604
86
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
86
            vec_res.resize(col_left->get_data().size());
606
86
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
86
                              typename PrimitiveTypeTraits<PT>::CppType,
608
86
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
86
                                                     vec_res);
610
611
86
            block.replace_by_position(result, std::move(col_res));
612
86
        } 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
86
        return Status::OK();
636
86
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.51k
                            const ColumnPtr& col_right_ptr) const {
593
2.51k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.51k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.51k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.51k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.51k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.51k
        if (!left_is_const && !right_is_const) {
602
2.15k
            auto col_res = ColumnUInt8::create();
603
604
2.15k
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
2.15k
            vec_res.resize(col_left->get_data().size());
606
2.15k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
2.15k
                              typename PrimitiveTypeTraits<PT>::CppType,
608
2.15k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
2.15k
                                                     vec_res);
610
611
2.15k
            block.replace_by_position(result, std::move(col_res));
612
2.15k
        } else if (!left_is_const && right_is_const) {
613
365
            auto col_res = ColumnUInt8::create();
614
615
365
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
365
            vec_res.resize(col_left->size());
617
365
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
365
                              typename PrimitiveTypeTraits<PT>::CppType,
619
365
                              Op<PT>>::vector_constant(col_left->get_data(),
620
365
                                                       col_right->get_element(0), vec_res);
621
622
365
            block.replace_by_position(result, std::move(col_res));
623
365
        } 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.51k
        return Status::OK();
636
2.51k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
292
                            const ColumnPtr& col_right_ptr) const {
593
292
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
292
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
292
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
292
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
292
        DCHECK(!(left_is_const && right_is_const));
600
601
292
        if (!left_is_const && !right_is_const) {
602
234
            auto col_res = ColumnUInt8::create();
603
604
234
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
234
            vec_res.resize(col_left->get_data().size());
606
234
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
234
                              typename PrimitiveTypeTraits<PT>::CppType,
608
234
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
234
                                                     vec_res);
610
611
234
            block.replace_by_position(result, std::move(col_res));
612
234
        } else if (!left_is_const && right_is_const) {
613
58
            auto col_res = ColumnUInt8::create();
614
615
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
58
            vec_res.resize(col_left->size());
617
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
58
                              typename PrimitiveTypeTraits<PT>::CppType,
619
58
                              Op<PT>>::vector_constant(col_left->get_data(),
620
58
                                                       col_right->get_element(0), vec_res);
621
622
58
            block.replace_by_position(result, std::move(col_res));
623
58
        } 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
292
        return Status::OK();
636
292
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
151
                            const ColumnPtr& col_right_ptr) const {
593
151
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
151
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
151
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
151
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
151
        DCHECK(!(left_is_const && right_is_const));
600
601
151
        if (!left_is_const && !right_is_const) {
602
112
            auto col_res = ColumnUInt8::create();
603
604
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
112
            vec_res.resize(col_left->get_data().size());
606
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
112
                              typename PrimitiveTypeTraits<PT>::CppType,
608
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
112
                                                     vec_res);
610
611
112
            block.replace_by_position(result, std::move(col_res));
612
112
        } 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
151
        return Status::OK();
636
151
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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
3
            auto col_res = ColumnUInt8::create();
603
604
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
3
            vec_res.resize(col_left->get_data().size());
606
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
3
                              typename PrimitiveTypeTraits<PT>::CppType,
608
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
3
                                                     vec_res);
610
611
3
            block.replace_by_position(result, std::move(col_res));
612
3
        } 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
4
        return Status::OK();
636
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.36k
                            const ColumnPtr& col_right_ptr) const {
593
2.36k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.36k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.36k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.36k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.36k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.36k
        if (!left_is_const && !right_is_const) {
602
228
            auto col_res = ColumnUInt8::create();
603
604
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
228
            vec_res.resize(col_left->get_data().size());
606
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
228
                              typename PrimitiveTypeTraits<PT>::CppType,
608
228
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
228
                                                     vec_res);
610
611
228
            block.replace_by_position(result, std::move(col_res));
612
2.13k
        } else if (!left_is_const && right_is_const) {
613
1.89k
            auto col_res = ColumnUInt8::create();
614
615
1.89k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
1.89k
            vec_res.resize(col_left->size());
617
1.89k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
1.89k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
1.89k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
1.89k
                                                       col_right->get_element(0), vec_res);
621
622
1.89k
            block.replace_by_position(result, std::move(col_res));
623
1.89k
        } else if (left_is_const && !right_is_const) {
624
240
            auto col_res = ColumnUInt8::create();
625
626
240
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
240
            vec_res.resize(col_right->size());
628
240
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
240
                              typename PrimitiveTypeTraits<PT>::CppType,
630
240
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
240
                                                       col_right->get_data(), vec_res);
632
633
240
            block.replace_by_position(result, std::move(col_res));
634
240
        }
635
2.36k
        return Status::OK();
636
2.36k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
170
                            const ColumnPtr& col_right_ptr) const {
593
170
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
170
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
170
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
170
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
170
        DCHECK(!(left_is_const && right_is_const));
600
601
171
        if (!left_is_const && !right_is_const) {
602
157
            auto col_res = ColumnUInt8::create();
603
604
157
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
157
            vec_res.resize(col_left->get_data().size());
606
157
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
157
                              typename PrimitiveTypeTraits<PT>::CppType,
608
157
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
157
                                                     vec_res);
610
611
157
            block.replace_by_position(result, std::move(col_res));
612
157
        } 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
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
170
        return Status::OK();
636
170
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
2.04k
                            const ColumnPtr& col_right_ptr) const {
593
2.04k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
2.04k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
2.04k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
2.04k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
2.04k
        DCHECK(!(left_is_const && right_is_const));
600
601
2.04k
        if (!left_is_const && !right_is_const) {
602
917
            auto col_res = ColumnUInt8::create();
603
604
917
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
917
            vec_res.resize(col_left->get_data().size());
606
917
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
917
                              typename PrimitiveTypeTraits<PT>::CppType,
608
917
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
917
                                                     vec_res);
610
611
917
            block.replace_by_position(result, std::move(col_res));
612
1.13k
        } else if (!left_is_const && right_is_const) {
613
938
            auto col_res = ColumnUInt8::create();
614
615
938
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
938
            vec_res.resize(col_left->size());
617
938
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
938
                              typename PrimitiveTypeTraits<PT>::CppType,
619
938
                              Op<PT>>::vector_constant(col_left->get_data(),
620
938
                                                       col_right->get_element(0), vec_res);
621
622
938
            block.replace_by_position(result, std::move(col_res));
623
938
        } else if (left_is_const && !right_is_const) {
624
193
            auto col_res = ColumnUInt8::create();
625
626
193
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
193
            vec_res.resize(col_right->size());
628
193
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
193
                              typename PrimitiveTypeTraits<PT>::CppType,
630
193
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
193
                                                       col_right->get_data(), vec_res);
632
633
193
            block.replace_by_position(result, std::move(col_res));
634
193
        }
635
2.04k
        return Status::OK();
636
2.04k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
902
                            const ColumnPtr& col_right_ptr) const {
593
902
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
902
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
902
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
902
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
902
        DCHECK(!(left_is_const && right_is_const));
600
601
902
        if (!left_is_const && !right_is_const) {
602
267
            auto col_res = ColumnUInt8::create();
603
604
267
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
267
            vec_res.resize(col_left->get_data().size());
606
267
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
267
                              typename PrimitiveTypeTraits<PT>::CppType,
608
267
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
267
                                                     vec_res);
610
611
267
            block.replace_by_position(result, std::move(col_res));
612
635
        } else if (!left_is_const && right_is_const) {
613
556
            auto col_res = ColumnUInt8::create();
614
615
556
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
556
            vec_res.resize(col_left->size());
617
556
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
556
                              typename PrimitiveTypeTraits<PT>::CppType,
619
556
                              Op<PT>>::vector_constant(col_left->get_data(),
620
556
                                                       col_right->get_element(0), vec_res);
621
622
556
            block.replace_by_position(result, std::move(col_res));
623
556
        } else if (left_is_const && !right_is_const) {
624
79
            auto col_res = ColumnUInt8::create();
625
626
79
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
79
            vec_res.resize(col_right->size());
628
79
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
79
                              typename PrimitiveTypeTraits<PT>::CppType,
630
79
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
79
                                                       col_right->get_data(), vec_res);
632
633
79
            block.replace_by_position(result, std::move(col_res));
634
79
        }
635
902
        return Status::OK();
636
902
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
208
                            const ColumnPtr& col_right_ptr) const {
593
208
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
208
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
208
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
208
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
208
        DCHECK(!(left_is_const && right_is_const));
600
601
208
        if (!left_is_const && !right_is_const) {
602
138
            auto col_res = ColumnUInt8::create();
603
604
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
138
            vec_res.resize(col_left->get_data().size());
606
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
138
                              typename PrimitiveTypeTraits<PT>::CppType,
608
138
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
138
                                                     vec_res);
610
611
138
            block.replace_by_position(result, std::move(col_res));
612
138
        } else if (!left_is_const && right_is_const) {
613
54
            auto col_res = ColumnUInt8::create();
614
615
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
54
            vec_res.resize(col_left->size());
617
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
54
                              typename PrimitiveTypeTraits<PT>::CppType,
619
54
                              Op<PT>>::vector_constant(col_left->get_data(),
620
54
                                                       col_right->get_element(0), vec_res);
621
622
54
            block.replace_by_position(result, std::move(col_res));
623
54
        } 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
208
        return Status::OK();
636
208
    }
_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
131
                            const ColumnPtr& col_right_ptr) const {
593
131
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
131
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
131
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
131
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
131
        DCHECK(!(left_is_const && right_is_const));
600
601
131
        if (!left_is_const && !right_is_const) {
602
131
            auto col_res = ColumnUInt8::create();
603
604
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
131
            vec_res.resize(col_left->get_data().size());
606
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
131
                              typename PrimitiveTypeTraits<PT>::CppType,
608
131
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
131
                                                     vec_res);
610
611
131
            block.replace_by_position(result, std::move(col_res));
612
131
        } 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
131
        return Status::OK();
636
131
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
1.13k
                            const ColumnPtr& col_right_ptr) const {
593
1.13k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
1.13k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
1.13k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
1.13k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
1.13k
        DCHECK(!(left_is_const && right_is_const));
600
601
1.13k
        if (!left_is_const && !right_is_const) {
602
133
            auto col_res = ColumnUInt8::create();
603
604
133
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
133
            vec_res.resize(col_left->get_data().size());
606
133
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
133
                              typename PrimitiveTypeTraits<PT>::CppType,
608
133
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
133
                                                     vec_res);
610
611
133
            block.replace_by_position(result, std::move(col_res));
612
1.00k
        } 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
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.13k
        return Status::OK();
636
1.13k
    }
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
42
                            const ColumnPtr& col_right_ptr) const {
593
42
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
42
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
42
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
42
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
42
        DCHECK(!(left_is_const && right_is_const));
600
601
42
        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
42
        } else if (!left_is_const && right_is_const) {
613
42
            auto col_res = ColumnUInt8::create();
614
615
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
42
            vec_res.resize(col_left->size());
617
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
42
                              typename PrimitiveTypeTraits<PT>::CppType,
619
42
                              Op<PT>>::vector_constant(col_left->get_data(),
620
42
                                                       col_right->get_element(0), vec_res);
621
622
42
            block.replace_by_position(result, std::move(col_res));
623
42
        } 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
42
        return Status::OK();
636
42
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
576
                            const ColumnPtr& col_right_ptr) const {
593
576
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
576
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
576
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
576
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
576
        DCHECK(!(left_is_const && right_is_const));
600
601
576
        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
178
            auto col_res = ColumnUInt8::create();
614
615
178
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
178
            vec_res.resize(col_left->size());
617
178
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
178
                              typename PrimitiveTypeTraits<PT>::CppType,
619
178
                              Op<PT>>::vector_constant(col_left->get_data(),
620
178
                                                       col_right->get_element(0), vec_res);
621
622
178
            block.replace_by_position(result, std::move(col_res));
623
178
        } 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
576
        return Status::OK();
636
576
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_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
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
78
        } else if (!left_is_const && right_is_const) {
613
78
            auto col_res = ColumnUInt8::create();
614
615
78
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
78
            vec_res.resize(col_left->size());
617
78
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
78
                              typename PrimitiveTypeTraits<PT>::CppType,
619
78
                              Op<PT>>::vector_constant(col_left->get_data(),
620
78
                                                       col_right->get_element(0), vec_res);
621
622
78
            block.replace_by_position(result, std::move(col_res));
623
78
        } 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
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
61
                            const ColumnPtr& col_right_ptr) const {
593
61
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
61
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
61
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
61
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
61
        DCHECK(!(left_is_const && right_is_const));
600
601
61
        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
37
        } else if (!left_is_const && right_is_const) {
613
37
            auto col_res = ColumnUInt8::create();
614
615
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
37
            vec_res.resize(col_left->size());
617
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
37
                              typename PrimitiveTypeTraits<PT>::CppType,
619
37
                              Op<PT>>::vector_constant(col_left->get_data(),
620
37
                                                       col_right->get_element(0), vec_res);
621
622
37
            block.replace_by_position(result, std::move(col_res));
623
37
        } 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
61
        return Status::OK();
636
61
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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
3
            auto col_res = ColumnUInt8::create();
603
604
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
3
            vec_res.resize(col_left->get_data().size());
606
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
3
                              typename PrimitiveTypeTraits<PT>::CppType,
608
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
3
                                                     vec_res);
610
611
3
            block.replace_by_position(result, std::move(col_res));
612
3
        } 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
4
        return Status::OK();
636
4
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
56
                            const ColumnPtr& col_right_ptr) const {
593
56
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
56
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
56
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
56
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
56
        DCHECK(!(left_is_const && right_is_const));
600
601
56
        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
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
56
        return Status::OK();
636
56
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
69
                            const ColumnPtr& col_right_ptr) const {
593
69
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
69
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
69
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
69
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
69
        DCHECK(!(left_is_const && right_is_const));
600
601
69
        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
69
        } else if (!left_is_const && right_is_const) {
613
69
            auto col_res = ColumnUInt8::create();
614
615
69
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
69
            vec_res.resize(col_left->size());
617
69
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
69
                              typename PrimitiveTypeTraits<PT>::CppType,
619
69
                              Op<PT>>::vector_constant(col_left->get_data(),
620
69
                                                       col_right->get_element(0), vec_res);
621
622
69
            block.replace_by_position(result, std::move(col_res));
623
69
        } 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
69
        return Status::OK();
636
69
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
6.21k
                            const ColumnPtr& col_right_ptr) const {
593
6.21k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
6.21k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
6.21k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
6.21k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
6.21k
        DCHECK(!(left_is_const && right_is_const));
600
601
6.21k
        if (!left_is_const && !right_is_const) {
602
36
            auto col_res = ColumnUInt8::create();
603
604
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
36
            vec_res.resize(col_left->get_data().size());
606
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
36
                              typename PrimitiveTypeTraits<PT>::CppType,
608
36
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
36
                                                     vec_res);
610
611
36
            block.replace_by_position(result, std::move(col_res));
612
6.18k
        } else if (!left_is_const && right_is_const) {
613
5.92k
            auto col_res = ColumnUInt8::create();
614
615
5.92k
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
5.92k
            vec_res.resize(col_left->size());
617
5.92k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
5.92k
                              typename PrimitiveTypeTraits<PT>::CppType,
619
5.92k
                              Op<PT>>::vector_constant(col_left->get_data(),
620
5.92k
                                                       col_right->get_element(0), vec_res);
621
622
5.92k
            block.replace_by_position(result, std::move(col_res));
623
5.92k
        } else if (left_is_const && !right_is_const) {
624
275
            auto col_res = ColumnUInt8::create();
625
626
275
            ColumnUInt8::Container& vec_res = col_res->get_data();
627
275
            vec_res.resize(col_right->size());
628
275
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
629
275
                              typename PrimitiveTypeTraits<PT>::CppType,
630
275
                              Op<PT>>::constant_vector(col_left->get_element(0),
631
275
                                                       col_right->get_data(), vec_res);
632
633
275
            block.replace_by_position(result, std::move(col_res));
634
275
        }
635
6.21k
        return Status::OK();
636
6.21k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
743
                            const ColumnPtr& col_right_ptr) const {
593
743
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
743
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
743
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
743
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
743
        DCHECK(!(left_is_const && right_is_const));
600
601
743
        if (!left_is_const && !right_is_const) {
602
37
            auto col_res = ColumnUInt8::create();
603
604
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
605
37
            vec_res.resize(col_left->get_data().size());
606
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
607
37
                              typename PrimitiveTypeTraits<PT>::CppType,
608
37
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
609
37
                                                     vec_res);
610
611
37
            block.replace_by_position(result, std::move(col_res));
612
706
        } else if (!left_is_const && right_is_const) {
613
658
            auto col_res = ColumnUInt8::create();
614
615
658
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
658
            vec_res.resize(col_left->size());
617
658
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
658
                              typename PrimitiveTypeTraits<PT>::CppType,
619
658
                              Op<PT>>::vector_constant(col_left->get_data(),
620
658
                                                       col_right->get_element(0), vec_res);
621
622
658
            block.replace_by_position(result, std::move(col_res));
623
658
        } 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
743
        return Status::OK();
636
743
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
592
52
                            const ColumnPtr& col_right_ptr) const {
593
52
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
52
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
52
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
52
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
52
        DCHECK(!(left_is_const && right_is_const));
600
601
52
        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
52
        } else if (!left_is_const && right_is_const) {
613
52
            auto col_res = ColumnUInt8::create();
614
615
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
52
            vec_res.resize(col_left->size());
617
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
52
                              typename PrimitiveTypeTraits<PT>::CppType,
619
52
                              Op<PT>>::vector_constant(col_left->get_data(),
620
52
                                                       col_right->get_element(0), vec_res);
621
622
52
            block.replace_by_position(result, std::move(col_res));
623
52
        } 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
52
        return Status::OK();
636
52
    }
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
423
                            const ColumnPtr& col_right_ptr) const {
593
423
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
423
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
423
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
423
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
423
        DCHECK(!(left_is_const && right_is_const));
600
601
423
        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
319
        } else if (!left_is_const && right_is_const) {
613
319
            auto col_res = ColumnUInt8::create();
614
615
319
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
319
            vec_res.resize(col_left->size());
617
319
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
319
                              typename PrimitiveTypeTraits<PT>::CppType,
619
319
                              Op<PT>>::vector_constant(col_left->get_data(),
620
319
                                                       col_right->get_element(0), vec_res);
621
622
319
            block.replace_by_position(result, std::move(col_res));
623
319
        } 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
423
        return Status::OK();
636
423
    }
_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
142
                            const ColumnPtr& col_right_ptr) const {
593
142
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
594
142
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
595
596
142
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
597
142
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
598
599
142
        DCHECK(!(left_is_const && right_is_const));
600
601
142
        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
122
        } else if (!left_is_const && right_is_const) {
613
122
            auto col_res = ColumnUInt8::create();
614
615
122
            ColumnUInt8::Container& vec_res = col_res->get_data();
616
122
            vec_res.resize(col_left->size());
617
122
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
618
122
                              typename PrimitiveTypeTraits<PT>::CppType,
619
122
                              Op<PT>>::vector_constant(col_left->get_data(),
620
122
                                                       col_right->get_element(0), vec_res);
621
622
122
            block.replace_by_position(result, std::move(col_res));
623
122
        } 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
142
        return Status::OK();
636
142
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
637
638
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
639
3.37k
                           const ColumnWithTypeAndName& col_right) const {
640
3.38k
        auto call = [&](const auto& type) -> bool {
641
3.38k
            using DispatchType = std::decay_t<decltype(type)>;
642
3.38k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
3.38k
                    block, result, col_left, col_right);
644
3.38k
            return true;
645
3.38k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
640
97
        auto call = [&](const auto& type) -> bool {
641
97
            using DispatchType = std::decay_t<decltype(type)>;
642
97
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
97
                    block, result, col_left, col_right);
644
97
            return true;
645
97
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
115
        auto call = [&](const auto& type) -> bool {
641
115
            using DispatchType = std::decay_t<decltype(type)>;
642
115
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
115
                    block, result, col_left, col_right);
644
115
            return true;
645
115
        };
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
874
        auto call = [&](const auto& type) -> bool {
641
874
            using DispatchType = std::decay_t<decltype(type)>;
642
874
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
874
                    block, result, col_left, col_right);
644
874
            return true;
645
874
        };
_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
71
        auto call = [&](const auto& type) -> bool {
641
71
            using DispatchType = std::decay_t<decltype(type)>;
642
71
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
71
                    block, result, col_left, col_right);
644
71
            return true;
645
71
        };
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
740
        auto call = [&](const auto& type) -> bool {
641
740
            using DispatchType = std::decay_t<decltype(type)>;
642
740
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
740
                    block, result, col_left, col_right);
644
740
            return true;
645
740
        };
_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
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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
87
        auto call = [&](const auto& type) -> bool {
641
87
            using DispatchType = std::decay_t<decltype(type)>;
642
87
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
87
                    block, result, col_left, col_right);
644
87
            return true;
645
87
        };
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
84
        auto call = [&](const auto& type) -> bool {
641
84
            using DispatchType = std::decay_t<decltype(type)>;
642
84
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
84
                    block, result, col_left, col_right);
644
84
            return true;
645
84
        };
_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
162
        auto call = [&](const auto& type) -> bool {
641
162
            using DispatchType = std::decay_t<decltype(type)>;
642
162
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
162
                    block, result, col_left, col_right);
644
162
            return true;
645
162
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
190
        auto call = [&](const auto& type) -> bool {
641
190
            using DispatchType = std::decay_t<decltype(type)>;
642
190
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
190
                    block, result, col_left, col_right);
644
190
            return true;
645
190
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
640
570
        auto call = [&](const auto& type) -> bool {
641
570
            using DispatchType = std::decay_t<decltype(type)>;
642
570
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
570
                    block, result, col_left, col_right);
644
570
            return true;
645
570
        };
_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
7
        auto call = [&](const auto& type) -> bool {
641
7
            using DispatchType = std::decay_t<decltype(type)>;
642
7
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
7
                    block, result, col_left, col_right);
644
7
            return true;
645
7
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
640
105
        auto call = [&](const auto& type) -> bool {
641
105
            using DispatchType = std::decay_t<decltype(type)>;
642
105
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
105
                    block, result, col_left, col_right);
644
105
            return true;
645
105
        };
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
96
        auto call = [&](const auto& type) -> bool {
641
96
            using DispatchType = std::decay_t<decltype(type)>;
642
96
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
96
                    block, result, col_left, col_right);
644
96
            return true;
645
96
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
640
12
        auto call = [&](const auto& type) -> bool {
641
12
            using DispatchType = std::decay_t<decltype(type)>;
642
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
12
                    block, result, col_left, col_right);
644
12
            return true;
645
12
        };
646
647
3.37k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
648
0
            return Status::RuntimeError(
649
0
                    "type of left column {} is not equal to type of right column {}",
650
0
                    col_left.type->get_name(), col_right.type->get_name());
651
0
        }
652
653
3.37k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
654
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
655
0
                                        col_left.type->get_name(), col_right.type->get_name());
656
0
        }
657
3.37k
        return Status::OK();
658
3.37k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
1.10k
                           const ColumnWithTypeAndName& col_right) const {
640
1.10k
        auto call = [&](const auto& type) -> bool {
641
1.10k
            using DispatchType = std::decay_t<decltype(type)>;
642
1.10k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
1.10k
                    block, result, col_left, col_right);
644
1.10k
            return true;
645
1.10k
        };
646
647
1.10k
        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.10k
        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.10k
        return Status::OK();
658
1.10k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_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_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
815
                           const ColumnWithTypeAndName& col_right) const {
640
815
        auto call = [&](const auto& type) -> bool {
641
815
            using DispatchType = std::decay_t<decltype(type)>;
642
815
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
815
                    block, result, col_left, col_right);
644
815
            return true;
645
815
        };
646
647
815
        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
815
        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
815
        return Status::OK();
658
815
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
192
                           const ColumnWithTypeAndName& col_right) const {
640
192
        auto call = [&](const auto& type) -> bool {
641
192
            using DispatchType = std::decay_t<decltype(type)>;
642
192
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
192
                    block, result, col_left, col_right);
644
192
            return true;
645
192
        };
646
647
192
        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
192
        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
192
        return Status::OK();
658
192
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
922
                           const ColumnWithTypeAndName& col_right) const {
640
922
        auto call = [&](const auto& type) -> bool {
641
922
            using DispatchType = std::decay_t<decltype(type)>;
642
922
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
922
                    block, result, col_left, col_right);
644
922
            return true;
645
922
        };
646
647
922
        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
922
        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
922
        return Status::OK();
658
922
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
639
220
                           const ColumnWithTypeAndName& col_right) const {
640
220
        auto call = [&](const auto& type) -> bool {
641
220
            using DispatchType = std::decay_t<decltype(type)>;
642
220
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
643
220
                    block, result, col_left, col_right);
644
220
            return true;
645
220
        };
646
647
220
        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
220
        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
220
        return Status::OK();
658
220
    }
659
660
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
661
22.6k
                          const IColumn* c1) const {
662
22.6k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
22.6k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
22.6k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
22.6k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
22.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
22.6k
        DCHECK(!(c0_const && c1_const));
671
22.6k
        const ColumnString::Chars* c0_const_chars = nullptr;
672
22.6k
        const ColumnString::Chars* c1_const_chars = nullptr;
673
22.6k
        ColumnString::Offset c0_const_size = 0;
674
22.6k
        ColumnString::Offset c1_const_size = 0;
675
676
22.6k
        if (c0_const) {
677
95
            const ColumnString* c0_const_string =
678
95
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
95
            if (c0_const_string) {
681
95
                c0_const_chars = &c0_const_string->get_chars();
682
95
                c0_const_size = c0_const_string->get_offsets()[0];
683
95
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
95
        }
688
689
22.6k
        if (c1_const) {
690
21.6k
            const ColumnString* c1_const_string =
691
21.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
21.6k
            if (c1_const_string) {
694
21.6k
                c1_const_chars = &c1_const_string->get_chars();
695
21.6k
                c1_const_size = c1_const_string->get_offsets()[0];
696
18.4E
            } else {
697
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
18.4E
                                            c1->get_name(), name);
699
18.4E
            }
700
21.6k
        }
701
702
22.6k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
22.6k
        auto c_res = ColumnUInt8::create();
705
22.6k
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
22.6k
        vec_res.resize(c0->size());
707
708
22.6k
        if (c0_string && c1_string) {
709
873
            StringImpl::string_vector_string_vector(
710
873
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
873
                    c1_string->get_offsets(), vec_res);
712
21.7k
        } else if (c0_string && c1_const) {
713
21.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
21.6k
                                               *c1_const_chars, c1_const_size, vec_res);
715
21.6k
        } else if (c0_const && c1_string) {
716
95
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
95
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
95
                                               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.6k
        block.replace_by_position(result, std::move(c_res));
724
22.6k
        return Status::OK();
725
22.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
21.1k
                          const IColumn* c1) const {
662
21.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
21.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
21.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
21.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
21.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
21.1k
        DCHECK(!(c0_const && c1_const));
671
21.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
672
21.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
673
21.1k
        ColumnString::Offset c0_const_size = 0;
674
21.1k
        ColumnString::Offset c1_const_size = 0;
675
676
21.1k
        if (c0_const) {
677
19
            const ColumnString* c0_const_string =
678
19
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
19
            if (c0_const_string) {
681
19
                c0_const_chars = &c0_const_string->get_chars();
682
19
                c0_const_size = c0_const_string->get_offsets()[0];
683
19
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
19
        }
688
689
21.1k
        if (c1_const) {
690
20.7k
            const ColumnString* c1_const_string =
691
20.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
20.7k
            if (c1_const_string) {
694
20.7k
                c1_const_chars = &c1_const_string->get_chars();
695
20.7k
                c1_const_size = c1_const_string->get_offsets()[0];
696
18.4E
            } else {
697
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
18.4E
                                            c1->get_name(), name);
699
18.4E
            }
700
20.7k
        }
701
702
21.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
21.1k
        auto c_res = ColumnUInt8::create();
705
21.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
21.1k
        vec_res.resize(c0->size());
707
708
21.1k
        if (c0_string && c1_string) {
709
429
            StringImpl::string_vector_string_vector(
710
429
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
429
                    c1_string->get_offsets(), vec_res);
712
20.7k
        } else if (c0_string && c1_const) {
713
20.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
20.7k
                                               *c1_const_chars, c1_const_size, vec_res);
715
20.7k
        } else if (c0_const && c1_string) {
716
19
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
19
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
19
                                               vec_res);
719
18.4E
        } else {
720
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
18.4E
                                        c0->get_name(), c1->get_name(), name);
722
18.4E
        }
723
21.1k
        block.replace_by_position(result, std::move(c_res));
724
21.1k
        return Status::OK();
725
21.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
125
                          const IColumn* c1) const {
662
125
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
125
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
125
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
125
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
125
        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
125
        DCHECK(!(c0_const && c1_const));
671
125
        const ColumnString::Chars* c0_const_chars = nullptr;
672
125
        const ColumnString::Chars* c1_const_chars = nullptr;
673
125
        ColumnString::Offset c0_const_size = 0;
674
125
        ColumnString::Offset c1_const_size = 0;
675
676
125
        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
125
        if (c1_const) {
690
110
            const ColumnString* c1_const_string =
691
110
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
110
            if (c1_const_string) {
694
110
                c1_const_chars = &c1_const_string->get_chars();
695
110
                c1_const_size = c1_const_string->get_offsets()[0];
696
110
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
110
        }
701
702
125
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
125
        auto c_res = ColumnUInt8::create();
705
125
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
125
        vec_res.resize(c0->size());
707
708
125
        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
110
        } else if (c0_string && c1_const) {
713
110
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
110
                                               *c1_const_chars, c1_const_size, vec_res);
715
110
        } 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
125
        block.replace_by_position(result, std::move(c_res));
724
125
        return Status::OK();
725
125
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
198
                          const IColumn* c1) const {
662
198
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
198
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
198
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
198
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
198
        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
198
        DCHECK(!(c0_const && c1_const));
671
198
        const ColumnString::Chars* c0_const_chars = nullptr;
672
198
        const ColumnString::Chars* c1_const_chars = nullptr;
673
198
        ColumnString::Offset c0_const_size = 0;
674
198
        ColumnString::Offset c1_const_size = 0;
675
676
198
        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
198
        if (c1_const) {
690
196
            const ColumnString* c1_const_string =
691
196
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
196
            if (c1_const_string) {
694
196
                c1_const_chars = &c1_const_string->get_chars();
695
196
                c1_const_size = c1_const_string->get_offsets()[0];
696
196
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
196
        }
701
702
198
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
198
        auto c_res = ColumnUInt8::create();
705
198
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
198
        vec_res.resize(c0->size());
707
708
198
        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
196
        } else if (c0_string && c1_const) {
713
196
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
196
                                               *c1_const_chars, c1_const_size, vec_res);
715
196
        } 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
198
        block.replace_by_position(result, std::move(c_res));
724
198
        return Status::OK();
725
198
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
331
                          const IColumn* c1) const {
662
331
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
331
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
331
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
331
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
331
        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
331
        DCHECK(!(c0_const && c1_const));
671
331
        const ColumnString::Chars* c0_const_chars = nullptr;
672
331
        const ColumnString::Chars* c1_const_chars = nullptr;
673
331
        ColumnString::Offset c0_const_size = 0;
674
331
        ColumnString::Offset c1_const_size = 0;
675
676
331
        if (c0_const) {
677
70
            const ColumnString* c0_const_string =
678
70
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
70
            if (c0_const_string) {
681
70
                c0_const_chars = &c0_const_string->get_chars();
682
70
                c0_const_size = c0_const_string->get_offsets()[0];
683
70
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
70
        }
688
689
331
        if (c1_const) {
690
230
            const ColumnString* c1_const_string =
691
230
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
230
            if (c1_const_string) {
694
230
                c1_const_chars = &c1_const_string->get_chars();
695
230
                c1_const_size = c1_const_string->get_offsets()[0];
696
230
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
230
        }
701
702
331
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
331
        auto c_res = ColumnUInt8::create();
705
331
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
331
        vec_res.resize(c0->size());
707
708
331
        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
300
        } else if (c0_string && c1_const) {
713
230
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
230
                                               *c1_const_chars, c1_const_size, vec_res);
715
230
        } else if (c0_const && c1_string) {
716
70
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
70
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
70
                                               vec_res);
719
70
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
331
        block.replace_by_position(result, std::move(c_res));
724
331
        return Status::OK();
725
331
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
510
                          const IColumn* c1) const {
662
510
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
510
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
510
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
510
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
510
        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
510
        DCHECK(!(c0_const && c1_const));
671
510
        const ColumnString::Chars* c0_const_chars = nullptr;
672
510
        const ColumnString::Chars* c1_const_chars = nullptr;
673
510
        ColumnString::Offset c0_const_size = 0;
674
510
        ColumnString::Offset c1_const_size = 0;
675
676
510
        if (c0_const) {
677
6
            const ColumnString* c0_const_string =
678
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
679
680
6
            if (c0_const_string) {
681
6
                c0_const_chars = &c0_const_string->get_chars();
682
6
                c0_const_size = c0_const_string->get_offsets()[0];
683
6
            } else {
684
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
685
0
                                            c0->get_name(), name);
686
0
            }
687
6
        }
688
689
510
        if (c1_const) {
690
108
            const ColumnString* c1_const_string =
691
108
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
108
            if (c1_const_string) {
694
108
                c1_const_chars = &c1_const_string->get_chars();
695
108
                c1_const_size = c1_const_string->get_offsets()[0];
696
108
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
108
        }
701
702
510
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
510
        auto c_res = ColumnUInt8::create();
705
510
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
510
        vec_res.resize(c0->size());
707
708
510
        if (c0_string && c1_string) {
709
396
            StringImpl::string_vector_string_vector(
710
396
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
711
396
                    c1_string->get_offsets(), vec_res);
712
396
        } else if (c0_string && c1_const) {
713
108
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
108
                                               *c1_const_chars, c1_const_size, vec_res);
715
108
        } else if (c0_const && c1_string) {
716
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
717
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
718
6
                                               vec_res);
719
6
        } else {
720
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
721
0
                                        c0->get_name(), c1->get_name(), name);
722
0
        }
723
510
        block.replace_by_position(result, std::move(c_res));
724
510
        return Status::OK();
725
510
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
661
280
                          const IColumn* c1) const {
662
280
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
663
280
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
664
280
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
665
280
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
666
280
        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
280
        DCHECK(!(c0_const && c1_const));
671
280
        const ColumnString::Chars* c0_const_chars = nullptr;
672
280
        const ColumnString::Chars* c1_const_chars = nullptr;
673
280
        ColumnString::Offset c0_const_size = 0;
674
280
        ColumnString::Offset c1_const_size = 0;
675
676
280
        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
280
        if (c1_const) {
690
280
            const ColumnString* c1_const_string =
691
280
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
692
693
280
            if (c1_const_string) {
694
280
                c1_const_chars = &c1_const_string->get_chars();
695
280
                c1_const_size = c1_const_string->get_offsets()[0];
696
280
            } else {
697
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
698
0
                                            c1->get_name(), name);
699
0
            }
700
280
        }
701
702
280
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
703
704
280
        auto c_res = ColumnUInt8::create();
705
280
        ColumnUInt8::Container& vec_res = c_res->get_data();
706
280
        vec_res.resize(c0->size());
707
708
280
        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
280
        } else if (c0_string && c1_const) {
713
280
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
714
280
                                               *c1_const_chars, c1_const_size, vec_res);
715
280
        } 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
280
        block.replace_by_position(result, std::move(c_res));
724
280
        return Status::OK();
725
280
    }
726
727
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
728
179
                                         const IColumn* c1) const {
729
179
        bool c0_const = is_column_const(*c0);
730
179
        bool c1_const = is_column_const(*c1);
731
732
179
        DCHECK(!(c0_const && c1_const));
733
734
179
        auto c_res = ColumnUInt8::create();
735
179
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
179
        vec_res.resize(c0->size());
737
738
179
        if (c0_const) {
739
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
178
        } else if (c1_const) {
741
162
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
162
        } else {
743
16
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
16
        }
745
746
179
        block.replace_by_position(result, std::move(c_res));
747
179
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
27
                                         const IColumn* c1) const {
729
27
        bool c0_const = is_column_const(*c0);
730
27
        bool c1_const = is_column_const(*c1);
731
732
27
        DCHECK(!(c0_const && c1_const));
733
734
27
        auto c_res = ColumnUInt8::create();
735
27
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
27
        vec_res.resize(c0->size());
737
738
27
        if (c0_const) {
739
1
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
26
        } else if (c1_const) {
741
18
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
18
        } else {
743
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
8
        }
745
746
27
        block.replace_by_position(result, std::move(c_res));
747
27
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
10
                                         const IColumn* c1) const {
729
10
        bool c0_const = is_column_const(*c0);
730
10
        bool c1_const = is_column_const(*c1);
731
732
10
        DCHECK(!(c0_const && c1_const));
733
734
10
        auto c_res = ColumnUInt8::create();
735
10
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
10
        vec_res.resize(c0->size());
737
738
10
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
10
        } else if (c1_const) {
741
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
8
        } else {
743
2
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
2
        }
745
746
10
        block.replace_by_position(result, std::move(c_res));
747
10
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
9
                                         const IColumn* c1) const {
729
9
        bool c0_const = is_column_const(*c0);
730
9
        bool c1_const = is_column_const(*c1);
731
732
9
        DCHECK(!(c0_const && c1_const));
733
734
9
        auto c_res = ColumnUInt8::create();
735
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
9
        vec_res.resize(c0->size());
737
738
9
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
9
        } else if (c1_const) {
741
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
8
        } else {
743
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
1
        }
745
746
9
        block.replace_by_position(result, std::move(c_res));
747
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
728
64
                                         const IColumn* c1) const {
729
64
        bool c0_const = is_column_const(*c0);
730
64
        bool c1_const = is_column_const(*c1);
731
732
64
        DCHECK(!(c0_const && c1_const));
733
734
64
        auto c_res = ColumnUInt8::create();
735
64
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
64
        vec_res.resize(c0->size());
737
738
64
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
64
        } else if (c1_const) {
741
63
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
63
        } else {
743
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
1
        }
745
746
64
        block.replace_by_position(result, std::move(c_res));
747
64
    }
_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
57
                                         const IColumn* c1) const {
729
57
        bool c0_const = is_column_const(*c0);
730
57
        bool c1_const = is_column_const(*c1);
731
732
57
        DCHECK(!(c0_const && c1_const));
733
734
57
        auto c_res = ColumnUInt8::create();
735
57
        ColumnUInt8::Container& vec_res = c_res->get_data();
736
57
        vec_res.resize(c0->size());
737
738
57
        if (c0_const) {
739
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
740
57
        } else if (c1_const) {
741
57
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
742
57
        } else {
743
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
744
0
        }
745
746
57
        block.replace_by_position(result, std::move(c_res));
747
57
    }
748
749
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
750
179
                           const ColumnWithTypeAndName& c1) const {
751
179
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
179
        return Status::OK();
753
179
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
27
                           const ColumnWithTypeAndName& c1) const {
751
27
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
27
        return Status::OK();
753
27
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
10
                           const ColumnWithTypeAndName& c1) const {
751
10
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
10
        return Status::OK();
753
10
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
9
                           const ColumnWithTypeAndName& c1) const {
751
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
9
        return Status::OK();
753
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
750
64
                           const ColumnWithTypeAndName& c1) const {
751
64
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
64
        return Status::OK();
753
64
    }
_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
57
                           const ColumnWithTypeAndName& c1) const {
751
57
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
752
57
        return Status::OK();
753
57
    }
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
300k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
271k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
1.26k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
844
7.14k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
7.68k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
844
4.06k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
844
8.83k
    size_t get_number_of_arguments() const override { return 2; }
845
846
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
847
4.86k
                                                const VExprSPtrs& arguments) const override {
848
4.86k
        auto op = comparison_zonemap_detail::op_from_name(name);
849
4.86k
        DORIS_CHECK(op.has_value());
850
4.86k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
4.86k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
2.17k
                                                const VExprSPtrs& arguments) const override {
848
2.17k
        auto op = comparison_zonemap_detail::op_from_name(name);
849
2.17k
        DORIS_CHECK(op.has_value());
850
2.17k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
2.17k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
206
                                                const VExprSPtrs& arguments) const override {
848
206
        auto op = comparison_zonemap_detail::op_from_name(name);
849
206
        DORIS_CHECK(op.has_value());
850
206
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
206
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
717
                                                const VExprSPtrs& arguments) const override {
848
717
        auto op = comparison_zonemap_detail::op_from_name(name);
849
717
        DORIS_CHECK(op.has_value());
850
717
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
717
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
453
                                                const VExprSPtrs& arguments) const override {
848
453
        auto op = comparison_zonemap_detail::op_from_name(name);
849
453
        DORIS_CHECK(op.has_value());
850
453
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
453
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
984
                                                const VExprSPtrs& arguments) const override {
848
984
        auto op = comparison_zonemap_detail::op_from_name(name);
849
984
        DORIS_CHECK(op.has_value());
850
984
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
984
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
847
329
                                                const VExprSPtrs& arguments) const override {
848
329
        auto op = comparison_zonemap_detail::op_from_name(name);
849
329
        DORIS_CHECK(op.has_value());
850
329
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
851
329
    }
852
853
34.9k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
34.9k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
34.9k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
34.9k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
34.9k
    }
_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.38k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
1.38k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
1.38k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
1.38k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
1.38k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
6.20k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
6.20k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
6.20k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
6.20k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
6.20k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
4.29k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
4.29k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
4.29k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
4.29k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
4.29k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
4.99k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
4.99k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
4.99k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
4.99k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
4.99k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
853
1.93k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
854
1.93k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
855
0
            return false;
856
0
        }
857
1.93k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
858
1.93k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
859
1.93k
    }
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
300k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
300k
        return std::make_shared<DataTypeUInt8>();
889
300k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
270k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
270k
        return std::make_shared<DataTypeUInt8>();
889
270k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
1.25k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
1.25k
        return std::make_shared<DataTypeUInt8>();
889
1.25k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
7.14k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
7.14k
        return std::make_shared<DataTypeUInt8>();
889
7.14k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
7.71k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
7.71k
        return std::make_shared<DataTypeUInt8>();
889
7.71k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
4.06k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
4.06k
        return std::make_shared<DataTypeUInt8>();
889
4.06k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
887
8.88k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
888
8.88k
        return std::make_shared<DataTypeUInt8>();
889
8.88k
    }
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
298
            return Status::OK();
907
298
        }
908
1.00k
        segment_v2::InvertedIndexQueryType query_type;
909
1.00k
        std::string_view name_view(name);
910
1.00k
        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
72
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
240
        } else if (name_view == NameLessOrEquals::name) {
915
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
159
        } else if (name_view == NameGreater::name) {
917
67
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
92
        } else if (name_view == NameGreaterOrEquals::name) {
919
92
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
92
        } else {
921
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
0
        }
923
924
1.00k
        if (segment_v2::is_range_query(query_type) &&
925
1.00k
            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
867
        Field param_value;
930
867
        arguments[0].column->get(0, param_value);
931
867
        if (param_value.is_null()) {
932
2
            return Status::OK();
933
2
        }
934
865
        segment_v2::InvertedIndexParam param;
935
865
        param.column_name = data_type_with_name.first;
936
865
        param.column_type = data_type_with_name.second;
937
865
        param.query_value = param_value;
938
865
        param.query_type = query_type;
939
865
        param.num_rows = num_rows;
940
865
        param.roaring = std::make_shared<roaring::Roaring>();
941
865
        param.analyzer_ctx = analyzer_ctx;
942
865
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
722
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
944
722
        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
722
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
722
        bitmap_result = result;
951
722
        bitmap_result.mask_out_null();
952
953
722
        if (name_view == NameNotEquals::name) {
954
55
            roaring::Roaring full_result;
955
55
            full_result.addRange(0, num_rows);
956
55
            bitmap_result.op_not(&full_result);
957
55
        }
958
959
722
        return Status::OK();
960
722
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
655
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
655
        DCHECK(arguments.size() == 1);
898
655
        DCHECK(data_type_with_names.size() == 1);
899
655
        DCHECK(iterators.size() == 1);
900
655
        auto* iter = iterators[0];
901
655
        auto data_type_with_name = data_type_with_names[0];
902
655
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
655
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
30
            return Status::OK();
907
30
        }
908
625
        segment_v2::InvertedIndexQueryType query_type;
909
625
        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
625
        } 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
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
585
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
585
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
585
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
585
        }
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
54
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
54
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
54
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
54
        }
949
56
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
56
        bitmap_result = result;
951
56
        bitmap_result.mask_out_null();
952
953
56
        if (name_view == NameNotEquals::name) {
954
55
            roaring::Roaring full_result;
955
55
            full_result.addRange(0, num_rows);
956
55
            bitmap_result.op_not(&full_result);
957
55
        }
958
959
56
        return Status::OK();
960
56
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
106
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
106
        DCHECK(arguments.size() == 1);
898
106
        DCHECK(data_type_with_names.size() == 1);
899
106
        DCHECK(iterators.size() == 1);
900
106
        auto* iter = iterators[0];
901
106
        auto data_type_with_name = data_type_with_names[0];
902
106
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
106
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
39
            return Status::OK();
907
39
        }
908
67
        segment_v2::InvertedIndexQueryType query_type;
909
67
        std::string_view name_view(name);
910
67
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
67
        } else if (name_view == NameLess::name) {
913
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
67
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
67
        } else if (name_view == NameGreater::name) {
917
67
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
67
        } 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
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
31
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
946
31
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
947
31
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
948
31
        }
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
179
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
179
        DCHECK(arguments.size() == 1);
898
179
        DCHECK(data_type_with_names.size() == 1);
899
179
        DCHECK(iterators.size() == 1);
900
179
        auto* iter = iterators[0];
901
179
        auto data_type_with_name = data_type_with_names[0];
902
179
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
179
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
86
            return Status::OK();
907
86
        }
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
92
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
92
        } else {
921
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
1
        }
923
924
92
        if (segment_v2::is_range_query(query_type) &&
925
92
            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
45
        Field param_value;
930
45
        arguments[0].column->get(0, param_value);
931
45
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
45
        segment_v2::InvertedIndexParam param;
935
45
        param.column_name = data_type_with_name.first;
936
45
        param.column_type = data_type_with_name.second;
937
45
        param.query_value = param_value;
938
45
        param.query_type = query_type;
939
45
        param.num_rows = num_rows;
940
45
        param.roaring = std::make_shared<roaring::Roaring>();
941
45
        param.analyzer_ctx = analyzer_ctx;
942
45
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
4
        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
4
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
4
        bitmap_result = result;
951
4
        bitmap_result.mask_out_null();
952
953
4
        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
4
        return Status::OK();
960
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
114
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
114
        DCHECK(arguments.size() == 1);
898
114
        DCHECK(data_type_with_names.size() == 1);
899
114
        DCHECK(iterators.size() == 1);
900
114
        auto* iter = iterators[0];
901
114
        auto data_type_with_name = data_type_with_names[0];
902
114
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
114
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
43
            return Status::OK();
907
43
        }
908
71
        segment_v2::InvertedIndexQueryType query_type;
909
71
        std::string_view name_view(name);
910
72
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
911
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
912
72
        } else if (name_view == NameLess::name) {
913
72
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
914
18.4E
        } else if (name_view == NameLessOrEquals::name) {
915
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
916
18.4E
        } else if (name_view == NameGreater::name) {
917
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
918
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
919
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
920
18.4E
        } else {
921
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
922
18.4E
        }
923
924
72
        if (segment_v2::is_range_query(query_type) &&
925
72
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
926
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
927
18
            return Status::OK();
928
18
        }
929
54
        Field param_value;
930
54
        arguments[0].column->get(0, param_value);
931
54
        if (param_value.is_null()) {
932
0
            return Status::OK();
933
0
        }
934
54
        segment_v2::InvertedIndexParam param;
935
54
        param.column_name = data_type_with_name.first;
936
54
        param.column_type = data_type_with_name.second;
937
54
        param.query_value = param_value;
938
54
        param.query_type = query_type;
939
54
        param.num_rows = num_rows;
940
54
        param.roaring = std::make_shared<roaring::Roaring>();
941
54
        param.analyzer_ctx = analyzer_ctx;
942
54
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
943
35
        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
35
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
950
35
        bitmap_result = result;
951
35
        bitmap_result.mask_out_null();
952
953
35
        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
35
        return Status::OK();
960
35
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
896
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
897
175
        DCHECK(arguments.size() == 1);
898
175
        DCHECK(data_type_with_names.size() == 1);
899
175
        DCHECK(iterators.size() == 1);
900
175
        auto* iter = iterators[0];
901
175
        auto data_type_with_name = data_type_with_names[0];
902
175
        if (iter == nullptr) {
903
0
            return Status::OK();
904
0
        }
905
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
906
94
            return Status::OK();
907
94
        }
908
81
        segment_v2::InvertedIndexQueryType query_type;
909
81
        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
81
        } 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
81
        } 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
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
98.9k
                        uint32_t result, size_t input_rows_count) const override {
967
98.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
98.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
98.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
98.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
98.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
98.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
98.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
98.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
98.9k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
494k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
494k
        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
494k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
494k
        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
98.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
197k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
197k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
197k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
197k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
98.8k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
98.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
98.8k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
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
166k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
166k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
166k
                   is_timestamp_ns_type(t);
1027
166k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
64.1k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
64.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
64.1k
                   is_timestamp_ns_type(t);
1027
64.1k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
8.27k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
8.27k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
8.27k
                   is_timestamp_ns_type(t);
1027
8.27k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
48.3k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
48.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
48.3k
                   is_timestamp_ns_type(t);
1027
48.3k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
6.86k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
6.86k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
6.86k
                   is_timestamp_ns_type(t);
1027
6.86k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
21.9k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
21.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
21.9k
                   is_timestamp_ns_type(t);
1027
21.9k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
1024
17.1k
        auto can_compare = [](PrimitiveType t) -> bool {
1025
17.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
17.1k
                   is_timestamp_ns_type(t);
1027
17.1k
        };
1028
1029
98.8k
        if (can_compare(left_type->get_primitive_type()) &&
1030
98.8k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
67.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
67.9k
        }
1038
1039
98.8k
        auto compare_type = left_type->get_primitive_type();
1040
98.8k
        switch (compare_type) {
1041
246
        case TYPE_BOOLEAN:
1042
246
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
5.90k
        case TYPE_DATEV2:
1044
5.90k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
884
        case TYPE_DATETIMEV2:
1046
884
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
894
        case TYPE_TIMESTAMP_NS:
1048
894
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
28
        case TYPE_TIMESTAMPTZ:
1050
28
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
10.3k
        case TYPE_TINYINT:
1052
10.3k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
3.05k
        case TYPE_SMALLINT:
1054
3.05k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
28.9k
        case TYPE_INT:
1056
28.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
13.4k
        case TYPE_BIGINT:
1058
13.4k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
636
        case TYPE_LARGEINT:
1060
636
            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.87k
        case TYPE_UUID:
1066
4.87k
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
616
        case TYPE_FLOAT:
1068
616
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
2.79k
        case TYPE_DOUBLE:
1070
2.79k
            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
278
        case TYPE_DECIMAL32:
1075
913
        case TYPE_DECIMAL64:
1076
3.29k
        case TYPE_DECIMAL128I:
1077
3.37k
        case TYPE_DECIMAL256:
1078
3.37k
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
3.37k
                                   col_with_type_and_name_right);
1080
1.28k
        case TYPE_CHAR:
1081
7.99k
        case TYPE_VARCHAR:
1082
22.6k
        case TYPE_STRING:
1083
22.6k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
179
        default:
1085
179
            return execute_generic(block, result, col_with_type_and_name_left,
1086
179
                                   col_with_type_and_name_right);
1087
98.8k
        }
1088
0
        return Status::OK();
1089
98.8k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
44.6k
                        uint32_t result, size_t input_rows_count) const override {
967
44.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
44.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
44.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
44.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
44.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
44.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
44.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
44.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
44.6k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
44.6k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
44.6k
        right_type->get_primitive_type() == TYPE) {                                             \
981
44.6k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
44.6k
                                                         col_right_ptr, input_rows_count);      \
983
44.6k
    }                                                                                           \
984
44.6k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
44.6k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
44.6k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
44.6k
                                                          col_right_ptr, input_rows_count);     \
988
44.6k
    }
989
990
44.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
89.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
89.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
89.3k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
89.2k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
44.6k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
44.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
44.6k
            col_left_untyped == col_right_untyped) {
1003
            /// Always true: =, <=, >=
1004
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
1005
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
1006
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
1007
6
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
1008
6
                block.get_by_position(result).column =
1009
6
                        DataTypeUInt8()
1010
6
                                .create_column_const(input_rows_count,
1011
6
                                                     Field::create_field<TYPE_BOOLEAN>(1))
1012
6
                                ->convert_to_full_column_if_const();
1013
6
                return Status::OK();
1014
            } else {
1015
                block.get_by_position(result).column =
1016
                        DataTypeUInt8()
1017
                                .create_column_const(input_rows_count,
1018
                                                     Field::create_field<TYPE_BOOLEAN>(0))
1019
                                ->convert_to_full_column_if_const();
1020
                return Status::OK();
1021
            }
1022
6
        }
1023
1024
0
        auto can_compare = [](PrimitiveType t) -> bool {
1025
44.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
44.6k
                   is_timestamp_ns_type(t);
1027
44.6k
        };
1028
1029
44.6k
        if (can_compare(left_type->get_primitive_type()) &&
1030
44.6k
            can_compare(right_type->get_primitive_type())) {
1031
            // check left type equals right type TODO: remove this after FE is aware of scales difference
1032
19.5k
            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
19.5k
        }
1038
1039
44.6k
        auto compare_type = left_type->get_primitive_type();
1040
44.6k
        switch (compare_type) {
1041
95
        case TYPE_BOOLEAN:
1042
95
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
669
        case TYPE_DATEV2:
1044
669
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
387
        case TYPE_DATETIMEV2:
1046
387
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
203
        case TYPE_TIMESTAMP_NS:
1048
203
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
14
        case TYPE_TIMESTAMPTZ:
1050
14
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
6.15k
        case TYPE_TINYINT:
1052
6.15k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
397
        case TYPE_SMALLINT:
1054
397
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
3.15k
        case TYPE_INT:
1056
3.15k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
7.52k
        case TYPE_BIGINT:
1058
7.52k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
91
        case TYPE_LARGEINT:
1060
91
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1061
12
        case TYPE_IPV4:
1062
12
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1063
17
        case TYPE_IPV6:
1064
17
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1065
2.79k
        case TYPE_UUID:
1066
2.79k
            return execute_num_type<TYPE_UUID>(block, result, col_left_ptr, col_right_ptr);
1067
70
        case TYPE_FLOAT:
1068
70
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
726
        case TYPE_DOUBLE:
1070
726
            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
97
        case TYPE_DECIMAL32:
1075
212
        case TYPE_DECIMAL64:
1076
1.08k
        case TYPE_DECIMAL128I:
1077
1.10k
        case TYPE_DECIMAL256:
1078
1.10k
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
1.10k
                                   col_with_type_and_name_right);
1080
1.00k
        case TYPE_CHAR:
1081
7.06k
        case TYPE_VARCHAR:
1082
21.1k
        case TYPE_STRING:
1083
21.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
27
        default:
1085
27
            return execute_generic(block, result, col_with_type_and_name_left,
1086
27
                                   col_with_type_and_name_right);
1087
44.6k
        }
1088
0
        return Status::OK();
1089
44.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
4.26k
                        uint32_t result, size_t input_rows_count) const override {
967
4.26k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
4.26k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
4.26k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
4.26k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
4.26k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
4.26k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
4.26k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
4.26k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
4.26k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
4.26k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
4.26k
        right_type->get_primitive_type() == TYPE) {                                             \
981
4.26k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
4.26k
                                                         col_right_ptr, input_rows_count);      \
983
4.26k
    }                                                                                           \
984
4.26k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
4.26k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
4.26k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
4.26k
                                                          col_right_ptr, input_rows_count);     \
988
4.26k
    }
989
990
4.26k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
8.53k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
8.53k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
8.53k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
8.53k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
4.26k
#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.26k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
4.26k
            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
4.26k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
4.26k
                   is_timestamp_ns_type(t);
1027
4.26k
        };
1028
1029
4.26k
        if (can_compare(left_type->get_primitive_type()) &&
1030
4.26k
            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
4.00k
            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
4.00k
        }
1038
1039
4.26k
        auto compare_type = left_type->get_primitive_type();
1040
4.26k
        switch (compare_type) {
1041
0
        case TYPE_BOOLEAN:
1042
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
70
        case TYPE_DATEV2:
1044
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
0
        case TYPE_DATETIMEV2:
1046
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
8
        case TYPE_TIMESTAMP_NS:
1048
8
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
0
        case TYPE_TIMESTAMPTZ:
1050
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
84
        case TYPE_TINYINT:
1052
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
0
        case TYPE_SMALLINT:
1054
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
2.85k
        case TYPE_INT:
1056
2.85k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
881
        case TYPE_BIGINT:
1058
881
            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
71
        case TYPE_DECIMAL64:
1076
99
        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
1
        case TYPE_CHAR:
1081
51
        case TYPE_VARCHAR:
1082
125
        case TYPE_STRING:
1083
125
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
10
        default:
1085
10
            return execute_generic(block, result, col_with_type_and_name_left,
1086
10
                                   col_with_type_and_name_right);
1087
4.26k
        }
1088
0
        return Status::OK();
1089
4.26k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
24.9k
                        uint32_t result, size_t input_rows_count) const override {
967
24.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
24.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
24.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
24.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
24.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
24.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
24.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
24.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
24.9k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
24.9k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
24.9k
        right_type->get_primitive_type() == TYPE) {                                             \
981
24.9k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
24.9k
                                                         col_right_ptr, input_rows_count);      \
983
24.9k
    }                                                                                           \
984
24.9k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
24.9k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
24.9k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
24.9k
                                                          col_right_ptr, input_rows_count);     \
988
24.9k
    }
989
990
24.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
49.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
49.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
49.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
49.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
24.9k
#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
24.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
24.9k
            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
24.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
24.9k
                   is_timestamp_ns_type(t);
1027
24.9k
        };
1028
1029
24.9k
        if (can_compare(left_type->get_primitive_type()) &&
1030
24.9k
            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
23.3k
            if (!left_type->equals_ignore_precision(*right_type)) {
1033
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
1034
0
                                            get_name(), left_type->get_name(),
1035
0
                                            right_type->get_name());
1036
0
            }
1037
23.3k
        }
1038
1039
24.9k
        auto compare_type = left_type->get_primitive_type();
1040
24.9k
        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.60k
        case TYPE_DATEV2:
1044
1.60k
            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
3
        case TYPE_TIMESTAMPTZ:
1050
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
1.63k
        case TYPE_TINYINT:
1052
1.63k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
2.36k
        case TYPE_SMALLINT:
1054
2.36k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
14.0k
        case TYPE_INT:
1056
14.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
2.55k
        case TYPE_BIGINT:
1058
2.55k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
247
        case TYPE_LARGEINT:
1060
247
            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
323
        case TYPE_FLOAT:
1068
323
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
545
        case TYPE_DOUBLE:
1070
545
            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
813
        case TYPE_DECIMAL128I:
1077
815
        case TYPE_DECIMAL256:
1078
815
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
815
                                   col_with_type_and_name_right);
1080
14
        case TYPE_CHAR:
1081
102
        case TYPE_VARCHAR:
1082
198
        case TYPE_STRING:
1083
198
            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
24.9k
        }
1088
0
        return Status::OK();
1089
24.9k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
3.99k
                        uint32_t result, size_t input_rows_count) const override {
967
3.99k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
3.99k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
3.99k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
3.99k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
3.99k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
3.99k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
3.99k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
3.99k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
3.99k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
3.99k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
3.99k
        right_type->get_primitive_type() == TYPE) {                                             \
981
3.99k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
3.99k
                                                         col_right_ptr, input_rows_count);      \
983
3.99k
    }                                                                                           \
984
3.99k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
3.99k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
3.99k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
3.99k
                                                          col_right_ptr, input_rows_count);     \
988
3.99k
    }
989
990
3.99k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
7.98k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
7.98k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
7.97k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
7.97k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
3.98k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
997
998
        /// The case when arguments are the same (tautological comparison). Return constant.
999
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
1000
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
1001
3.98k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
3.98k
            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
3.98k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
3.98k
                   is_timestamp_ns_type(t);
1027
3.98k
        };
1028
1029
3.98k
        if (can_compare(left_type->get_primitive_type()) &&
1030
3.98k
            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.87k
            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.87k
        }
1038
1039
3.98k
        auto compare_type = left_type->get_primitive_type();
1040
3.98k
        switch (compare_type) {
1041
23
        case TYPE_BOOLEAN:
1042
23
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
465
        case TYPE_DATEV2:
1044
465
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
124
        case TYPE_DATETIMEV2:
1046
124
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
404
        case TYPE_TIMESTAMP_NS:
1048
404
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
3
        case TYPE_TIMESTAMPTZ:
1050
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
45
        case TYPE_TINYINT:
1052
45
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
56
        case TYPE_SMALLINT:
1054
56
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
627
        case TYPE_INT:
1056
627
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
820
        case TYPE_BIGINT:
1058
820
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
38
        case TYPE_LARGEINT:
1060
38
            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
583
        case TYPE_UUID:
1066
583
            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
186
        case TYPE_DOUBLE:
1070
186
            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
91
        case TYPE_DECIMAL64:
1076
175
        case TYPE_DECIMAL128I:
1077
192
        case TYPE_DECIMAL256:
1078
192
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
192
                                   col_with_type_and_name_right);
1080
39
        case TYPE_CHAR:
1081
243
        case TYPE_VARCHAR:
1082
331
        case TYPE_STRING:
1083
331
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
64
        default:
1085
64
            return execute_generic(block, result, col_with_type_and_name_left,
1086
64
                                   col_with_type_and_name_right);
1087
3.98k
        }
1088
0
        return Status::OK();
1089
3.98k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
11.9k
                        uint32_t result, size_t input_rows_count) const override {
967
11.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
11.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
11.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
11.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
11.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
11.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
11.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
11.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
11.9k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
11.9k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
11.9k
        right_type->get_primitive_type() == TYPE) {                                             \
981
11.9k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
11.9k
                                                         col_right_ptr, input_rows_count);      \
983
11.9k
    }                                                                                           \
984
11.9k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
11.9k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
11.9k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
11.9k
                                                          col_right_ptr, input_rows_count);     \
988
11.9k
    }
989
990
11.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
23.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
23.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
23.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
23.9k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
11.9k
#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.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
11.9k
            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.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
11.9k
                   is_timestamp_ns_type(t);
1027
11.9k
        };
1028
1029
11.9k
        if (can_compare(left_type->get_primitive_type()) &&
1030
11.9k
            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
10.0k
            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
10.0k
        }
1038
1039
11.9k
        auto compare_type = left_type->get_primitive_type();
1040
11.9k
        switch (compare_type) {
1041
86
        case TYPE_BOOLEAN:
1042
86
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
2.51k
        case TYPE_DATEV2:
1044
2.51k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
292
        case TYPE_DATETIMEV2:
1046
292
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
151
        case TYPE_TIMESTAMP_NS:
1048
151
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
4
        case TYPE_TIMESTAMPTZ:
1050
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
2.36k
        case TYPE_TINYINT:
1052
2.36k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
170
        case TYPE_SMALLINT:
1054
170
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
2.04k
        case TYPE_INT:
1056
2.04k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
902
        case TYPE_BIGINT:
1058
902
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
208
        case TYPE_LARGEINT:
1060
208
            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
131
        case TYPE_FLOAT:
1068
131
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1069
1.13k
        case TYPE_DOUBLE:
1070
1.13k
            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
162
        case TYPE_DECIMAL32:
1075
352
        case TYPE_DECIMAL64:
1076
918
        case TYPE_DECIMAL128I:
1077
919
        case TYPE_DECIMAL256:
1078
919
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
919
                                   col_with_type_and_name_right);
1080
176
        case TYPE_CHAR:
1081
356
        case TYPE_VARCHAR:
1082
510
        case TYPE_STRING:
1083
510
            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.9k
        }
1088
0
        return Status::OK();
1089
11.9k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
966
9.05k
                        uint32_t result, size_t input_rows_count) const override {
967
9.05k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
968
9.05k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
969
970
9.05k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
971
9.05k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
972
9.05k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
973
9.05k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
974
975
9.05k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
976
9.05k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
977
978
9.05k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                          \
979
9.05k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                 \
980
9.05k
        right_type->get_primitive_type() == TYPE) {                                             \
981
9.05k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,  \
982
9.05k
                                                         col_right_ptr, input_rows_count);      \
983
9.05k
    }                                                                                           \
984
9.05k
    if (left_type->get_primitive_type() == TYPE &&                                              \
985
9.05k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                \
986
9.05k
        return execute_timestamp_ns_temporal<TYPE, false>(context, block, result, col_left_ptr, \
987
9.05k
                                                          col_right_ptr, input_rows_count);     \
988
9.05k
    }
989
990
9.05k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
991
18.1k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
992
18.1k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
993
18.1k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
994
18.1k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
995
996
9.05k
#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.05k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
1002
9.05k
            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.05k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
1026
9.05k
                   is_timestamp_ns_type(t);
1027
9.05k
        };
1028
1029
9.05k
        if (can_compare(left_type->get_primitive_type()) &&
1030
9.05k
            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.13k
            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.13k
        }
1038
1039
9.05k
        auto compare_type = left_type->get_primitive_type();
1040
9.05k
        switch (compare_type) {
1041
42
        case TYPE_BOOLEAN:
1042
42
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1043
578
        case TYPE_DATEV2:
1044
578
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1045
78
        case TYPE_DATETIMEV2:
1046
78
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1047
61
        case TYPE_TIMESTAMP_NS:
1048
61
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1049
4
        case TYPE_TIMESTAMPTZ:
1050
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1051
56
        case TYPE_TINYINT:
1052
56
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1053
69
        case TYPE_SMALLINT:
1054
69
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1055
6.22k
        case TYPE_INT:
1056
6.22k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1057
743
        case TYPE_BIGINT:
1058
743
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1059
52
        case TYPE_LARGEINT:
1060
52
            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
423
        case TYPE_UUID:
1066
423
            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
142
        case TYPE_DOUBLE:
1070
142
            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
7
        case TYPE_DECIMAL32:
1075
112
        case TYPE_DECIMAL64:
1076
208
        case TYPE_DECIMAL128I:
1077
220
        case TYPE_DECIMAL256:
1078
220
            return execute_decimal(block, result, col_with_type_and_name_left,
1079
220
                                   col_with_type_and_name_right);
1080
50
        case TYPE_CHAR:
1081
174
        case TYPE_VARCHAR:
1082
280
        case TYPE_STRING:
1083
280
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1084
57
        default:
1085
57
            return execute_generic(block, result, col_with_type_and_name_left,
1086
57
                                   col_with_type_and_name_right);
1087
9.05k
        }
1088
0
        return Status::OK();
1089
9.05k
    }
1090
};
1091
1092
} // namespace doris