Coverage Report

Created: 2026-09-11 20:44

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <compare>
24
#include <limits>
25
#include <optional>
26
#include <string_view>
27
#include <type_traits>
28
29
#include "common/check.h"
30
#include "common/logging.h"
31
#include "core/accurate_comparison.h"
32
#include "core/assert_cast.h"
33
#include "core/column/column_const.h"
34
#include "core/column/column_decimal.h"
35
#include "core/column/column_nullable.h"
36
#include "core/column/column_string.h"
37
#include "core/data_type/data_type_nullable.h"
38
#include "core/data_type/data_type_number.h"
39
#include "core/data_type/data_type_string.h"
40
#include "core/data_type/define_primitive_type.h"
41
#include "core/decimal_comparison.h"
42
#include "core/field.h"
43
#include "core/memcmp_small.h"
44
#include "core/value/timestamptz_value.h"
45
#include "core/value/vdatetime_value.h"
46
#include "exprs/expr_zonemap_filter.h"
47
#include "exprs/function/function.h"
48
#include "exprs/function/function_helpers.h"
49
#include "exprs/function/functions_logical.h"
50
#include "exprs/vexpr.h"
51
#include "storage/index/index_reader_helper.h"
52
#include "storage/index/inverted/inverted_index_iterator.h"
53
54
namespace doris {
55
/** Comparison functions: ==, !=, <, >, <=, >=.
56
  * The comparison functions always return 0 or 1 (UInt8).
57
  *
58
  * You can compare the following types:
59
  * - numbers and decimals;
60
  * - strings and fixed strings;
61
  * - dates;
62
  * - datetimes;
63
  *   within each group, but not from different groups;
64
  * - tuples (lexicographic comparison).
65
  *
66
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
67
  */
68
69
template <typename A, typename B, typename Op>
70
struct NumComparisonImpl {
71
    /// If you don't specify NO_INLINE, the compiler will inline this function, but we don't need this as this function contains tight loop inside.
72
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
73
9.39k
                                        PaddedPODArray<UInt8>& c) {
74
9.39k
        size_t size = a.size();
75
9.39k
        const A* __restrict a_pos = a.data();
76
9.39k
        const B* __restrict b_pos = b.data();
77
9.39k
        UInt8* __restrict c_pos = c.data();
78
9.39k
        const A* __restrict a_end = a_pos + size;
79
80
4.49M
        while (a_pos < a_end) {
81
4.48M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
4.48M
            ++a_pos;
83
4.48M
            ++b_pos;
84
4.48M
            ++c_pos;
85
4.48M
        }
86
9.39k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
1.21k
                                        PaddedPODArray<UInt8>& c) {
74
1.21k
        size_t size = a.size();
75
1.21k
        const A* __restrict a_pos = a.data();
76
1.21k
        const B* __restrict b_pos = b.data();
77
1.21k
        UInt8* __restrict c_pos = c.data();
78
1.21k
        const A* __restrict a_end = a_pos + size;
79
80
2.79M
        while (a_pos < a_end) {
81
2.79M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
2.79M
            ++a_pos;
83
2.79M
            ++b_pos;
84
2.79M
            ++c_pos;
85
2.79M
        }
86
1.21k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
29
                                        PaddedPODArray<UInt8>& c) {
74
29
        size_t size = a.size();
75
29
        const A* __restrict a_pos = a.data();
76
29
        const B* __restrict b_pos = b.data();
77
29
        UInt8* __restrict c_pos = c.data();
78
29
        const A* __restrict a_end = a_pos + size;
79
80
72
        while (a_pos < a_end) {
81
43
            *c_pos = Op::apply(*a_pos, *b_pos);
82
43
            ++a_pos;
83
43
            ++b_pos;
84
43
            ++c_pos;
85
43
        }
86
29
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
9
            *c_pos = Op::apply(*a_pos, *b_pos);
82
9
            ++a_pos;
83
9
            ++b_pos;
84
9
            ++c_pos;
85
9
        }
86
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
78
                                        PaddedPODArray<UInt8>& c) {
74
78
        size_t size = a.size();
75
78
        const A* __restrict a_pos = a.data();
76
78
        const B* __restrict b_pos = b.data();
77
78
        UInt8* __restrict c_pos = c.data();
78
78
        const A* __restrict a_end = a_pos + size;
79
80
398
        while (a_pos < a_end) {
81
320
            *c_pos = Op::apply(*a_pos, *b_pos);
82
320
            ++a_pos;
83
320
            ++b_pos;
84
320
            ++c_pos;
85
320
        }
86
78
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
126
                                        PaddedPODArray<UInt8>& c) {
74
126
        size_t size = a.size();
75
126
        const A* __restrict a_pos = a.data();
76
126
        const B* __restrict b_pos = b.data();
77
126
        UInt8* __restrict c_pos = c.data();
78
126
        const A* __restrict a_end = a_pos + size;
79
80
379
        while (a_pos < a_end) {
81
253
            *c_pos = Op::apply(*a_pos, *b_pos);
82
253
            ++a_pos;
83
253
            ++b_pos;
84
253
            ++c_pos;
85
253
        }
86
126
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
55
                                        PaddedPODArray<UInt8>& c) {
74
55
        size_t size = a.size();
75
55
        const A* __restrict a_pos = a.data();
76
55
        const B* __restrict b_pos = b.data();
77
55
        UInt8* __restrict c_pos = c.data();
78
55
        const A* __restrict a_end = a_pos + size;
79
80
8.52k
        while (a_pos < a_end) {
81
8.46k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
8.46k
            ++a_pos;
83
8.46k
            ++b_pos;
84
8.46k
            ++c_pos;
85
8.46k
        }
86
55
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
59
                                        PaddedPODArray<UInt8>& c) {
74
59
        size_t size = a.size();
75
59
        const A* __restrict a_pos = a.data();
76
59
        const B* __restrict b_pos = b.data();
77
59
        UInt8* __restrict c_pos = c.data();
78
59
        const A* __restrict a_end = a_pos + size;
79
80
556
        while (a_pos < a_end) {
81
497
            *c_pos = Op::apply(*a_pos, *b_pos);
82
497
            ++a_pos;
83
497
            ++b_pos;
84
497
            ++c_pos;
85
497
        }
86
59
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
2
                                        PaddedPODArray<UInt8>& c) {
74
2
        size_t size = a.size();
75
2
        const A* __restrict a_pos = a.data();
76
2
        const B* __restrict b_pos = b.data();
77
2
        UInt8* __restrict c_pos = c.data();
78
2
        const A* __restrict a_end = a_pos + size;
79
80
6
        while (a_pos < a_end) {
81
4
            *c_pos = Op::apply(*a_pos, *b_pos);
82
4
            ++a_pos;
83
4
            ++b_pos;
84
4
            ++c_pos;
85
4
        }
86
2
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
28
                                        PaddedPODArray<UInt8>& c) {
74
28
        size_t size = a.size();
75
28
        const A* __restrict a_pos = a.data();
76
28
        const B* __restrict b_pos = b.data();
77
28
        UInt8* __restrict c_pos = c.data();
78
28
        const A* __restrict a_end = a_pos + size;
79
80
110
        while (a_pos < a_end) {
81
82
            *c_pos = Op::apply(*a_pos, *b_pos);
82
82
            ++a_pos;
83
82
            ++b_pos;
84
82
            ++c_pos;
85
82
        }
86
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
6
                                        PaddedPODArray<UInt8>& c) {
74
6
        size_t size = a.size();
75
6
        const A* __restrict a_pos = a.data();
76
6
        const B* __restrict b_pos = b.data();
77
6
        UInt8* __restrict c_pos = c.data();
78
6
        const A* __restrict a_end = a_pos + size;
79
80
70
        while (a_pos < a_end) {
81
64
            *c_pos = Op::apply(*a_pos, *b_pos);
82
64
            ++a_pos;
83
64
            ++b_pos;
84
64
            ++c_pos;
85
64
        }
86
6
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
359
                                        PaddedPODArray<UInt8>& c) {
74
359
        size_t size = a.size();
75
359
        const A* __restrict a_pos = a.data();
76
359
        const B* __restrict b_pos = b.data();
77
359
        UInt8* __restrict c_pos = c.data();
78
359
        const A* __restrict a_end = a_pos + size;
79
80
1.45k
        while (a_pos < a_end) {
81
1.09k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1.09k
            ++a_pos;
83
1.09k
            ++b_pos;
84
1.09k
            ++c_pos;
85
1.09k
        }
86
359
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
9
            *c_pos = Op::apply(*a_pos, *b_pos);
82
9
            ++a_pos;
83
9
            ++b_pos;
84
9
            ++c_pos;
85
9
        }
86
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
12
                                        PaddedPODArray<UInt8>& c) {
74
12
        size_t size = a.size();
75
12
        const A* __restrict a_pos = a.data();
76
12
        const B* __restrict b_pos = b.data();
77
12
        UInt8* __restrict c_pos = c.data();
78
12
        const A* __restrict a_end = a_pos + size;
79
80
4.12k
        while (a_pos < a_end) {
81
4.11k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
4.11k
            ++a_pos;
83
4.11k
            ++b_pos;
84
4.11k
            ++c_pos;
85
4.11k
        }
86
12
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
13
                                        PaddedPODArray<UInt8>& c) {
74
13
        size_t size = a.size();
75
13
        const A* __restrict a_pos = a.data();
76
13
        const B* __restrict b_pos = b.data();
77
13
        UInt8* __restrict c_pos = c.data();
78
13
        const A* __restrict a_end = a_pos + size;
79
80
8.26k
        while (a_pos < a_end) {
81
8.25k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
8.25k
            ++a_pos;
83
8.25k
            ++b_pos;
84
8.25k
            ++c_pos;
85
8.25k
        }
86
13
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
2
        while (a_pos < a_end) {
81
1
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1
            ++a_pos;
83
1
            ++b_pos;
84
1
            ++c_pos;
85
1
        }
86
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
24
                                        PaddedPODArray<UInt8>& c) {
74
24
        size_t size = a.size();
75
24
        const A* __restrict a_pos = a.data();
76
24
        const B* __restrict b_pos = b.data();
77
24
        UInt8* __restrict c_pos = c.data();
78
24
        const A* __restrict a_end = a_pos + size;
79
80
67
        while (a_pos < a_end) {
81
43
            *c_pos = Op::apply(*a_pos, *b_pos);
82
43
            ++a_pos;
83
43
            ++b_pos;
84
43
            ++c_pos;
85
43
        }
86
24
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
73
101
                                        PaddedPODArray<UInt8>& c) {
74
101
        size_t size = a.size();
75
101
        const A* __restrict a_pos = a.data();
76
101
        const B* __restrict b_pos = b.data();
77
101
        UInt8* __restrict c_pos = c.data();
78
101
        const A* __restrict a_end = a_pos + size;
79
80
376
        while (a_pos < a_end) {
81
275
            *c_pos = Op::apply(*a_pos, *b_pos);
82
275
            ++a_pos;
83
275
            ++b_pos;
84
275
            ++c_pos;
85
275
        }
86
101
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
1.82k
                                        PaddedPODArray<UInt8>& c) {
74
1.82k
        size_t size = a.size();
75
1.82k
        const A* __restrict a_pos = a.data();
76
1.82k
        const B* __restrict b_pos = b.data();
77
1.82k
        UInt8* __restrict c_pos = c.data();
78
1.82k
        const A* __restrict a_end = a_pos + size;
79
80
1.22M
        while (a_pos < a_end) {
81
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1.22M
            ++a_pos;
83
1.22M
            ++b_pos;
84
1.22M
            ++c_pos;
85
1.22M
        }
86
1.82k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
254
                                        PaddedPODArray<UInt8>& c) {
74
254
        size_t size = a.size();
75
254
        const A* __restrict a_pos = a.data();
76
254
        const B* __restrict b_pos = b.data();
77
254
        UInt8* __restrict c_pos = c.data();
78
254
        const A* __restrict a_end = a_pos + size;
79
80
856
        while (a_pos < a_end) {
81
602
            *c_pos = Op::apply(*a_pos, *b_pos);
82
602
            ++a_pos;
83
602
            ++b_pos;
84
602
            ++c_pos;
85
602
        }
86
254
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
109
                                        PaddedPODArray<UInt8>& c) {
74
109
        size_t size = a.size();
75
109
        const A* __restrict a_pos = a.data();
76
109
        const B* __restrict b_pos = b.data();
77
109
        UInt8* __restrict c_pos = c.data();
78
109
        const A* __restrict a_end = a_pos + size;
79
80
229
        while (a_pos < a_end) {
81
120
            *c_pos = Op::apply(*a_pos, *b_pos);
82
120
            ++a_pos;
83
120
            ++b_pos;
84
120
            ++c_pos;
85
120
        }
86
109
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
9
            *c_pos = Op::apply(*a_pos, *b_pos);
82
9
            ++a_pos;
83
9
            ++b_pos;
84
9
            ++c_pos;
85
9
        }
86
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
173
                                        PaddedPODArray<UInt8>& c) {
74
173
        size_t size = a.size();
75
173
        const A* __restrict a_pos = a.data();
76
173
        const B* __restrict b_pos = b.data();
77
173
        UInt8* __restrict c_pos = c.data();
78
173
        const A* __restrict a_end = a_pos + size;
79
80
520
        while (a_pos < a_end) {
81
347
            *c_pos = Op::apply(*a_pos, *b_pos);
82
347
            ++a_pos;
83
347
            ++b_pos;
84
347
            ++c_pos;
85
347
        }
86
173
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
123
                                        PaddedPODArray<UInt8>& c) {
74
123
        size_t size = a.size();
75
123
        const A* __restrict a_pos = a.data();
76
123
        const B* __restrict b_pos = b.data();
77
123
        UInt8* __restrict c_pos = c.data();
78
123
        const A* __restrict a_end = a_pos + size;
79
80
421
        while (a_pos < a_end) {
81
298
            *c_pos = Op::apply(*a_pos, *b_pos);
82
298
            ++a_pos;
83
298
            ++b_pos;
84
298
            ++c_pos;
85
298
        }
86
123
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
173
                                        PaddedPODArray<UInt8>& c) {
74
173
        size_t size = a.size();
75
173
        const A* __restrict a_pos = a.data();
76
173
        const B* __restrict b_pos = b.data();
77
173
        UInt8* __restrict c_pos = c.data();
78
173
        const A* __restrict a_end = a_pos + size;
79
80
13.3k
        while (a_pos < a_end) {
81
13.1k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
13.1k
            ++a_pos;
83
13.1k
            ++b_pos;
84
13.1k
            ++c_pos;
85
13.1k
        }
86
173
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
215
                                        PaddedPODArray<UInt8>& c) {
74
215
        size_t size = a.size();
75
215
        const A* __restrict a_pos = a.data();
76
215
        const B* __restrict b_pos = b.data();
77
215
        UInt8* __restrict c_pos = c.data();
78
215
        const A* __restrict a_end = a_pos + size;
79
80
13.5k
        while (a_pos < a_end) {
81
13.3k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
13.3k
            ++a_pos;
83
13.3k
            ++b_pos;
84
13.3k
            ++c_pos;
85
13.3k
        }
86
215
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
142
                                        PaddedPODArray<UInt8>& c) {
74
142
        size_t size = a.size();
75
142
        const A* __restrict a_pos = a.data();
76
142
        const B* __restrict b_pos = b.data();
77
142
        UInt8* __restrict c_pos = c.data();
78
142
        const A* __restrict a_end = a_pos + size;
79
80
458
        while (a_pos < a_end) {
81
316
            *c_pos = Op::apply(*a_pos, *b_pos);
82
316
            ++a_pos;
83
316
            ++b_pos;
84
316
            ++c_pos;
85
316
        }
86
142
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
16
                                        PaddedPODArray<UInt8>& c) {
74
16
        size_t size = a.size();
75
16
        const A* __restrict a_pos = a.data();
76
16
        const B* __restrict b_pos = b.data();
77
16
        UInt8* __restrict c_pos = c.data();
78
16
        const A* __restrict a_end = a_pos + size;
79
80
32
        while (a_pos < a_end) {
81
16
            *c_pos = Op::apply(*a_pos, *b_pos);
82
16
            ++a_pos;
83
16
            ++b_pos;
84
16
            ++c_pos;
85
16
        }
86
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
16
                                        PaddedPODArray<UInt8>& c) {
74
16
        size_t size = a.size();
75
16
        const A* __restrict a_pos = a.data();
76
16
        const B* __restrict b_pos = b.data();
77
16
        UInt8* __restrict c_pos = c.data();
78
16
        const A* __restrict a_end = a_pos + size;
79
80
32
        while (a_pos < a_end) {
81
16
            *c_pos = Op::apply(*a_pos, *b_pos);
82
16
            ++a_pos;
83
16
            ++b_pos;
84
16
            ++c_pos;
85
16
        }
86
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
138
                                        PaddedPODArray<UInt8>& c) {
74
138
        size_t size = a.size();
75
138
        const A* __restrict a_pos = a.data();
76
138
        const B* __restrict b_pos = b.data();
77
138
        UInt8* __restrict c_pos = c.data();
78
138
        const A* __restrict a_end = a_pos + size;
79
80
469
        while (a_pos < a_end) {
81
331
            *c_pos = Op::apply(*a_pos, *b_pos);
82
331
            ++a_pos;
83
331
            ++b_pos;
84
331
            ++c_pos;
85
331
        }
86
138
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
148
                                        PaddedPODArray<UInt8>& c) {
74
148
        size_t size = a.size();
75
148
        const A* __restrict a_pos = a.data();
76
148
        const B* __restrict b_pos = b.data();
77
148
        UInt8* __restrict c_pos = c.data();
78
148
        const A* __restrict a_end = a_pos + size;
79
80
506
        while (a_pos < a_end) {
81
358
            *c_pos = Op::apply(*a_pos, *b_pos);
82
358
            ++a_pos;
83
358
            ++b_pos;
84
358
            ++c_pos;
85
358
        }
86
148
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
433
                                        PaddedPODArray<UInt8>& c) {
74
433
        size_t size = a.size();
75
433
        const A* __restrict a_pos = a.data();
76
433
        const B* __restrict b_pos = b.data();
77
433
        UInt8* __restrict c_pos = c.data();
78
433
        const A* __restrict a_end = a_pos + size;
79
80
6.96k
        while (a_pos < a_end) {
81
6.53k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
6.53k
            ++a_pos;
83
6.53k
            ++b_pos;
84
6.53k
            ++c_pos;
85
6.53k
        }
86
433
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
24
                                        PaddedPODArray<UInt8>& c) {
74
24
        size_t size = a.size();
75
24
        const A* __restrict a_pos = a.data();
76
24
        const B* __restrict b_pos = b.data();
77
24
        UInt8* __restrict c_pos = c.data();
78
24
        const A* __restrict a_end = a_pos + size;
79
80
62
        while (a_pos < a_end) {
81
38
            *c_pos = Op::apply(*a_pos, *b_pos);
82
38
            ++a_pos;
83
38
            ++b_pos;
84
38
            ++c_pos;
85
38
        }
86
24
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
1
                                        PaddedPODArray<UInt8>& c) {
74
1
        size_t size = a.size();
75
1
        const A* __restrict a_pos = a.data();
76
1
        const B* __restrict b_pos = b.data();
77
1
        UInt8* __restrict c_pos = c.data();
78
1
        const A* __restrict a_end = a_pos + size;
79
80
10
        while (a_pos < a_end) {
81
9
            *c_pos = Op::apply(*a_pos, *b_pos);
82
9
            ++a_pos;
83
9
            ++b_pos;
84
9
            ++c_pos;
85
9
        }
86
1
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
2
                                        PaddedPODArray<UInt8>& c) {
74
2
        size_t size = a.size();
75
2
        const A* __restrict a_pos = a.data();
76
2
        const B* __restrict b_pos = b.data();
77
2
        UInt8* __restrict c_pos = c.data();
78
2
        const A* __restrict a_end = a_pos + size;
79
80
7
        while (a_pos < a_end) {
81
5
            *c_pos = Op::apply(*a_pos, *b_pos);
82
5
            ++a_pos;
83
5
            ++b_pos;
84
5
            ++c_pos;
85
5
        }
86
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
35
                                        PaddedPODArray<UInt8>& c) {
74
35
        size_t size = a.size();
75
35
        const A* __restrict a_pos = a.data();
76
35
        const B* __restrict b_pos = b.data();
77
35
        UInt8* __restrict c_pos = c.data();
78
35
        const A* __restrict a_end = a_pos + size;
79
80
12.4k
        while (a_pos < a_end) {
81
12.3k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
12.3k
            ++a_pos;
83
12.3k
            ++b_pos;
84
12.3k
            ++c_pos;
85
12.3k
        }
86
35
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
71
                                        PaddedPODArray<UInt8>& c) {
74
71
        size_t size = a.size();
75
71
        const A* __restrict a_pos = a.data();
76
71
        const B* __restrict b_pos = b.data();
77
71
        UInt8* __restrict c_pos = c.data();
78
71
        const A* __restrict a_end = a_pos + size;
79
80
194
        while (a_pos < a_end) {
81
123
            *c_pos = Op::apply(*a_pos, *b_pos);
82
123
            ++a_pos;
83
123
            ++b_pos;
84
123
            ++c_pos;
85
123
        }
86
71
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
73
76
                                        PaddedPODArray<UInt8>& c) {
74
76
        size_t size = a.size();
75
76
        const A* __restrict a_pos = a.data();
76
76
        const B* __restrict b_pos = b.data();
77
76
        UInt8* __restrict c_pos = c.data();
78
76
        const A* __restrict a_end = a_pos + size;
79
80
152
        while (a_pos < a_end) {
81
76
            *c_pos = Op::apply(*a_pos, *b_pos);
82
76
            ++a_pos;
83
76
            ++b_pos;
84
76
            ++c_pos;
85
76
        }
86
76
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
229
                                        PaddedPODArray<UInt8>& c) {
74
229
        size_t size = a.size();
75
229
        const A* __restrict a_pos = a.data();
76
229
        const B* __restrict b_pos = b.data();
77
229
        UInt8* __restrict c_pos = c.data();
78
229
        const A* __restrict a_end = a_pos + size;
79
80
464
        while (a_pos < a_end) {
81
235
            *c_pos = Op::apply(*a_pos, *b_pos);
82
235
            ++a_pos;
83
235
            ++b_pos;
84
235
            ++c_pos;
85
235
        }
86
229
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
275
                                        PaddedPODArray<UInt8>& c) {
74
275
        size_t size = a.size();
75
275
        const A* __restrict a_pos = a.data();
76
275
        const B* __restrict b_pos = b.data();
77
275
        UInt8* __restrict c_pos = c.data();
78
275
        const A* __restrict a_end = a_pos + size;
79
80
572
        while (a_pos < a_end) {
81
297
            *c_pos = Op::apply(*a_pos, *b_pos);
82
297
            ++a_pos;
83
297
            ++b_pos;
84
297
            ++c_pos;
85
297
        }
86
275
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
134
                                        PaddedPODArray<UInt8>& c) {
74
134
        size_t size = a.size();
75
134
        const A* __restrict a_pos = a.data();
76
134
        const B* __restrict b_pos = b.data();
77
134
        UInt8* __restrict c_pos = c.data();
78
134
        const A* __restrict a_end = a_pos + size;
79
80
327
        while (a_pos < a_end) {
81
193
            *c_pos = Op::apply(*a_pos, *b_pos);
82
193
            ++a_pos;
83
193
            ++b_pos;
84
193
            ++c_pos;
85
193
        }
86
134
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
2
                                        PaddedPODArray<UInt8>& c) {
74
2
        size_t size = a.size();
75
2
        const A* __restrict a_pos = a.data();
76
2
        const B* __restrict b_pos = b.data();
77
2
        UInt8* __restrict c_pos = c.data();
78
2
        const A* __restrict a_end = a_pos + size;
79
80
12
        while (a_pos < a_end) {
81
10
            *c_pos = Op::apply(*a_pos, *b_pos);
82
10
            ++a_pos;
83
10
            ++b_pos;
84
10
            ++c_pos;
85
10
        }
86
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
162
                                        PaddedPODArray<UInt8>& c) {
74
162
        size_t size = a.size();
75
162
        const A* __restrict a_pos = a.data();
76
162
        const B* __restrict b_pos = b.data();
77
162
        UInt8* __restrict c_pos = c.data();
78
162
        const A* __restrict a_end = a_pos + size;
79
80
460
        while (a_pos < a_end) {
81
298
            *c_pos = Op::apply(*a_pos, *b_pos);
82
298
            ++a_pos;
83
298
            ++b_pos;
84
298
            ++c_pos;
85
298
        }
86
162
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
84
                                        PaddedPODArray<UInt8>& c) {
74
84
        size_t size = a.size();
75
84
        const A* __restrict a_pos = a.data();
76
84
        const B* __restrict b_pos = b.data();
77
84
        UInt8* __restrict c_pos = c.data();
78
84
        const A* __restrict a_end = a_pos + size;
79
80
168
        while (a_pos < a_end) {
81
84
            *c_pos = Op::apply(*a_pos, *b_pos);
82
84
            ++a_pos;
83
84
            ++b_pos;
84
84
            ++c_pos;
85
84
        }
86
84
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
244
                                        PaddedPODArray<UInt8>& c) {
74
244
        size_t size = a.size();
75
244
        const A* __restrict a_pos = a.data();
76
244
        const B* __restrict b_pos = b.data();
77
244
        UInt8* __restrict c_pos = c.data();
78
244
        const A* __restrict a_end = a_pos + size;
79
80
14.0k
        while (a_pos < a_end) {
81
13.7k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
13.7k
            ++a_pos;
83
13.7k
            ++b_pos;
84
13.7k
            ++c_pos;
85
13.7k
        }
86
244
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
190
                                        PaddedPODArray<UInt8>& c) {
74
190
        size_t size = a.size();
75
190
        const A* __restrict a_pos = a.data();
76
190
        const B* __restrict b_pos = b.data();
77
190
        UInt8* __restrict c_pos = c.data();
78
190
        const A* __restrict a_end = a_pos + size;
79
80
1.47k
        while (a_pos < a_end) {
81
1.28k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
1.28k
            ++a_pos;
83
1.28k
            ++b_pos;
84
1.28k
            ++c_pos;
85
1.28k
        }
86
190
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
84
                                        PaddedPODArray<UInt8>& c) {
74
84
        size_t size = a.size();
75
84
        const A* __restrict a_pos = a.data();
76
84
        const B* __restrict b_pos = b.data();
77
84
        UInt8* __restrict c_pos = c.data();
78
84
        const A* __restrict a_end = a_pos + size;
79
80
168
        while (a_pos < a_end) {
81
84
            *c_pos = Op::apply(*a_pos, *b_pos);
82
84
            ++a_pos;
83
84
            ++b_pos;
84
84
            ++c_pos;
85
84
        }
86
84
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
16
                                        PaddedPODArray<UInt8>& c) {
74
16
        size_t size = a.size();
75
16
        const A* __restrict a_pos = a.data();
76
16
        const B* __restrict b_pos = b.data();
77
16
        UInt8* __restrict c_pos = c.data();
78
16
        const A* __restrict a_end = a_pos + size;
79
80
32
        while (a_pos < a_end) {
81
16
            *c_pos = Op::apply(*a_pos, *b_pos);
82
16
            ++a_pos;
83
16
            ++b_pos;
84
16
            ++c_pos;
85
16
        }
86
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
24
                                        PaddedPODArray<UInt8>& c) {
74
24
        size_t size = a.size();
75
24
        const A* __restrict a_pos = a.data();
76
24
        const B* __restrict b_pos = b.data();
77
24
        UInt8* __restrict c_pos = c.data();
78
24
        const A* __restrict a_end = a_pos + size;
79
80
48
        while (a_pos < a_end) {
81
24
            *c_pos = Op::apply(*a_pos, *b_pos);
82
24
            ++a_pos;
83
24
            ++b_pos;
84
24
            ++c_pos;
85
24
        }
86
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
104
                                        PaddedPODArray<UInt8>& c) {
74
104
        size_t size = a.size();
75
104
        const A* __restrict a_pos = a.data();
76
104
        const B* __restrict b_pos = b.data();
77
104
        UInt8* __restrict c_pos = c.data();
78
104
        const A* __restrict a_end = a_pos + size;
79
80
227
        while (a_pos < a_end) {
81
123
            *c_pos = Op::apply(*a_pos, *b_pos);
82
123
            ++a_pos;
83
123
            ++b_pos;
84
123
            ++c_pos;
85
123
        }
86
104
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
106
                                        PaddedPODArray<UInt8>& c) {
74
106
        size_t size = a.size();
75
106
        const A* __restrict a_pos = a.data();
76
106
        const B* __restrict b_pos = b.data();
77
106
        UInt8* __restrict c_pos = c.data();
78
106
        const A* __restrict a_end = a_pos + size;
79
80
238
        while (a_pos < a_end) {
81
132
            *c_pos = Op::apply(*a_pos, *b_pos);
82
132
            ++a_pos;
83
132
            ++b_pos;
84
132
            ++c_pos;
85
132
        }
86
106
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
4
                                        PaddedPODArray<UInt8>& c) {
74
4
        size_t size = a.size();
75
4
        const A* __restrict a_pos = a.data();
76
4
        const B* __restrict b_pos = b.data();
77
4
        UInt8* __restrict c_pos = c.data();
78
4
        const A* __restrict a_end = a_pos + size;
79
80
8
        while (a_pos < a_end) {
81
4
            *c_pos = Op::apply(*a_pos, *b_pos);
82
4
            ++a_pos;
83
4
            ++b_pos;
84
4
            ++c_pos;
85
4
        }
86
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
73
39
                                        PaddedPODArray<UInt8>& c) {
74
39
        size_t size = a.size();
75
39
        const A* __restrict a_pos = a.data();
76
39
        const B* __restrict b_pos = b.data();
77
39
        UInt8* __restrict c_pos = c.data();
78
39
        const A* __restrict a_end = a_pos + size;
79
80
108
        while (a_pos < a_end) {
81
69
            *c_pos = Op::apply(*a_pos, *b_pos);
82
69
            ++a_pos;
83
69
            ++b_pos;
84
69
            ++c_pos;
85
69
        }
86
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE43EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
73
8
                                        PaddedPODArray<UInt8>& c) {
74
8
        size_t size = a.size();
75
8
        const A* __restrict a_pos = a.data();
76
8
        const B* __restrict b_pos = b.data();
77
8
        UInt8* __restrict c_pos = c.data();
78
8
        const A* __restrict a_end = a_pos + size;
79
80
16
        while (a_pos < a_end) {
81
8
            *c_pos = Op::apply(*a_pos, *b_pos);
82
8
            ++a_pos;
83
8
            ++b_pos;
84
8
            ++c_pos;
85
8
        }
86
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
54
                                        PaddedPODArray<UInt8>& c) {
74
54
        size_t size = a.size();
75
54
        const A* __restrict a_pos = a.data();
76
54
        const B* __restrict b_pos = b.data();
77
54
        UInt8* __restrict c_pos = c.data();
78
54
        const A* __restrict a_end = a_pos + size;
79
80
243
        while (a_pos < a_end) {
81
189
            *c_pos = Op::apply(*a_pos, *b_pos);
82
189
            ++a_pos;
83
189
            ++b_pos;
84
189
            ++c_pos;
85
189
        }
86
54
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
1.02k
                                        PaddedPODArray<UInt8>& c) {
74
1.02k
        size_t size = a.size();
75
1.02k
        const A* __restrict a_pos = a.data();
76
1.02k
        const B* __restrict b_pos = b.data();
77
1.02k
        UInt8* __restrict c_pos = c.data();
78
1.02k
        const A* __restrict a_end = a_pos + size;
79
80
371k
        while (a_pos < a_end) {
81
370k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
370k
            ++a_pos;
83
370k
            ++b_pos;
84
370k
            ++c_pos;
85
370k
        }
86
1.02k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
402
                                        PaddedPODArray<UInt8>& c) {
74
402
        size_t size = a.size();
75
402
        const A* __restrict a_pos = a.data();
76
402
        const B* __restrict b_pos = b.data();
77
402
        UInt8* __restrict c_pos = c.data();
78
402
        const A* __restrict a_end = a_pos + size;
79
80
7.57k
        while (a_pos < a_end) {
81
7.16k
            *c_pos = Op::apply(*a_pos, *b_pos);
82
7.16k
            ++a_pos;
83
7.16k
            ++b_pos;
84
7.16k
            ++c_pos;
85
7.16k
        }
86
402
    }
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
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
20
                                        PaddedPODArray<UInt8>& c) {
74
20
        size_t size = a.size();
75
20
        const A* __restrict a_pos = a.data();
76
20
        const B* __restrict b_pos = b.data();
77
20
        UInt8* __restrict c_pos = c.data();
78
20
        const A* __restrict a_end = a_pos + size;
79
80
59
        while (a_pos < a_end) {
81
39
            *c_pos = Op::apply(*a_pos, *b_pos);
82
39
            ++a_pos;
83
39
            ++b_pos;
84
39
            ++c_pos;
85
39
        }
86
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
73
22
                                        PaddedPODArray<UInt8>& c) {
74
22
        size_t size = a.size();
75
22
        const A* __restrict a_pos = a.data();
76
22
        const B* __restrict b_pos = b.data();
77
22
        UInt8* __restrict c_pos = c.data();
78
22
        const A* __restrict a_end = a_pos + size;
79
80
73
        while (a_pos < a_end) {
81
51
            *c_pos = Op::apply(*a_pos, *b_pos);
82
51
            ++a_pos;
83
51
            ++b_pos;
84
51
            ++c_pos;
85
51
        }
86
22
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
87
88
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
89
100k
                                          PaddedPODArray<UInt8>& c) {
90
100k
        size_t size = a.size();
91
100k
        const A* __restrict a_pos = a.data();
92
100k
        UInt8* __restrict c_pos = c.data();
93
100k
        const A* __restrict a_end = a_pos + size;
94
95
30.9M
        while (a_pos < a_end) {
96
30.8M
            *c_pos = Op::apply(*a_pos, b);
97
30.8M
            ++a_pos;
98
30.8M
            ++c_pos;
99
30.8M
        }
100
100k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
41
                                          PaddedPODArray<UInt8>& c) {
90
41
        size_t size = a.size();
91
41
        const A* __restrict a_pos = a.data();
92
41
        UInt8* __restrict c_pos = c.data();
93
41
        const A* __restrict a_end = a_pos + size;
94
95
149
        while (a_pos < a_end) {
96
108
            *c_pos = Op::apply(*a_pos, b);
97
108
            ++a_pos;
98
108
            ++c_pos;
99
108
        }
100
41
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
405
                                          PaddedPODArray<UInt8>& c) {
90
405
        size_t size = a.size();
91
405
        const A* __restrict a_pos = a.data();
92
405
        UInt8* __restrict c_pos = c.data();
93
405
        const A* __restrict a_end = a_pos + size;
94
95
1.34M
        while (a_pos < a_end) {
96
1.34M
            *c_pos = Op::apply(*a_pos, b);
97
1.34M
            ++a_pos;
98
1.34M
            ++c_pos;
99
1.34M
        }
100
405
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
2
                                          PaddedPODArray<UInt8>& c) {
90
2
        size_t size = a.size();
91
2
        const A* __restrict a_pos = a.data();
92
2
        UInt8* __restrict c_pos = c.data();
93
2
        const A* __restrict a_end = a_pos + size;
94
95
6
        while (a_pos < a_end) {
96
4
            *c_pos = Op::apply(*a_pos, b);
97
4
            ++a_pos;
98
4
            ++c_pos;
99
4
        }
100
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
59
                                          PaddedPODArray<UInt8>& c) {
90
59
        size_t size = a.size();
91
59
        const A* __restrict a_pos = a.data();
92
59
        UInt8* __restrict c_pos = c.data();
93
59
        const A* __restrict a_end = a_pos + size;
94
95
263
        while (a_pos < a_end) {
96
204
            *c_pos = Op::apply(*a_pos, b);
97
204
            ++a_pos;
98
204
            ++c_pos;
99
204
        }
100
59
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
34
                                          PaddedPODArray<UInt8>& c) {
90
34
        size_t size = a.size();
91
34
        const A* __restrict a_pos = a.data();
92
34
        UInt8* __restrict c_pos = c.data();
93
34
        const A* __restrict a_end = a_pos + size;
94
95
74
        while (a_pos < a_end) {
96
40
            *c_pos = Op::apply(*a_pos, b);
97
40
            ++a_pos;
98
40
            ++c_pos;
99
40
        }
100
34
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
39
                                          PaddedPODArray<UInt8>& c) {
90
39
        size_t size = a.size();
91
39
        const A* __restrict a_pos = a.data();
92
39
        UInt8* __restrict c_pos = c.data();
93
39
        const A* __restrict a_end = a_pos + size;
94
95
84
        while (a_pos < a_end) {
96
45
            *c_pos = Op::apply(*a_pos, b);
97
45
            ++a_pos;
98
45
            ++c_pos;
99
45
        }
100
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
1
                                          PaddedPODArray<UInt8>& c) {
90
1
        size_t size = a.size();
91
1
        const A* __restrict a_pos = a.data();
92
1
        UInt8* __restrict c_pos = c.data();
93
1
        const A* __restrict a_end = a_pos + size;
94
95
8
        while (a_pos < a_end) {
96
7
            *c_pos = Op::apply(*a_pos, b);
97
7
            ++a_pos;
98
7
            ++c_pos;
99
7
        }
100
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.23k
                                          PaddedPODArray<UInt8>& c) {
90
1.23k
        size_t size = a.size();
91
1.23k
        const A* __restrict a_pos = a.data();
92
1.23k
        UInt8* __restrict c_pos = c.data();
93
1.23k
        const A* __restrict a_end = a_pos + size;
94
95
6.93k
        while (a_pos < a_end) {
96
5.69k
            *c_pos = Op::apply(*a_pos, b);
97
5.69k
            ++a_pos;
98
5.69k
            ++c_pos;
99
5.69k
        }
100
1.23k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.13k
                                          PaddedPODArray<UInt8>& c) {
90
2.13k
        size_t size = a.size();
91
2.13k
        const A* __restrict a_pos = a.data();
92
2.13k
        UInt8* __restrict c_pos = c.data();
93
2.13k
        const A* __restrict a_end = a_pos + size;
94
95
5.88k
        while (a_pos < a_end) {
96
3.75k
            *c_pos = Op::apply(*a_pos, b);
97
3.75k
            ++a_pos;
98
3.75k
            ++c_pos;
99
3.75k
        }
100
2.13k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.45k
                                          PaddedPODArray<UInt8>& c) {
90
1.45k
        size_t size = a.size();
91
1.45k
        const A* __restrict a_pos = a.data();
92
1.45k
        UInt8* __restrict c_pos = c.data();
93
1.45k
        const A* __restrict a_end = a_pos + size;
94
95
6.24k
        while (a_pos < a_end) {
96
4.79k
            *c_pos = Op::apply(*a_pos, b);
97
4.79k
            ++a_pos;
98
4.79k
            ++c_pos;
99
4.79k
        }
100
1.45k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
242
                                          PaddedPODArray<UInt8>& c) {
90
242
        size_t size = a.size();
91
242
        const A* __restrict a_pos = a.data();
92
242
        UInt8* __restrict c_pos = c.data();
93
242
        const A* __restrict a_end = a_pos + size;
94
95
1.20k
        while (a_pos < a_end) {
96
959
            *c_pos = Op::apply(*a_pos, b);
97
959
            ++a_pos;
98
959
            ++c_pos;
99
959
        }
100
242
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
4.85k
                                          PaddedPODArray<UInt8>& c) {
90
4.85k
        size_t size = a.size();
91
4.85k
        const A* __restrict a_pos = a.data();
92
4.85k
        UInt8* __restrict c_pos = c.data();
93
4.85k
        const A* __restrict a_end = a_pos + size;
94
95
959k
        while (a_pos < a_end) {
96
954k
            *c_pos = Op::apply(*a_pos, b);
97
954k
            ++a_pos;
98
954k
            ++c_pos;
99
954k
        }
100
4.85k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
63.0k
                                          PaddedPODArray<UInt8>& c) {
90
63.0k
        size_t size = a.size();
91
63.0k
        const A* __restrict a_pos = a.data();
92
63.0k
        UInt8* __restrict c_pos = c.data();
93
63.0k
        const A* __restrict a_end = a_pos + size;
94
95
5.31M
        while (a_pos < a_end) {
96
5.25M
            *c_pos = Op::apply(*a_pos, b);
97
5.25M
            ++a_pos;
98
5.25M
            ++c_pos;
99
5.25M
        }
100
63.0k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.85k
                                          PaddedPODArray<UInt8>& c) {
90
1.85k
        size_t size = a.size();
91
1.85k
        const A* __restrict a_pos = a.data();
92
1.85k
        UInt8* __restrict c_pos = c.data();
93
1.85k
        const A* __restrict a_end = a_pos + size;
94
95
99.2k
        while (a_pos < a_end) {
96
97.3k
            *c_pos = Op::apply(*a_pos, b);
97
97.3k
            ++a_pos;
98
97.3k
            ++c_pos;
99
97.3k
        }
100
1.85k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.01k
                                          PaddedPODArray<UInt8>& c) {
90
1.01k
        size_t size = a.size();
91
1.01k
        const A* __restrict a_pos = a.data();
92
1.01k
        UInt8* __restrict c_pos = c.data();
93
1.01k
        const A* __restrict a_end = a_pos + size;
94
95
11.7k
        while (a_pos < a_end) {
96
10.7k
            *c_pos = Op::apply(*a_pos, b);
97
10.7k
            ++a_pos;
98
10.7k
            ++c_pos;
99
10.7k
        }
100
1.01k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
247
                                          PaddedPODArray<UInt8>& c) {
90
247
        size_t size = a.size();
91
247
        const A* __restrict a_pos = a.data();
92
247
        UInt8* __restrict c_pos = c.data();
93
247
        const A* __restrict a_end = a_pos + size;
94
95
1.88k
        while (a_pos < a_end) {
96
1.63k
            *c_pos = Op::apply(*a_pos, b);
97
1.63k
            ++a_pos;
98
1.63k
            ++c_pos;
99
1.63k
        }
100
247
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
82
                                          PaddedPODArray<UInt8>& c) {
90
82
        size_t size = a.size();
91
82
        const A* __restrict a_pos = a.data();
92
82
        UInt8* __restrict c_pos = c.data();
93
82
        const A* __restrict a_end = a_pos + size;
94
95
86.2k
        while (a_pos < a_end) {
96
86.1k
            *c_pos = Op::apply(*a_pos, b);
97
86.1k
            ++a_pos;
98
86.1k
            ++c_pos;
99
86.1k
        }
100
82
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
3
                                          PaddedPODArray<UInt8>& c) {
90
3
        size_t size = a.size();
91
3
        const A* __restrict a_pos = a.data();
92
3
        UInt8* __restrict c_pos = c.data();
93
3
        const A* __restrict a_end = a_pos + size;
94
95
31
        while (a_pos < a_end) {
96
28
            *c_pos = Op::apply(*a_pos, b);
97
28
            ++a_pos;
98
28
            ++c_pos;
99
28
        }
100
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2
                                          PaddedPODArray<UInt8>& c) {
90
2
        size_t size = a.size();
91
2
        const A* __restrict a_pos = a.data();
92
2
        UInt8* __restrict c_pos = c.data();
93
2
        const A* __restrict a_end = a_pos + size;
94
95
22
        while (a_pos < a_end) {
96
20
            *c_pos = Op::apply(*a_pos, b);
97
20
            ++a_pos;
98
20
            ++c_pos;
99
20
        }
100
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
200
                                          PaddedPODArray<UInt8>& c) {
90
200
        size_t size = a.size();
91
200
        const A* __restrict a_pos = a.data();
92
200
        UInt8* __restrict c_pos = c.data();
93
200
        const A* __restrict a_end = a_pos + size;
94
95
2.61k
        while (a_pos < a_end) {
96
2.41k
            *c_pos = Op::apply(*a_pos, b);
97
2.41k
            ++a_pos;
98
2.41k
            ++c_pos;
99
2.41k
        }
100
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
499
                                          PaddedPODArray<UInt8>& c) {
90
499
        size_t size = a.size();
91
499
        const A* __restrict a_pos = a.data();
92
499
        UInt8* __restrict c_pos = c.data();
93
499
        const A* __restrict a_end = a_pos + size;
94
95
7.44k
        while (a_pos < a_end) {
96
6.94k
            *c_pos = Op::apply(*a_pos, b);
97
6.94k
            ++a_pos;
98
6.94k
            ++c_pos;
99
6.94k
        }
100
499
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
213
                                          PaddedPODArray<UInt8>& c) {
90
213
        size_t size = a.size();
91
213
        const A* __restrict a_pos = a.data();
92
213
        UInt8* __restrict c_pos = c.data();
93
213
        const A* __restrict a_end = a_pos + size;
94
95
282k
        while (a_pos < a_end) {
96
282k
            *c_pos = Op::apply(*a_pos, b);
97
282k
            ++a_pos;
98
282k
            ++c_pos;
99
282k
        }
100
213
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
89
24
                                          PaddedPODArray<UInt8>& c) {
90
24
        size_t size = a.size();
91
24
        const A* __restrict a_pos = a.data();
92
24
        UInt8* __restrict c_pos = c.data();
93
24
        const A* __restrict a_end = a_pos + size;
94
95
120k
        while (a_pos < a_end) {
96
120k
            *c_pos = Op::apply(*a_pos, b);
97
120k
            ++a_pos;
98
120k
            ++c_pos;
99
120k
        }
100
24
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
89
31
                                          PaddedPODArray<UInt8>& c) {
90
31
        size_t size = a.size();
91
31
        const A* __restrict a_pos = a.data();
92
31
        UInt8* __restrict c_pos = c.data();
93
31
        const A* __restrict a_end = a_pos + size;
94
95
91.1k
        while (a_pos < a_end) {
96
91.1k
            *c_pos = Op::apply(*a_pos, b);
97
91.1k
            ++a_pos;
98
91.1k
            ++c_pos;
99
91.1k
        }
100
31
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
489
                                          PaddedPODArray<UInt8>& c) {
90
489
        size_t size = a.size();
91
489
        const A* __restrict a_pos = a.data();
92
489
        UInt8* __restrict c_pos = c.data();
93
489
        const A* __restrict a_end = a_pos + size;
94
95
1.41M
        while (a_pos < a_end) {
96
1.41M
            *c_pos = Op::apply(*a_pos, b);
97
1.41M
            ++a_pos;
98
1.41M
            ++c_pos;
99
1.41M
        }
100
489
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
154
                                          PaddedPODArray<UInt8>& c) {
90
154
        size_t size = a.size();
91
154
        const A* __restrict a_pos = a.data();
92
154
        UInt8* __restrict c_pos = c.data();
93
154
        const A* __restrict a_end = a_pos + size;
94
95
712k
        while (a_pos < a_end) {
96
712k
            *c_pos = Op::apply(*a_pos, b);
97
712k
            ++a_pos;
98
712k
            ++c_pos;
99
712k
        }
100
154
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
112
                                          PaddedPODArray<UInt8>& c) {
90
112
        size_t size = a.size();
91
112
        const A* __restrict a_pos = a.data();
92
112
        UInt8* __restrict c_pos = c.data();
93
112
        const A* __restrict a_end = a_pos + size;
94
95
415
        while (a_pos < a_end) {
96
303
            *c_pos = Op::apply(*a_pos, b);
97
303
            ++a_pos;
98
303
            ++c_pos;
99
303
        }
100
112
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
71
                                          PaddedPODArray<UInt8>& c) {
90
71
        size_t size = a.size();
91
71
        const A* __restrict a_pos = a.data();
92
71
        UInt8* __restrict c_pos = c.data();
93
71
        const A* __restrict a_end = a_pos + size;
94
95
330
        while (a_pos < a_end) {
96
259
            *c_pos = Op::apply(*a_pos, b);
97
259
            ++a_pos;
98
259
            ++c_pos;
99
259
        }
100
71
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
45
                                          PaddedPODArray<UInt8>& c) {
90
45
        size_t size = a.size();
91
45
        const A* __restrict a_pos = a.data();
92
45
        UInt8* __restrict c_pos = c.data();
93
45
        const A* __restrict a_end = a_pos + size;
94
95
106
        while (a_pos < a_end) {
96
61
            *c_pos = Op::apply(*a_pos, b);
97
61
            ++a_pos;
98
61
            ++c_pos;
99
61
        }
100
45
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
37
                                          PaddedPODArray<UInt8>& c) {
90
37
        size_t size = a.size();
91
37
        const A* __restrict a_pos = a.data();
92
37
        UInt8* __restrict c_pos = c.data();
93
37
        const A* __restrict a_end = a_pos + size;
94
95
84
        while (a_pos < a_end) {
96
47
            *c_pos = Op::apply(*a_pos, b);
97
47
            ++a_pos;
98
47
            ++c_pos;
99
47
        }
100
37
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
70
                                          PaddedPODArray<UInt8>& c) {
90
70
        size_t size = a.size();
91
70
        const A* __restrict a_pos = a.data();
92
70
        UInt8* __restrict c_pos = c.data();
93
70
        const A* __restrict a_end = a_pos + size;
94
95
91.7k
        while (a_pos < a_end) {
96
91.7k
            *c_pos = Op::apply(*a_pos, b);
97
91.7k
            ++a_pos;
98
91.7k
            ++c_pos;
99
91.7k
        }
100
70
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
110
                                          PaddedPODArray<UInt8>& c) {
90
110
        size_t size = a.size();
91
110
        const A* __restrict a_pos = a.data();
92
110
        UInt8* __restrict c_pos = c.data();
93
110
        const A* __restrict a_end = a_pos + size;
94
95
142k
        while (a_pos < a_end) {
96
142k
            *c_pos = Op::apply(*a_pos, b);
97
142k
            ++a_pos;
98
142k
            ++c_pos;
99
142k
        }
100
110
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
92
                                          PaddedPODArray<UInt8>& c) {
90
92
        size_t size = a.size();
91
92
        const A* __restrict a_pos = a.data();
92
92
        UInt8* __restrict c_pos = c.data();
93
92
        const A* __restrict a_end = a_pos + size;
94
95
106k
        while (a_pos < a_end) {
96
106k
            *c_pos = Op::apply(*a_pos, b);
97
106k
            ++a_pos;
98
106k
            ++c_pos;
99
106k
        }
100
92
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
134
                                          PaddedPODArray<UInt8>& c) {
90
134
        size_t size = a.size();
91
134
        const A* __restrict a_pos = a.data();
92
134
        UInt8* __restrict c_pos = c.data();
93
134
        const A* __restrict a_end = a_pos + size;
94
95
106k
        while (a_pos < a_end) {
96
106k
            *c_pos = Op::apply(*a_pos, b);
97
106k
            ++a_pos;
98
106k
            ++c_pos;
99
106k
        }
100
134
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
894
                                          PaddedPODArray<UInt8>& c) {
90
894
        size_t size = a.size();
91
894
        const A* __restrict a_pos = a.data();
92
894
        UInt8* __restrict c_pos = c.data();
93
894
        const A* __restrict a_end = a_pos + size;
94
95
1.96M
        while (a_pos < a_end) {
96
1.96M
            *c_pos = Op::apply(*a_pos, b);
97
1.96M
            ++a_pos;
98
1.96M
            ++c_pos;
99
1.96M
        }
100
894
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
5.83k
                                          PaddedPODArray<UInt8>& c) {
90
5.83k
        size_t size = a.size();
91
5.83k
        const A* __restrict a_pos = a.data();
92
5.83k
        UInt8* __restrict c_pos = c.data();
93
5.83k
        const A* __restrict a_end = a_pos + size;
94
95
5.87M
        while (a_pos < a_end) {
96
5.86M
            *c_pos = Op::apply(*a_pos, b);
97
5.86M
            ++a_pos;
98
5.86M
            ++c_pos;
99
5.86M
        }
100
5.83k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
695
                                          PaddedPODArray<UInt8>& c) {
90
695
        size_t size = a.size();
91
695
        const A* __restrict a_pos = a.data();
92
695
        UInt8* __restrict c_pos = c.data();
93
695
        const A* __restrict a_end = a_pos + size;
94
95
1.95k
        while (a_pos < a_end) {
96
1.26k
            *c_pos = Op::apply(*a_pos, b);
97
1.26k
            ++a_pos;
98
1.26k
            ++c_pos;
99
1.26k
        }
100
695
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
511
                                          PaddedPODArray<UInt8>& c) {
90
511
        size_t size = a.size();
91
511
        const A* __restrict a_pos = a.data();
92
511
        UInt8* __restrict c_pos = c.data();
93
511
        const A* __restrict a_end = a_pos + size;
94
95
4.20k
        while (a_pos < a_end) {
96
3.69k
            *c_pos = Op::apply(*a_pos, b);
97
3.69k
            ++a_pos;
98
3.69k
            ++c_pos;
99
3.69k
        }
100
511
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
28
                                          PaddedPODArray<UInt8>& c) {
90
28
        size_t size = a.size();
91
28
        const A* __restrict a_pos = a.data();
92
28
        UInt8* __restrict c_pos = c.data();
93
28
        const A* __restrict a_end = a_pos + size;
94
95
115k
        while (a_pos < a_end) {
96
115k
            *c_pos = Op::apply(*a_pos, b);
97
115k
            ++a_pos;
98
115k
            ++c_pos;
99
115k
        }
100
28
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
34
                                          PaddedPODArray<UInt8>& c) {
90
34
        size_t size = a.size();
91
34
        const A* __restrict a_pos = a.data();
92
34
        UInt8* __restrict c_pos = c.data();
93
34
        const A* __restrict a_end = a_pos + size;
94
95
71.3k
        while (a_pos < a_end) {
96
71.3k
            *c_pos = Op::apply(*a_pos, b);
97
71.3k
            ++a_pos;
98
71.3k
            ++c_pos;
99
71.3k
        }
100
34
    }
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
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
4
                                          PaddedPODArray<UInt8>& c) {
90
4
        size_t size = a.size();
91
4
        const A* __restrict a_pos = a.data();
92
4
        UInt8* __restrict c_pos = c.data();
93
4
        const A* __restrict a_end = a_pos + size;
94
95
10
        while (a_pos < a_end) {
96
6
            *c_pos = Op::apply(*a_pos, b);
97
6
            ++a_pos;
98
6
            ++c_pos;
99
6
        }
100
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
112
                                          PaddedPODArray<UInt8>& c) {
90
112
        size_t size = a.size();
91
112
        const A* __restrict a_pos = a.data();
92
112
        UInt8* __restrict c_pos = c.data();
93
112
        const A* __restrict a_end = a_pos + size;
94
95
275k
        while (a_pos < a_end) {
96
275k
            *c_pos = Op::apply(*a_pos, b);
97
275k
            ++a_pos;
98
275k
            ++c_pos;
99
275k
        }
100
112
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
124
                                          PaddedPODArray<UInt8>& c) {
90
124
        size_t size = a.size();
91
124
        const A* __restrict a_pos = a.data();
92
124
        UInt8* __restrict c_pos = c.data();
93
124
        const A* __restrict a_end = a_pos + size;
94
95
275k
        while (a_pos < a_end) {
96
275k
            *c_pos = Op::apply(*a_pos, b);
97
275k
            ++a_pos;
98
275k
            ++c_pos;
99
275k
        }
100
124
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
89
30
                                          PaddedPODArray<UInt8>& c) {
90
30
        size_t size = a.size();
91
30
        const A* __restrict a_pos = a.data();
92
30
        UInt8* __restrict c_pos = c.data();
93
30
        const A* __restrict a_end = a_pos + size;
94
95
183
        while (a_pos < a_end) {
96
153
            *c_pos = Op::apply(*a_pos, b);
97
153
            ++a_pos;
98
153
            ++c_pos;
99
153
        }
100
30
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
450
                                          PaddedPODArray<UInt8>& c) {
90
450
        size_t size = a.size();
91
450
        const A* __restrict a_pos = a.data();
92
450
        UInt8* __restrict c_pos = c.data();
93
450
        const A* __restrict a_end = a_pos + size;
94
95
202k
        while (a_pos < a_end) {
96
202k
            *c_pos = Op::apply(*a_pos, b);
97
202k
            ++a_pos;
98
202k
            ++c_pos;
99
202k
        }
100
450
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
176
                                          PaddedPODArray<UInt8>& c) {
90
176
        size_t size = a.size();
91
176
        const A* __restrict a_pos = a.data();
92
176
        UInt8* __restrict c_pos = c.data();
93
176
        const A* __restrict a_end = a_pos + size;
94
95
117k
        while (a_pos < a_end) {
96
117k
            *c_pos = Op::apply(*a_pos, b);
97
117k
            ++a_pos;
98
117k
            ++c_pos;
99
117k
        }
100
176
    }
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
89
86
                                          PaddedPODArray<UInt8>& c) {
90
86
        size_t size = a.size();
91
86
        const A* __restrict a_pos = a.data();
92
86
        UInt8* __restrict c_pos = c.data();
93
86
        const A* __restrict a_end = a_pos + size;
94
95
178
        while (a_pos < a_end) {
96
92
            *c_pos = Op::apply(*a_pos, b);
97
92
            ++a_pos;
98
92
            ++c_pos;
99
92
        }
100
86
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
5.78k
                                          PaddedPODArray<UInt8>& c) {
90
5.78k
        size_t size = a.size();
91
5.78k
        const A* __restrict a_pos = a.data();
92
5.78k
        UInt8* __restrict c_pos = c.data();
93
5.78k
        const A* __restrict a_end = a_pos + size;
94
95
8.96M
        while (a_pos < a_end) {
96
8.96M
            *c_pos = Op::apply(*a_pos, b);
97
8.96M
            ++a_pos;
98
8.96M
            ++c_pos;
99
8.96M
        }
100
5.78k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
357
                                          PaddedPODArray<UInt8>& c) {
90
357
        size_t size = a.size();
91
357
        const A* __restrict a_pos = a.data();
92
357
        UInt8* __restrict c_pos = c.data();
93
357
        const A* __restrict a_end = a_pos + size;
94
95
101k
        while (a_pos < a_end) {
96
101k
            *c_pos = Op::apply(*a_pos, b);
97
101k
            ++a_pos;
98
101k
            ++c_pos;
99
101k
        }
100
357
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
1.95k
                                          PaddedPODArray<UInt8>& c) {
90
1.95k
        size_t size = a.size();
91
1.95k
        const A* __restrict a_pos = a.data();
92
1.95k
        UInt8* __restrict c_pos = c.data();
93
1.95k
        const A* __restrict a_end = a_pos + size;
94
95
177k
        while (a_pos < a_end) {
96
175k
            *c_pos = Op::apply(*a_pos, b);
97
175k
            ++a_pos;
98
175k
            ++c_pos;
99
175k
        }
100
1.95k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
2.31k
                                          PaddedPODArray<UInt8>& c) {
90
2.31k
        size_t size = a.size();
91
2.31k
        const A* __restrict a_pos = a.data();
92
2.31k
        UInt8* __restrict c_pos = c.data();
93
2.31k
        const A* __restrict a_end = a_pos + size;
94
95
1.02M
        while (a_pos < a_end) {
96
1.02M
            *c_pos = Op::apply(*a_pos, b);
97
1.02M
            ++a_pos;
98
1.02M
            ++c_pos;
99
1.02M
        }
100
2.31k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
44
                                          PaddedPODArray<UInt8>& c) {
90
44
        size_t size = a.size();
91
44
        const A* __restrict a_pos = a.data();
92
44
        UInt8* __restrict c_pos = c.data();
93
44
        const A* __restrict a_end = a_pos + size;
94
95
100k
        while (a_pos < a_end) {
96
100k
            *c_pos = Op::apply(*a_pos, b);
97
100k
            ++a_pos;
98
100k
            ++c_pos;
99
100k
        }
100
44
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
7
                                          PaddedPODArray<UInt8>& c) {
90
7
        size_t size = a.size();
91
7
        const A* __restrict a_pos = a.data();
92
7
        UInt8* __restrict c_pos = c.data();
93
7
        const A* __restrict a_end = a_pos + size;
94
95
21
        while (a_pos < a_end) {
96
14
            *c_pos = Op::apply(*a_pos, b);
97
14
            ++a_pos;
98
14
            ++c_pos;
99
14
        }
100
7
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
4
                                          PaddedPODArray<UInt8>& c) {
90
4
        size_t size = a.size();
91
4
        const A* __restrict a_pos = a.data();
92
4
        UInt8* __restrict c_pos = c.data();
93
4
        const A* __restrict a_end = a_pos + size;
94
95
8
        while (a_pos < a_end) {
96
4
            *c_pos = Op::apply(*a_pos, b);
97
4
            ++a_pos;
98
4
            ++c_pos;
99
4
        }
100
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
544
                                          PaddedPODArray<UInt8>& c) {
90
544
        size_t size = a.size();
91
544
        const A* __restrict a_pos = a.data();
92
544
        UInt8* __restrict c_pos = c.data();
93
544
        const A* __restrict a_end = a_pos + size;
94
95
711k
        while (a_pos < a_end) {
96
710k
            *c_pos = Op::apply(*a_pos, b);
97
710k
            ++a_pos;
98
710k
            ++c_pos;
99
710k
        }
100
544
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
89
31
                                          PaddedPODArray<UInt8>& c) {
90
31
        size_t size = a.size();
91
31
        const A* __restrict a_pos = a.data();
92
31
        UInt8* __restrict c_pos = c.data();
93
31
        const A* __restrict a_end = a_pos + size;
94
95
82
        while (a_pos < a_end) {
96
51
            *c_pos = Op::apply(*a_pos, b);
97
51
            ++a_pos;
98
51
            ++c_pos;
99
51
        }
100
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE43EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
28
                                          PaddedPODArray<UInt8>& c) {
90
28
        size_t size = a.size();
91
28
        const A* __restrict a_pos = a.data();
92
28
        UInt8* __restrict c_pos = c.data();
93
28
        const A* __restrict a_end = a_pos + size;
94
95
78
        while (a_pos < a_end) {
96
50
            *c_pos = Op::apply(*a_pos, b);
97
50
            ++a_pos;
98
50
            ++c_pos;
99
50
        }
100
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
144
                                          PaddedPODArray<UInt8>& c) {
90
144
        size_t size = a.size();
91
144
        const A* __restrict a_pos = a.data();
92
144
        UInt8* __restrict c_pos = c.data();
93
144
        const A* __restrict a_end = a_pos + size;
94
95
1.74k
        while (a_pos < a_end) {
96
1.60k
            *c_pos = Op::apply(*a_pos, b);
97
1.60k
            ++a_pos;
98
1.60k
            ++c_pos;
99
1.60k
        }
100
144
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
805
                                          PaddedPODArray<UInt8>& c) {
90
805
        size_t size = a.size();
91
805
        const A* __restrict a_pos = a.data();
92
805
        UInt8* __restrict c_pos = c.data();
93
805
        const A* __restrict a_end = a_pos + size;
94
95
3.94k
        while (a_pos < a_end) {
96
3.13k
            *c_pos = Op::apply(*a_pos, b);
97
3.13k
            ++a_pos;
98
3.13k
            ++c_pos;
99
3.13k
        }
100
805
    }
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
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
28
                                          PaddedPODArray<UInt8>& c) {
90
28
        size_t size = a.size();
91
28
        const A* __restrict a_pos = a.data();
92
28
        UInt8* __restrict c_pos = c.data();
93
28
        const A* __restrict a_end = a_pos + size;
94
95
70
        while (a_pos < a_end) {
96
42
            *c_pos = Op::apply(*a_pos, b);
97
42
            ++a_pos;
98
42
            ++c_pos;
99
42
        }
100
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
89
40
                                          PaddedPODArray<UInt8>& c) {
90
40
        size_t size = a.size();
91
40
        const A* __restrict a_pos = a.data();
92
40
        UInt8* __restrict c_pos = c.data();
93
40
        const A* __restrict a_end = a_pos + size;
94
95
282
        while (a_pos < a_end) {
96
242
            *c_pos = Op::apply(*a_pos, b);
97
242
            ++a_pos;
98
242
            ++c_pos;
99
242
        }
100
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
101
102
65.5k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
65.5k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
65.5k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
210
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
210
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
210
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
228
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
62.1k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
62.1k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
62.1k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
513
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
513
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
513
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
44
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
44
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
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: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
102
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_6LessOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
228
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
119
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
119
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
119
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
75
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
75
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
75
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
46
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
46
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
46
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
102
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
221
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
221
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
221
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
12
    }
Unexecuted instantiation: _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: _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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimeStampNsValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE43EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
102
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
12
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
288
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
288
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
288
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
48
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
38
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
38
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
38
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
479
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
479
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
479
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
16
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
5
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
102
772
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
103
772
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
104
772
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _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
105
};
106
107
/// Generic version, implemented for columns of same type.
108
template <typename Op>
109
struct GenericComparisonImpl {
110
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
11
        }
114
9
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
1
        }
114
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
1
        }
114
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
3
        }
114
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
110
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
111
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
112
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
113
6
        }
114
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
115
116
132
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
132
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
450k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
450k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
450k
        }
121
132
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
8
        }
121
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
8
        }
121
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
54
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
54
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
261k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
261k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
261k
        }
121
54
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
41
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
41
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
189k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
189k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
189k
        }
121
41
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
18
        }
121
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
116
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
117
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
118
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
119
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
120
8
        }
121
8
    }
122
123
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
124
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
125
0
    }
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
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
126
};
127
128
template <typename Op>
129
struct StringComparisonImpl {
130
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
131
                                                      const ColumnString::Offsets& a_offsets,
132
                                                      const ColumnString::Chars& b_data,
133
                                                      const ColumnString::Offsets& b_offsets,
134
434
                                                      PaddedPODArray<UInt8>& c) {
135
434
        size_t size = a_offsets.size();
136
434
        ColumnString::Offset prev_a_offset = 0;
137
434
        ColumnString::Offset prev_b_offset = 0;
138
434
        const auto* a_pos = a_data.data();
139
434
        const auto* b_pos = b_data.data();
140
141
1.60k
        for (size_t i = 0; i < size; ++i) {
142
1.16k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
1.16k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
1.16k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
1.16k
                             0);
146
147
1.16k
            prev_a_offset = a_offsets[i];
148
1.16k
            prev_b_offset = b_offsets[i];
149
1.16k
        }
150
434
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
134
2
                                                      PaddedPODArray<UInt8>& c) {
135
2
        size_t size = a_offsets.size();
136
2
        ColumnString::Offset prev_a_offset = 0;
137
2
        ColumnString::Offset prev_b_offset = 0;
138
2
        const auto* a_pos = a_data.data();
139
2
        const auto* b_pos = b_data.data();
140
141
49
        for (size_t i = 0; i < size; ++i) {
142
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
47
                             0);
146
147
47
            prev_a_offset = a_offsets[i];
148
47
            prev_b_offset = b_offsets[i];
149
47
        }
150
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
134
31
                                                      PaddedPODArray<UInt8>& c) {
135
31
        size_t size = a_offsets.size();
136
31
        ColumnString::Offset prev_a_offset = 0;
137
31
        ColumnString::Offset prev_b_offset = 0;
138
31
        const auto* a_pos = a_data.data();
139
31
        const auto* b_pos = b_data.data();
140
141
218
        for (size_t i = 0; i < size; ++i) {
142
187
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
187
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
187
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
187
                             0);
146
147
187
            prev_a_offset = a_offsets[i];
148
187
            prev_b_offset = b_offsets[i];
149
187
        }
150
31
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
134
401
                                                      PaddedPODArray<UInt8>& c) {
135
401
        size_t size = a_offsets.size();
136
401
        ColumnString::Offset prev_a_offset = 0;
137
401
        ColumnString::Offset prev_b_offset = 0;
138
401
        const auto* a_pos = a_data.data();
139
401
        const auto* b_pos = b_data.data();
140
141
1.33k
        for (size_t i = 0; i < size; ++i) {
142
933
            c[i] = Op::apply(memcmp_small_allow_overflow15(
143
933
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
144
933
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
145
933
                             0);
146
147
933
            prev_a_offset = a_offsets[i];
148
933
            prev_b_offset = b_offsets[i];
149
933
        }
150
401
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
151
152
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
153
                                                 const ColumnString::Offsets& a_offsets,
154
                                                 const ColumnString::Chars& b_data,
155
                                                 ColumnString::Offset b_size,
156
713
                                                 PaddedPODArray<UInt8>& c) {
157
713
        size_t size = a_offsets.size();
158
713
        ColumnString::Offset prev_a_offset = 0;
159
713
        const auto* a_pos = a_data.data();
160
713
        const auto* b_pos = b_data.data();
161
162
1.33M
        for (size_t i = 0; i < size; ++i) {
163
1.33M
            c[i] = Op::apply(
164
1.33M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
1.33M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
1.33M
                    0);
167
168
1.33M
            prev_a_offset = a_offsets[i];
169
1.33M
        }
170
713
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
175
                                                 PaddedPODArray<UInt8>& c) {
157
175
        size_t size = a_offsets.size();
158
175
        ColumnString::Offset prev_a_offset = 0;
159
175
        const auto* a_pos = a_data.data();
160
175
        const auto* b_pos = b_data.data();
161
162
325k
        for (size_t i = 0; i < size; ++i) {
163
325k
            c[i] = Op::apply(
164
325k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
325k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
325k
                    0);
167
168
325k
            prev_a_offset = a_offsets[i];
169
325k
        }
170
175
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
94
                                                 PaddedPODArray<UInt8>& c) {
157
94
        size_t size = a_offsets.size();
158
94
        ColumnString::Offset prev_a_offset = 0;
159
94
        const auto* a_pos = a_data.data();
160
94
        const auto* b_pos = b_data.data();
161
162
72.8k
        for (size_t i = 0; i < size; ++i) {
163
72.7k
            c[i] = Op::apply(
164
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
72.7k
                    0);
167
168
72.7k
            prev_a_offset = a_offsets[i];
169
72.7k
        }
170
94
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
167
                                                 PaddedPODArray<UInt8>& c) {
157
167
        size_t size = a_offsets.size();
158
167
        ColumnString::Offset prev_a_offset = 0;
159
167
        const auto* a_pos = a_data.data();
160
167
        const auto* b_pos = b_data.data();
161
162
447k
        for (size_t i = 0; i < size; ++i) {
163
447k
            c[i] = Op::apply(
164
447k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
447k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
447k
                    0);
167
168
447k
            prev_a_offset = a_offsets[i];
169
447k
        }
170
167
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
156
277
                                                 PaddedPODArray<UInt8>& c) {
157
277
        size_t size = a_offsets.size();
158
277
        ColumnString::Offset prev_a_offset = 0;
159
277
        const auto* a_pos = a_data.data();
160
277
        const auto* b_pos = b_data.data();
161
162
492k
        for (size_t i = 0; i < size; ++i) {
163
492k
            c[i] = Op::apply(
164
492k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
165
492k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
166
492k
                    0);
167
168
492k
            prev_a_offset = a_offsets[i];
169
492k
        }
170
277
    }
171
172
    static void constant_string_vector(const ColumnString::Chars& a_data,
173
                                       ColumnString::Offset a_size,
174
                                       const ColumnString::Chars& b_data,
175
                                       const ColumnString::Offsets& b_offsets,
176
66
                                       PaddedPODArray<UInt8>& c) {
177
66
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
178
66
                                                                               a_data, a_size, c);
179
66
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
176
60
                                       PaddedPODArray<UInt8>& c) {
177
60
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
178
60
                                                                               a_data, a_size, c);
179
60
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
176
6
                                       PaddedPODArray<UInt8>& c) {
177
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
178
6
                                                                               a_data, a_size, c);
179
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
180
};
181
182
template <bool positive>
183
struct StringEqualsImpl {
184
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
185
                                                      const ColumnString::Offsets& a_offsets,
186
                                                      const ColumnString::Chars& b_data,
187
                                                      const ColumnString::Offsets& b_offsets,
188
465
                                                      PaddedPODArray<UInt8>& c) {
189
465
        size_t size = a_offsets.size();
190
465
        ColumnString::Offset prev_a_offset = 0;
191
465
        ColumnString::Offset prev_b_offset = 0;
192
465
        const auto* a_pos = a_data.data();
193
465
        const auto* b_pos = b_data.data();
194
195
10.6k
        for (size_t i = 0; i < size; ++i) {
196
10.1k
            auto a_size = a_offsets[i] - prev_a_offset;
197
10.1k
            auto b_size = b_offsets[i] - prev_b_offset;
198
199
10.1k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
200
10.1k
                                                               b_pos + prev_b_offset, b_size);
201
202
10.1k
            prev_a_offset = a_offsets[i];
203
10.1k
            prev_b_offset = b_offsets[i];
204
10.1k
        }
205
465
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
188
451
                                                      PaddedPODArray<UInt8>& c) {
189
451
        size_t size = a_offsets.size();
190
451
        ColumnString::Offset prev_a_offset = 0;
191
451
        ColumnString::Offset prev_b_offset = 0;
192
451
        const auto* a_pos = a_data.data();
193
451
        const auto* b_pos = b_data.data();
194
195
6.50k
        for (size_t i = 0; i < size; ++i) {
196
6.05k
            auto a_size = a_offsets[i] - prev_a_offset;
197
6.05k
            auto b_size = b_offsets[i] - prev_b_offset;
198
199
6.05k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
200
6.05k
                                                               b_pos + prev_b_offset, b_size);
201
202
6.05k
            prev_a_offset = a_offsets[i];
203
6.05k
            prev_b_offset = b_offsets[i];
204
6.05k
        }
205
451
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
188
14
                                                      PaddedPODArray<UInt8>& c) {
189
14
        size_t size = a_offsets.size();
190
14
        ColumnString::Offset prev_a_offset = 0;
191
14
        ColumnString::Offset prev_b_offset = 0;
192
14
        const auto* a_pos = a_data.data();
193
14
        const auto* b_pos = b_data.data();
194
195
4.13k
        for (size_t i = 0; i < size; ++i) {
196
4.11k
            auto a_size = a_offsets[i] - prev_a_offset;
197
4.11k
            auto b_size = b_offsets[i] - prev_b_offset;
198
199
4.11k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
200
4.11k
                                                               b_pos + prev_b_offset, b_size);
201
202
4.11k
            prev_a_offset = a_offsets[i];
203
4.11k
            prev_b_offset = b_offsets[i];
204
4.11k
        }
205
14
    }
206
207
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
208
                                                 const ColumnString::Offsets& a_offsets,
209
                                                 const ColumnString::Chars& b_data,
210
                                                 ColumnString::Offset b_size,
211
19.4k
                                                 PaddedPODArray<UInt8>& c) {
212
19.4k
        size_t size = a_offsets.size();
213
19.4k
        if (b_size == 0) {
214
2
            auto* __restrict data = c.data();
215
2
            auto* __restrict offsets = a_offsets.data();
216
217
2
            ColumnString::Offset prev_a_offset = 0;
218
7
            for (size_t i = 0; i < size; ++i) {
219
5
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
220
5
                prev_a_offset = offsets[i];
221
5
            }
222
19.4k
        } else {
223
19.4k
            ColumnString::Offset prev_a_offset = 0;
224
19.4k
            const auto* a_pos = a_data.data();
225
19.4k
            const auto* b_pos = b_data.data();
226
7.06M
            for (size_t i = 0; i < size; ++i) {
227
7.04M
                auto a_size = a_offsets[i] - prev_a_offset;
228
7.04M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
7.04M
                                                                   b_pos, b_size);
230
7.04M
                prev_a_offset = a_offsets[i];
231
7.04M
            }
232
19.4k
        }
233
19.4k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
211
19.3k
                                                 PaddedPODArray<UInt8>& c) {
212
19.3k
        size_t size = a_offsets.size();
213
19.3k
        if (b_size == 0) {
214
1
            auto* __restrict data = c.data();
215
1
            auto* __restrict offsets = a_offsets.data();
216
217
1
            ColumnString::Offset prev_a_offset = 0;
218
3
            for (size_t i = 0; i < size; ++i) {
219
2
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
220
2
                prev_a_offset = offsets[i];
221
2
            }
222
19.3k
        } else {
223
19.3k
            ColumnString::Offset prev_a_offset = 0;
224
19.3k
            const auto* a_pos = a_data.data();
225
19.3k
            const auto* b_pos = b_data.data();
226
7.01M
            for (size_t i = 0; i < size; ++i) {
227
6.99M
                auto a_size = a_offsets[i] - prev_a_offset;
228
6.99M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
6.99M
                                                                   b_pos, b_size);
230
6.99M
                prev_a_offset = a_offsets[i];
231
6.99M
            }
232
19.3k
        }
233
19.3k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
211
145
                                                 PaddedPODArray<UInt8>& c) {
212
145
        size_t size = a_offsets.size();
213
145
        if (b_size == 0) {
214
1
            auto* __restrict data = c.data();
215
1
            auto* __restrict offsets = a_offsets.data();
216
217
1
            ColumnString::Offset prev_a_offset = 0;
218
4
            for (size_t i = 0; i < size; ++i) {
219
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
220
3
                prev_a_offset = offsets[i];
221
3
            }
222
144
        } else {
223
144
            ColumnString::Offset prev_a_offset = 0;
224
144
            const auto* a_pos = a_data.data();
225
144
            const auto* b_pos = b_data.data();
226
44.3k
            for (size_t i = 0; i < size; ++i) {
227
44.2k
                auto a_size = a_offsets[i] - prev_a_offset;
228
44.2k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
229
44.2k
                                                                   b_pos, b_size);
230
44.2k
                prev_a_offset = a_offsets[i];
231
44.2k
            }
232
144
        }
233
145
    }
234
235
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
236
                                                 ColumnString::Offset a_size,
237
                                                 const ColumnString::Chars& b_data,
238
                                                 const ColumnString::Offsets& b_offsets,
239
11
                                                 PaddedPODArray<UInt8>& c) {
240
11
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
241
11
    }
_ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Line
Count
Source
239
11
                                                 PaddedPODArray<UInt8>& c) {
240
11
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
241
11
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
242
};
243
244
template <PrimitiveType PT>
245
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
246
247
template <PrimitiveType PT>
248
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
249
250
struct NameEquals {
251
    static constexpr auto name = "eq";
252
};
253
struct NameNotEquals {
254
    static constexpr auto name = "ne";
255
};
256
struct NameLess {
257
    static constexpr auto name = "lt";
258
};
259
struct NameGreater {
260
    static constexpr auto name = "gt";
261
};
262
struct NameLessOrEquals {
263
    static constexpr auto name = "le";
264
};
265
struct NameGreaterOrEquals {
266
    static constexpr auto name = "ge";
267
};
268
269
namespace comparison_zonemap_detail {
270
enum class Op {
271
    EQ,
272
    NE,
273
    LT,
274
    LE,
275
    GT,
276
    GE,
277
};
278
279
19
inline Op symmetric_op(Op op) {
280
19
    switch (op) {
281
0
    case Op::EQ:
282
0
    case Op::NE:
283
0
        return op;
284
11
    case Op::LT:
285
11
        return Op::GT;
286
6
    case Op::LE:
287
6
        return Op::GE;
288
0
    case Op::GT:
289
0
        return Op::LT;
290
2
    case Op::GE:
291
2
        return Op::LE;
292
19
    }
293
0
    __builtin_unreachable();
294
19
}
295
296
// Return true when `L <op> R` cannot be TRUE for any row, given that every non-null value of the
297
// left operand lies in [lmin, lmax] and every non-null value of the right operand lies in
298
// [rmin, rmax]. This only compares the four bounds: callers must already have rejected zone maps
299
// whose bounds are unusable and columns that hold no non-null value at all.
300
//
301
// The slot-vs-literal path passes the literal as the degenerate range [literal, literal], which
302
// reduces every branch below to the plain slot-vs-literal test it replaced.
303
inline bool range_vs_range_no_match(const Field& lmin, const Field& lmax, const Field& rmin,
304
3.33k
                                    const Field& rmax, Op op) {
305
3.33k
    switch (op) {
306
1.85k
    case Op::EQ:
307
        // Disjoint ranges cannot share a value.
308
1.85k
        return lmin > rmax || rmin > lmax;
309
146
    case Op::NE:
310
        // Only provable when both sides collapse to the same single value.
311
146
        return lmin == lmax && rmin == rmax && lmin == rmin;
312
424
    case Op::LT:
313
424
        return lmin >= rmax;
314
212
    case Op::LE:
315
212
        return lmin > rmax;
316
437
    case Op::GT:
317
437
        return rmin >= lmax;
318
252
    case Op::GE:
319
252
        return rmin > lmax;
320
3.33k
    }
321
0
    __builtin_unreachable();
322
3.33k
}
323
324
inline ZoneMapFilterResult evaluate_slot_literal(const ZoneMapEvalContext& ctx,
325
                                                 const expr_zonemap::SlotLiteral& slot_literal,
326
2.81k
                                                 Op op) {
327
2.81k
    auto slot_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_literal.slot_index,
328
2.81k
                                                              slot_literal.slot_type);
329
2.81k
    if (slot_type == nullptr) {
330
1
        return unsupported_zonemap_filter(ctx);
331
1
    }
332
2.81k
    auto zone_map_ptr = ctx.zone_map(slot_literal.slot_index);
333
2.81k
    if (zone_map_ptr == nullptr) {
334
46
        return unsupported_zonemap_filter(ctx);
335
46
    }
336
2.77k
    const auto& zone_map = *zone_map_ptr;
337
2.77k
    if (!zone_map.has_not_null) {
338
56
        return ZoneMapFilterResult::kNoMatch;
339
56
    }
340
2.71k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, slot_type)) {
341
110
        return unsupported_zonemap_filter(ctx);
342
110
    }
343
344
2.60k
    const auto effective_op = slot_literal.literal_on_left ? symmetric_op(op) : op;
345
2.60k
    const auto& literal = slot_literal.literal;
346
2.60k
    const bool literal_is_nan = literal.is_nan();
347
2.60k
    const bool hidden_nan_can_match = (effective_op == Op::EQ && literal_is_nan) ||
348
2.60k
                                      (effective_op == Op::NE && !literal_is_nan) ||
349
2.60k
                                      (effective_op == Op::GT && !literal_is_nan) ||
350
2.60k
                                      effective_op == Op::GE;
351
2.60k
    if (ctx.floating_nan_count_unknown(slot_literal.slot_index) && hidden_nan_can_match) {
352
        // Parquet bounds omit NaNs, so only operators that cannot match a hidden NaN may prune.
353
52
        return unsupported_zonemap_filter(ctx);
354
52
    }
355
2.55k
    return range_vs_range_no_match(zone_map.min_value, zone_map.max_value, literal, literal,
356
2.55k
                                   effective_op)
357
2.55k
                   ? ZoneMapFilterResult::kNoMatch
358
2.55k
                   : ZoneMapFilterResult::kMayMatch;
359
2.60k
}
360
361
inline ZoneMapFilterResult evaluate_slot_slot(const ZoneMapEvalContext& ctx,
362
871
                                              const expr_zonemap::SlotSlot& slot_slot, Op op) {
363
871
    const auto left_type = expr_zonemap::fetch_compatible_slot_type(ctx, slot_slot.left_slot_index,
364
871
                                                                    slot_slot.left_type);
365
871
    const auto right_type = expr_zonemap::fetch_compatible_slot_type(
366
871
            ctx, slot_slot.right_slot_index, slot_slot.right_type);
367
871
    if (left_type == nullptr || right_type == nullptr) {
368
        // The context skips a slot entirely when the segment cannot apply predicates on it.
369
1
        return unsupported_zonemap_filter(ctx);
370
1
    }
371
870
    const auto left_zone_map = ctx.zone_map(slot_slot.left_slot_index);
372
870
    const auto right_zone_map = ctx.zone_map(slot_slot.right_slot_index);
373
870
    if (left_zone_map == nullptr || right_zone_map == nullptr) {
374
        // A slot can be present with a data type but no zone map, so this is a separate check.
375
53
        return unsupported_zonemap_filter(ctx);
376
53
    }
377
    // A column holding no non-null value makes the comparison NULL on every row, which never
378
    // satisfies a WHERE conjunct. This must run before the range checks below: an all-null zone map
379
    // leaves min/max default-constructed as TYPE_NULL, which the range checks would fatal on.
380
817
    if (!left_zone_map->has_not_null || !right_zone_map->has_not_null) {
381
23
        return ZoneMapFilterResult::kNoMatch;
382
23
    }
383
794
    if (!expr_zonemap::range_stats_usable_for_zonemap(*left_zone_map, left_type) ||
384
794
        !expr_zonemap::range_stats_usable_for_zonemap(*right_zone_map, right_type)) {
385
5
        return unsupported_zonemap_filter(ctx);
386
5
    }
387
    // Parquet bounds omit NaN without recording how many were skipped, so a zone map that looks
388
    // like a single point may still hide one, which would flip the NE rule from false to true. The
389
    // slot-vs-literal path can reason per operator because it knows whether the literal is NaN;
390
    // with two slots there is no literal, so bail out for every operator instead.
391
789
    if (ctx.floating_nan_count_unknown(slot_slot.left_slot_index) ||
392
789
        ctx.floating_nan_count_unknown(slot_slot.right_slot_index)) {
393
12
        return unsupported_zonemap_filter(ctx);
394
12
    }
395
777
    return range_vs_range_no_match(left_zone_map->min_value, left_zone_map->max_value,
396
777
                                   right_zone_map->min_value, right_zone_map->max_value, op)
397
777
                   ? ZoneMapFilterResult::kNoMatch
398
777
                   : ZoneMapFilterResult::kMayMatch;
399
789
}
400
401
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
402
3.68k
                                    Op op) {
403
3.68k
    if (auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
404
3.68k
        slot_literal.has_value()) {
405
2.82k
        return evaluate_slot_literal(ctx, *slot_literal, op);
406
2.82k
    }
407
860
    auto slot_slot = expr_zonemap::extract_slot_and_slot(arguments);
408
    // can_evaluate_zonemap_filter accepts exactly the two shapes handled above, so reaching this
409
    // point means the capability gate and this evaluator went out of sync.
410
860
    DORIS_CHECK(slot_slot.has_value());
411
860
    return evaluate_slot_slot(ctx, *slot_slot, op);
412
3.68k
}
413
414
30.4k
inline bool can_evaluate(const VExprSPtrs& arguments) {
415
30.4k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
416
30.4k
    if (!slot_literal.has_value()) {
417
19.4k
        return false;
418
19.4k
    }
419
420
    // A NULL literal makes the comparison evaluate to NULL instead of a byte range predicate on
421
    // the slot. This zonemap evaluator only derives bounds from non-NULL literals, so reject this
422
    // shape here before evaluate_zonemap_filter is called.
423
10.9k
    if (slot_literal->literal.is_null()) {
424
4
        return false;
425
4
    }
426
427
10.9k
    DORIS_CHECK(slot_literal->slot_type != nullptr);
428
10.9k
    DORIS_CHECK(slot_literal->literal_type != nullptr);
429
10.9k
    if (!expr_zonemap::data_types_compatible(slot_literal->slot_type, slot_literal->literal_type)) {
430
        // The optimizer may generate a bare slot/literal comparison whose logical types differ
431
        // only by attributes such as DATETIMEV2 scale. Expr zonemap evaluates stored Field
432
        // values without running expression casts, so conservatively skip this optimization.
433
1
        return false;
434
1
    }
435
436
10.9k
    return true;
437
10.9k
}
438
439
// Accept a comparison whose both operands are slot references. Kept separate from can_evaluate on
440
// purpose: can_evaluate also gates dictionary filtering and can_evaluate_equality, and both of
441
// those dereference extract_slot_and_literal behind a DORIS_CHECK, so widening it would abort on a
442
// slot-vs-slot expression. Only can_evaluate_zonemap_filter ORs this in.
443
19.3k
inline bool can_evaluate_slot_slot(const VExprSPtrs& arguments) {
444
19.3k
    auto slot_slot = expr_zonemap::extract_slot_and_slot(arguments);
445
19.3k
    if (!slot_slot.has_value()) {
446
16.9k
        return false;
447
16.9k
    }
448
2.38k
    DORIS_CHECK(slot_slot->left_type != nullptr);
449
2.38k
    DORIS_CHECK(slot_slot->right_type != nullptr);
450
    // The two zone maps' Fields are compared directly and Field comparison throws on mismatched
451
    // non-string types, so reject incompatible column pairs here. A pair differing only by width or
452
    // decimal scale never reaches this point anyway, because the optimizer inserts a cast and a
453
    // cast is not a VSlotRef.
454
2.38k
    return expr_zonemap::data_types_compatible(slot_slot->left_type, slot_slot->right_type);
455
19.3k
}
456
457
0
inline bool can_evaluate_equality(const VExprSPtrs& arguments, Op op) {
458
0
    if (op != Op::EQ || !can_evaluate(arguments)) {
459
0
        return false;
460
0
    }
461
0
    const auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
462
0
    DORIS_CHECK(slot_literal.has_value());
463
0
    // Bloom membership cannot disprove Doris NaN equality across different physical encodings.
464
0
    return !slot_literal->literal.is_nan();
465
0
}
466
467
27
inline bool dictionary_value_matches(const Field& value, const Field& literal, Op op) {
468
27
    switch (op) {
469
8
    case Op::EQ:
470
8
        return value == literal;
471
0
    case Op::NE:
472
0
        return value != literal;
473
5
    case Op::LT:
474
5
        return value < literal;
475
0
    case Op::LE:
476
0
        return value <= literal;
477
14
    case Op::GT:
478
14
        return value > literal;
479
0
    case Op::GE:
480
0
        return value >= literal;
481
27
    }
482
0
    __builtin_unreachable();
483
27
}
484
485
inline ZoneMapFilterResult evaluate_dictionary(const DictionaryEvalContext& ctx,
486
14
                                               const VExprSPtrs& arguments, Op op) {
487
14
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
488
14
    DORIS_CHECK(slot_literal.has_value());
489
14
    const auto* dictionary = ctx.slot(slot_literal->slot_index);
490
14
    if (dictionary == nullptr || dictionary->data_type == nullptr) {
491
0
        return ZoneMapFilterResult::kUnsupported;
492
0
    }
493
14
    DORIS_CHECK(
494
14
            expr_zonemap::data_types_compatible(dictionary->data_type, slot_literal->slot_type));
495
14
    if (slot_literal->literal.is_null()) {
496
0
        return ZoneMapFilterResult::kUnsupported;
497
0
    }
498
14
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
499
    // Compare typed Fields so dictionary filtering preserves the regular expression semantics for
500
    // strings, dates, decimals, floating-point edge cases, and every other supported logical type.
501
14
    return std::ranges::any_of(dictionary->values,
502
27
                               [&](const Field& value) {
503
27
                                   return dictionary_value_matches(value, slot_literal->literal,
504
27
                                                                   effective_op);
505
27
                               })
506
14
                   ? ZoneMapFilterResult::kMayMatch
507
14
                   : ZoneMapFilterResult::kNoMatch;
508
14
}
509
510
inline ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
511
19
                                                 const VExprSPtrs& arguments, Op op) {
512
19
    DORIS_CHECK(op == Op::EQ);
513
19
    auto slot_literal = expr_zonemap::extract_bloom_filter_slot_and_literal(arguments);
514
19
    DORIS_CHECK(slot_literal.has_value());
515
19
    return expr_zonemap::eval_eq_bloom_filter(ctx, *slot_literal);
516
19
}
517
518
34.2k
inline std::optional<Op> op_from_name(std::string_view name) {
519
34.2k
    if (name == NameEquals::name) {
520
16.2k
        return Op::EQ;
521
16.2k
    }
522
18.0k
    if (name == NameNotEquals::name) {
523
1.83k
        return Op::NE;
524
1.83k
    }
525
16.1k
    if (name == NameLess::name) {
526
4.07k
        return Op::LT;
527
4.07k
    }
528
12.1k
    if (name == NameLessOrEquals::name) {
529
1.87k
        return Op::LE;
530
1.87k
    }
531
10.2k
    if (name == NameGreater::name) {
532
6.60k
        return Op::GT;
533
6.60k
    }
534
3.75k
    if (name == NameGreaterOrEquals::name) {
535
3.75k
        return Op::GE;
536
3.75k
    }
537
18.4E
    return std::nullopt;
538
3.64k
}
539
} // namespace comparison_zonemap_detail
540
541
template <template <PrimitiveType> class Op, typename Name>
542
class FunctionComparison : public IFunction {
543
public:
544
    static constexpr auto name = Name::name;
545
288k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
545
5.72k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
545
8.24k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
545
3.29k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
545
10.2k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
545
260k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
545
1.21k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
546
547
289k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
547
5.72k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
547
8.24k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
547
3.30k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
547
10.2k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
547
260k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
547
1.22k
    FunctionComparison() = default;
548
549
674k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
549
1.97k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
549
2.46k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
549
1.19k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
549
1.42k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
549
666k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
549
609
    double execute_cost() const override { return 0.5; }
550
551
private:
552
    template <PrimitiveType PT>
553
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
554
109k
                            const ColumnPtr& col_right_ptr) const {
555
109k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
109k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
109k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
109k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
109k
        DCHECK(!(left_is_const && right_is_const));
562
563
109k
        if (!left_is_const && !right_is_const) {
564
9.38k
            auto col_res = ColumnUInt8::create();
565
566
9.38k
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
9.38k
            vec_res.resize(col_left->get_data().size());
568
9.38k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
9.38k
                              typename PrimitiveTypeTraits<PT>::CppType,
570
9.38k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
9.38k
                                                     vec_res);
572
573
9.38k
            block.replace_by_position(result, std::move(col_res));
574
100k
        } else if (!left_is_const && right_is_const) {
575
34.5k
            auto col_res = ColumnUInt8::create();
576
577
34.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
34.5k
            vec_res.resize(col_left->size());
579
34.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
34.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
34.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
34.5k
                                                       col_right->get_element(0), vec_res);
583
584
34.5k
            block.replace_by_position(result, std::move(col_res));
585
65.5k
        } else if (left_is_const && !right_is_const) {
586
65.5k
            auto col_res = ColumnUInt8::create();
587
588
65.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
65.5k
            vec_res.resize(col_right->size());
590
65.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
65.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
592
65.5k
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
65.5k
                                                       col_right->get_data(), vec_res);
594
595
65.5k
            block.replace_by_position(result, std::move(col_res));
596
65.5k
        }
597
109k
        return Status::OK();
598
109k
    }
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
554
1.25k
                            const ColumnPtr& col_right_ptr) const {
555
1.25k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1.25k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1.25k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1.25k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1.25k
        DCHECK(!(left_is_const && right_is_const));
562
563
1.25k
        if (!left_is_const && !right_is_const) {
564
1.21k
            auto col_res = ColumnUInt8::create();
565
566
1.21k
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1.21k
            vec_res.resize(col_left->get_data().size());
568
1.21k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1.21k
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1.21k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1.21k
                                                     vec_res);
572
573
1.21k
            block.replace_by_position(result, std::move(col_res));
574
1.21k
        } else if (!left_is_const && right_is_const) {
575
41
            auto col_res = ColumnUInt8::create();
576
577
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
41
            vec_res.resize(col_left->size());
579
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
41
                              typename PrimitiveTypeTraits<PT>::CppType,
581
41
                              Op<PT>>::vector_constant(col_left->get_data(),
582
41
                                                       col_right->get_element(0), vec_res);
583
584
41
            block.replace_by_position(result, std::move(col_res));
585
41
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
1.25k
        return Status::OK();
598
1.25k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
2
                            const ColumnPtr& col_right_ptr) const {
555
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
2
        DCHECK(!(left_is_const && right_is_const));
562
563
2
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
2
        } else if (!left_is_const && right_is_const) {
575
2
            auto col_res = ColumnUInt8::create();
576
577
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
2
            vec_res.resize(col_left->size());
579
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
2
                              typename PrimitiveTypeTraits<PT>::CppType,
581
2
                              Op<PT>>::vector_constant(col_left->get_data(),
582
2
                                                       col_right->get_element(0), vec_res);
583
584
2
            block.replace_by_position(result, std::move(col_res));
585
2
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
2
        return Status::OK();
598
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
63
                            const ColumnPtr& col_right_ptr) const {
555
63
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
63
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
63
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
63
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
63
        DCHECK(!(left_is_const && right_is_const));
562
563
63
        if (!left_is_const && !right_is_const) {
564
29
            auto col_res = ColumnUInt8::create();
565
566
29
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
29
            vec_res.resize(col_left->get_data().size());
568
29
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
29
                              typename PrimitiveTypeTraits<PT>::CppType,
570
29
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
29
                                                     vec_res);
572
573
29
            block.replace_by_position(result, std::move(col_res));
574
34
        } else if (!left_is_const && right_is_const) {
575
34
            auto col_res = ColumnUInt8::create();
576
577
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
34
            vec_res.resize(col_left->size());
579
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
34
                              typename PrimitiveTypeTraits<PT>::CppType,
581
34
                              Op<PT>>::vector_constant(col_left->get_data(),
582
34
                                                       col_right->get_element(0), vec_res);
583
584
34
            block.replace_by_position(result, std::move(col_res));
585
34
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
63
        return Status::OK();
598
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1
                            const ColumnPtr& col_right_ptr) const {
555
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1
        DCHECK(!(left_is_const && right_is_const));
562
563
1
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
1
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
1
        return Status::OK();
598
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1.29k
                            const ColumnPtr& col_right_ptr) const {
555
1.29k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1.29k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1.29k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1.29k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1.29k
        DCHECK(!(left_is_const && right_is_const));
562
563
1.29k
        if (!left_is_const && !right_is_const) {
564
78
            auto col_res = ColumnUInt8::create();
565
566
78
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
78
            vec_res.resize(col_left->get_data().size());
568
78
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
78
                              typename PrimitiveTypeTraits<PT>::CppType,
570
78
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
78
                                                     vec_res);
572
573
78
            block.replace_by_position(result, std::move(col_res));
574
1.21k
        } else if (!left_is_const && right_is_const) {
575
1.00k
            auto col_res = ColumnUInt8::create();
576
577
1.00k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
1.00k
            vec_res.resize(col_left->size());
579
1.00k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
1.00k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
1.00k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
1.00k
                                                       col_right->get_element(0), vec_res);
583
584
1.00k
            block.replace_by_position(result, std::move(col_res));
585
1.00k
        } else if (left_is_const && !right_is_const) {
586
210
            auto col_res = ColumnUInt8::create();
587
588
210
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
210
            vec_res.resize(col_right->size());
590
210
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
210
                              typename PrimitiveTypeTraits<PT>::CppType,
592
210
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
210
                                                       col_right->get_data(), vec_res);
594
595
210
            block.replace_by_position(result, std::move(col_res));
596
210
        }
597
1.29k
        return Status::OK();
598
1.29k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1.80k
                            const ColumnPtr& col_right_ptr) const {
555
1.80k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1.80k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1.80k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1.80k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1.80k
        DCHECK(!(left_is_const && right_is_const));
562
563
1.80k
        if (!left_is_const && !right_is_const) {
564
126
            auto col_res = ColumnUInt8::create();
565
566
126
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
126
            vec_res.resize(col_left->get_data().size());
568
126
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
126
                              typename PrimitiveTypeTraits<PT>::CppType,
570
126
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
126
                                                     vec_res);
572
573
126
            block.replace_by_position(result, std::move(col_res));
574
1.67k
        } else if (!left_is_const && right_is_const) {
575
1.44k
            auto col_res = ColumnUInt8::create();
576
577
1.44k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
1.44k
            vec_res.resize(col_left->size());
579
1.44k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
1.44k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
1.44k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
1.44k
                                                       col_right->get_element(0), vec_res);
583
584
1.44k
            block.replace_by_position(result, std::move(col_res));
585
1.44k
        } else if (left_is_const && !right_is_const) {
586
228
            auto col_res = ColumnUInt8::create();
587
588
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
228
            vec_res.resize(col_right->size());
590
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
228
                              typename PrimitiveTypeTraits<PT>::CppType,
592
228
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
228
                                                       col_right->get_data(), vec_res);
594
595
228
            block.replace_by_position(result, std::move(col_res));
596
228
        }
597
1.80k
        return Status::OK();
598
1.80k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
66.9k
                            const ColumnPtr& col_right_ptr) const {
555
66.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
66.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
66.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
66.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
66.9k
        DCHECK(!(left_is_const && right_is_const));
562
563
66.9k
        if (!left_is_const && !right_is_const) {
564
55
            auto col_res = ColumnUInt8::create();
565
566
55
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
55
            vec_res.resize(col_left->get_data().size());
568
55
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
55
                              typename PrimitiveTypeTraits<PT>::CppType,
570
55
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
55
                                                     vec_res);
572
573
55
            block.replace_by_position(result, std::move(col_res));
574
66.9k
        } else if (!left_is_const && right_is_const) {
575
4.73k
            auto col_res = ColumnUInt8::create();
576
577
4.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
4.73k
            vec_res.resize(col_left->size());
579
4.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
4.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
4.73k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
4.73k
                                                       col_right->get_element(0), vec_res);
583
584
4.73k
            block.replace_by_position(result, std::move(col_res));
585
62.1k
        } else if (left_is_const && !right_is_const) {
586
62.1k
            auto col_res = ColumnUInt8::create();
587
588
62.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
62.1k
            vec_res.resize(col_right->size());
590
62.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
62.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
592
62.1k
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
62.1k
                                                       col_right->get_data(), vec_res);
594
595
62.1k
            block.replace_by_position(result, std::move(col_res));
596
62.1k
        }
597
66.9k
        return Status::OK();
598
66.9k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
2.35k
                            const ColumnPtr& col_right_ptr) const {
555
2.35k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
2.35k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
2.35k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
2.35k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
2.35k
        DCHECK(!(left_is_const && right_is_const));
562
563
2.35k
        if (!left_is_const && !right_is_const) {
564
56
            auto col_res = ColumnUInt8::create();
565
566
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
56
            vec_res.resize(col_left->get_data().size());
568
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
56
                              typename PrimitiveTypeTraits<PT>::CppType,
570
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
56
                                                     vec_res);
572
573
56
            block.replace_by_position(result, std::move(col_res));
574
2.29k
        } else if (!left_is_const && right_is_const) {
575
1.77k
            auto col_res = ColumnUInt8::create();
576
577
1.77k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
1.77k
            vec_res.resize(col_left->size());
579
1.77k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
1.77k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
1.77k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
1.77k
                                                       col_right->get_element(0), vec_res);
583
584
1.77k
            block.replace_by_position(result, std::move(col_res));
585
1.77k
        } else if (left_is_const && !right_is_const) {
586
513
            auto col_res = ColumnUInt8::create();
587
588
513
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
513
            vec_res.resize(col_right->size());
590
513
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
513
                              typename PrimitiveTypeTraits<PT>::CppType,
592
513
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
513
                                                       col_right->get_data(), vec_res);
594
595
513
            block.replace_by_position(result, std::move(col_res));
596
513
        }
597
2.35k
        return Status::OK();
598
2.35k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
247
                            const ColumnPtr& col_right_ptr) const {
555
247
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
247
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
247
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
247
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
247
        DCHECK(!(left_is_const && right_is_const));
562
563
247
        if (!left_is_const && !right_is_const) {
564
2
            auto col_res = ColumnUInt8::create();
565
566
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
2
            vec_res.resize(col_left->get_data().size());
568
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
2
                              typename PrimitiveTypeTraits<PT>::CppType,
570
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
2
                                                     vec_res);
572
573
2
            block.replace_by_position(result, std::move(col_res));
574
245
        } else if (!left_is_const && right_is_const) {
575
201
            auto col_res = ColumnUInt8::create();
576
577
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
201
            vec_res.resize(col_left->size());
579
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
201
                              typename PrimitiveTypeTraits<PT>::CppType,
581
201
                              Op<PT>>::vector_constant(col_left->get_data(),
582
201
                                                       col_right->get_element(0), vec_res);
583
584
201
            block.replace_by_position(result, std::move(col_res));
585
201
        } else if (left_is_const && !right_is_const) {
586
44
            auto col_res = ColumnUInt8::create();
587
588
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
44
            vec_res.resize(col_right->size());
590
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
44
                              typename PrimitiveTypeTraits<PT>::CppType,
592
44
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
44
                                                       col_right->get_data(), vec_res);
594
595
44
            block.replace_by_position(result, std::move(col_res));
596
44
        }
597
247
        return Status::OK();
598
247
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
4
                            const ColumnPtr& col_right_ptr) const {
555
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
4
        DCHECK(!(left_is_const && right_is_const));
562
563
4
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
3
        } else if (!left_is_const && right_is_const) {
575
3
            auto col_res = ColumnUInt8::create();
576
577
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
3
            vec_res.resize(col_left->size());
579
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
3
                              typename PrimitiveTypeTraits<PT>::CppType,
581
3
                              Op<PT>>::vector_constant(col_left->get_data(),
582
3
                                                       col_right->get_element(0), vec_res);
583
584
3
            block.replace_by_position(result, std::move(col_res));
585
3
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
4
        return Status::OK();
598
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1
                            const ColumnPtr& col_right_ptr) const {
555
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1
        DCHECK(!(left_is_const && right_is_const));
562
563
1
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
1
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
1
        return Status::OK();
598
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
219
                            const ColumnPtr& col_right_ptr) const {
555
219
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
219
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
219
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
219
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
219
        DCHECK(!(left_is_const && right_is_const));
562
563
220
        if (!left_is_const && !right_is_const) {
564
20
            auto col_res = ColumnUInt8::create();
565
566
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
20
            vec_res.resize(col_left->get_data().size());
568
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
20
                              typename PrimitiveTypeTraits<PT>::CppType,
570
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
20
                                                     vec_res);
572
573
20
            block.replace_by_position(result, std::move(col_res));
574
200
        } else if (!left_is_const && right_is_const) {
575
200
            auto col_res = ColumnUInt8::create();
576
577
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
200
            vec_res.resize(col_left->size());
579
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
200
                              typename PrimitiveTypeTraits<PT>::CppType,
581
200
                              Op<PT>>::vector_constant(col_left->get_data(),
582
200
                                                       col_right->get_element(0), vec_res);
583
584
200
            block.replace_by_position(result, std::move(col_res));
585
18.4E
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
219
        return Status::OK();
598
219
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
525
                            const ColumnPtr& col_right_ptr) const {
555
525
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
525
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
525
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
525
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
525
        DCHECK(!(left_is_const && right_is_const));
562
563
526
        if (!left_is_const && !right_is_const) {
564
28
            auto col_res = ColumnUInt8::create();
565
566
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
28
            vec_res.resize(col_left->get_data().size());
568
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
28
                              typename PrimitiveTypeTraits<PT>::CppType,
570
28
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
28
                                                     vec_res);
572
573
28
            block.replace_by_position(result, std::move(col_res));
574
498
        } else if (!left_is_const && right_is_const) {
575
498
            auto col_res = ColumnUInt8::create();
576
577
498
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
498
            vec_res.resize(col_left->size());
579
498
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
498
                              typename PrimitiveTypeTraits<PT>::CppType,
581
498
                              Op<PT>>::vector_constant(col_left->get_data(),
582
498
                                                       col_right->get_element(0), vec_res);
583
584
498
            block.replace_by_position(result, std::move(col_res));
585
18.4E
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
525
        return Status::OK();
598
525
    }
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
554
24
                            const ColumnPtr& col_right_ptr) const {
555
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
24
        DCHECK(!(left_is_const && right_is_const));
562
563
24
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
24
        } else if (!left_is_const && right_is_const) {
575
24
            auto col_res = ColumnUInt8::create();
576
577
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
24
            vec_res.resize(col_left->size());
579
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
24
                              typename PrimitiveTypeTraits<PT>::CppType,
581
24
                              Op<PT>>::vector_constant(col_left->get_data(),
582
24
                                                       col_right->get_element(0), vec_res);
583
584
24
            block.replace_by_position(result, std::move(col_res));
585
24
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
24
        return Status::OK();
598
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
491
                            const ColumnPtr& col_right_ptr) const {
555
491
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
491
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
491
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
491
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
491
        DCHECK(!(left_is_const && right_is_const));
562
563
491
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
490
        } else if (!left_is_const && right_is_const) {
575
484
            auto col_res = ColumnUInt8::create();
576
577
484
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
484
            vec_res.resize(col_left->size());
579
484
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
484
                              typename PrimitiveTypeTraits<PT>::CppType,
581
484
                              Op<PT>>::vector_constant(col_left->get_data(),
582
484
                                                       col_right->get_element(0), vec_res);
583
584
484
            block.replace_by_position(result, std::move(col_res));
585
484
        } else if (left_is_const && !right_is_const) {
586
6
            auto col_res = ColumnUInt8::create();
587
588
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
6
            vec_res.resize(col_right->size());
590
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
6
                              typename PrimitiveTypeTraits<PT>::CppType,
592
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
6
                                                       col_right->get_data(), vec_res);
594
595
6
            block.replace_by_position(result, std::move(col_res));
596
6
        }
597
491
        return Status::OK();
598
491
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
118
                            const ColumnPtr& col_right_ptr) const {
555
118
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
118
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
118
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
118
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
118
        DCHECK(!(left_is_const && right_is_const));
562
563
118
        if (!left_is_const && !right_is_const) {
564
6
            auto col_res = ColumnUInt8::create();
565
566
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
6
            vec_res.resize(col_left->get_data().size());
568
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
6
                              typename PrimitiveTypeTraits<PT>::CppType,
570
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
6
                                                     vec_res);
572
573
6
            block.replace_by_position(result, std::move(col_res));
574
112
        } else if (!left_is_const && right_is_const) {
575
112
            auto col_res = ColumnUInt8::create();
576
577
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
112
            vec_res.resize(col_left->size());
579
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
112
                              typename PrimitiveTypeTraits<PT>::CppType,
581
112
                              Op<PT>>::vector_constant(col_left->get_data(),
582
112
                                                       col_right->get_element(0), vec_res);
583
584
112
            block.replace_by_position(result, std::move(col_res));
585
112
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
118
        return Status::OK();
598
118
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
404
                            const ColumnPtr& col_right_ptr) const {
555
404
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
404
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
404
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
404
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
404
        DCHECK(!(left_is_const && right_is_const));
562
563
404
        if (!left_is_const && !right_is_const) {
564
359
            auto col_res = ColumnUInt8::create();
565
566
359
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
359
            vec_res.resize(col_left->get_data().size());
568
359
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
359
                              typename PrimitiveTypeTraits<PT>::CppType,
570
359
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
359
                                                     vec_res);
572
573
359
            block.replace_by_position(result, std::move(col_res));
574
359
        } else if (!left_is_const && right_is_const) {
575
45
            auto col_res = ColumnUInt8::create();
576
577
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
45
            vec_res.resize(col_left->size());
579
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
45
                              typename PrimitiveTypeTraits<PT>::CppType,
581
45
                              Op<PT>>::vector_constant(col_left->get_data(),
582
45
                                                       col_right->get_element(0), vec_res);
583
584
45
            block.replace_by_position(result, std::move(col_res));
585
45
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
404
        return Status::OK();
598
404
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1
                            const ColumnPtr& col_right_ptr) const {
555
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1
        DCHECK(!(left_is_const && right_is_const));
562
563
1
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
1
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
1
        return Status::OK();
598
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
70
                            const ColumnPtr& col_right_ptr) const {
555
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
70
        DCHECK(!(left_is_const && right_is_const));
562
563
70
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
70
        } else if (!left_is_const && right_is_const) {
575
70
            auto col_res = ColumnUInt8::create();
576
577
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
70
            vec_res.resize(col_left->size());
579
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
70
                              typename PrimitiveTypeTraits<PT>::CppType,
581
70
                              Op<PT>>::vector_constant(col_left->get_data(),
582
70
                                                       col_right->get_element(0), vec_res);
583
584
70
            block.replace_by_position(result, std::move(col_res));
585
70
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
70
        return Status::OK();
598
70
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
92
                            const ColumnPtr& col_right_ptr) const {
555
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
92
        DCHECK(!(left_is_const && right_is_const));
562
563
92
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
92
        } else if (!left_is_const && right_is_const) {
575
92
            auto col_res = ColumnUInt8::create();
576
577
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
92
            vec_res.resize(col_left->size());
579
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
92
                              typename PrimitiveTypeTraits<PT>::CppType,
581
92
                              Op<PT>>::vector_constant(col_left->get_data(),
582
92
                                                       col_right->get_element(0), vec_res);
583
584
92
            block.replace_by_position(result, std::move(col_res));
585
92
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
92
        return Status::OK();
598
92
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
684
                            const ColumnPtr& col_right_ptr) const {
555
684
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
684
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
684
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
684
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
684
        DCHECK(!(left_is_const && right_is_const));
562
563
684
        if (!left_is_const && !right_is_const) {
564
12
            auto col_res = ColumnUInt8::create();
565
566
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
12
            vec_res.resize(col_left->get_data().size());
568
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
12
                              typename PrimitiveTypeTraits<PT>::CppType,
570
12
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
12
                                                     vec_res);
572
573
12
            block.replace_by_position(result, std::move(col_res));
574
672
        } else if (!left_is_const && right_is_const) {
575
672
            auto col_res = ColumnUInt8::create();
576
577
672
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
672
            vec_res.resize(col_left->size());
579
672
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
672
                              typename PrimitiveTypeTraits<PT>::CppType,
581
672
                              Op<PT>>::vector_constant(col_left->get_data(),
582
672
                                                       col_right->get_element(0), vec_res);
583
584
672
            block.replace_by_position(result, std::move(col_res));
585
672
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
684
        return Status::OK();
598
684
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
696
                            const ColumnPtr& col_right_ptr) const {
555
696
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
696
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
696
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
696
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
696
        DCHECK(!(left_is_const && right_is_const));
562
563
696
        if (!left_is_const && !right_is_const) {
564
13
            auto col_res = ColumnUInt8::create();
565
566
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
13
            vec_res.resize(col_left->get_data().size());
568
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
13
                              typename PrimitiveTypeTraits<PT>::CppType,
570
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
13
                                                     vec_res);
572
573
13
            block.replace_by_position(result, std::move(col_res));
574
683
        } else if (!left_is_const && right_is_const) {
575
683
            auto col_res = ColumnUInt8::create();
576
577
683
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
683
            vec_res.resize(col_left->size());
579
683
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
683
                              typename PrimitiveTypeTraits<PT>::CppType,
581
683
                              Op<PT>>::vector_constant(col_left->get_data(),
582
683
                                                       col_right->get_element(0), vec_res);
583
584
683
            block.replace_by_position(result, std::move(col_res));
585
683
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
696
        return Status::OK();
598
696
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
28
                            const ColumnPtr& col_right_ptr) const {
555
28
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
28
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
28
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
28
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
28
        DCHECK(!(left_is_const && right_is_const));
562
563
28
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
28
        } else if (!left_is_const && right_is_const) {
575
28
            auto col_res = ColumnUInt8::create();
576
577
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
28
            vec_res.resize(col_left->size());
579
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
28
                              typename PrimitiveTypeTraits<PT>::CppType,
581
28
                              Op<PT>>::vector_constant(col_left->get_data(),
582
28
                                                       col_right->get_element(0), vec_res);
583
584
28
            block.replace_by_position(result, std::move(col_res));
585
28
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
28
        return Status::OK();
598
28
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1
                            const ColumnPtr& col_right_ptr) const {
555
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1
        DCHECK(!(left_is_const && right_is_const));
562
563
1
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
1
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
1
        return Status::OK();
598
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1
                            const ColumnPtr& col_right_ptr) const {
555
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1
        DCHECK(!(left_is_const && right_is_const));
562
563
1
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
1
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
1
        return Status::OK();
598
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
24
                            const ColumnPtr& col_right_ptr) const {
555
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
24
        DCHECK(!(left_is_const && right_is_const));
562
563
24
        if (!left_is_const && !right_is_const) {
564
20
            auto col_res = ColumnUInt8::create();
565
566
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
20
            vec_res.resize(col_left->get_data().size());
568
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
20
                              typename PrimitiveTypeTraits<PT>::CppType,
570
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
20
                                                     vec_res);
572
573
20
            block.replace_by_position(result, std::move(col_res));
574
20
        } else if (!left_is_const && right_is_const) {
575
4
            auto col_res = ColumnUInt8::create();
576
577
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
4
            vec_res.resize(col_left->size());
579
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
4
                              typename PrimitiveTypeTraits<PT>::CppType,
581
4
                              Op<PT>>::vector_constant(col_left->get_data(),
582
4
                                                       col_right->get_element(0), vec_res);
583
584
4
            block.replace_by_position(result, std::move(col_res));
585
4
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
24
        return Status::OK();
598
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
135
                            const ColumnPtr& col_right_ptr) const {
555
135
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
135
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
135
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
135
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
135
        DCHECK(!(left_is_const && right_is_const));
562
563
135
        if (!left_is_const && !right_is_const) {
564
23
            auto col_res = ColumnUInt8::create();
565
566
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
23
            vec_res.resize(col_left->get_data().size());
568
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
23
                              typename PrimitiveTypeTraits<PT>::CppType,
570
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
23
                                                     vec_res);
572
573
23
            block.replace_by_position(result, std::move(col_res));
574
112
        } else if (!left_is_const && right_is_const) {
575
112
            auto col_res = ColumnUInt8::create();
576
577
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
112
            vec_res.resize(col_left->size());
579
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
112
                              typename PrimitiveTypeTraits<PT>::CppType,
581
112
                              Op<PT>>::vector_constant(col_left->get_data(),
582
112
                                                       col_right->get_element(0), vec_res);
583
584
112
            block.replace_by_position(result, std::move(col_res));
585
112
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
135
        return Status::OK();
598
135
    }
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
554
101
                            const ColumnPtr& col_right_ptr) const {
555
101
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
101
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
101
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
101
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
101
        DCHECK(!(left_is_const && right_is_const));
562
563
101
        if (!left_is_const && !right_is_const) {
564
101
            auto col_res = ColumnUInt8::create();
565
566
101
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
101
            vec_res.resize(col_left->get_data().size());
568
101
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
101
                              typename PrimitiveTypeTraits<PT>::CppType,
570
101
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
101
                                                     vec_res);
572
573
101
            block.replace_by_position(result, std::move(col_res));
574
101
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
101
        return Status::OK();
598
101
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
2.23k
                            const ColumnPtr& col_right_ptr) const {
555
2.23k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
2.23k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
2.23k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
2.23k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
2.23k
        DCHECK(!(left_is_const && right_is_const));
562
563
2.23k
        if (!left_is_const && !right_is_const) {
564
1.82k
            auto col_res = ColumnUInt8::create();
565
566
1.82k
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1.82k
            vec_res.resize(col_left->get_data().size());
568
1.82k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1.82k
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1.82k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1.82k
                                                     vec_res);
572
573
1.82k
            block.replace_by_position(result, std::move(col_res));
574
1.82k
        } else if (!left_is_const && right_is_const) {
575
405
            auto col_res = ColumnUInt8::create();
576
577
405
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
405
            vec_res.resize(col_left->size());
579
405
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
405
                              typename PrimitiveTypeTraits<PT>::CppType,
581
405
                              Op<PT>>::vector_constant(col_left->get_data(),
582
405
                                                       col_right->get_element(0), vec_res);
583
584
405
            block.replace_by_position(result, std::move(col_res));
585
18.4E
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
2.23k
        return Status::OK();
598
2.23k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
313
                            const ColumnPtr& col_right_ptr) const {
555
313
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
313
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
313
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
313
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
313
        DCHECK(!(left_is_const && right_is_const));
562
563
313
        if (!left_is_const && !right_is_const) {
564
254
            auto col_res = ColumnUInt8::create();
565
566
254
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
254
            vec_res.resize(col_left->get_data().size());
568
254
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
254
                              typename PrimitiveTypeTraits<PT>::CppType,
570
254
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
254
                                                     vec_res);
572
573
254
            block.replace_by_position(result, std::move(col_res));
574
254
        } else if (!left_is_const && right_is_const) {
575
59
            auto col_res = ColumnUInt8::create();
576
577
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
59
            vec_res.resize(col_left->size());
579
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
59
                              typename PrimitiveTypeTraits<PT>::CppType,
581
59
                              Op<PT>>::vector_constant(col_left->get_data(),
582
59
                                                       col_right->get_element(0), vec_res);
583
584
59
            block.replace_by_position(result, std::move(col_res));
585
59
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
313
        return Status::OK();
598
313
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
148
                            const ColumnPtr& col_right_ptr) const {
555
148
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
148
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
148
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
148
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
148
        DCHECK(!(left_is_const && right_is_const));
562
563
148
        if (!left_is_const && !right_is_const) {
564
109
            auto col_res = ColumnUInt8::create();
565
566
109
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
109
            vec_res.resize(col_left->get_data().size());
568
109
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
109
                              typename PrimitiveTypeTraits<PT>::CppType,
570
109
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
109
                                                     vec_res);
572
573
109
            block.replace_by_position(result, std::move(col_res));
574
109
        } else if (!left_is_const && right_is_const) {
575
39
            auto col_res = ColumnUInt8::create();
576
577
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
39
            vec_res.resize(col_left->size());
579
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
39
                              typename PrimitiveTypeTraits<PT>::CppType,
581
39
                              Op<PT>>::vector_constant(col_left->get_data(),
582
39
                                                       col_right->get_element(0), vec_res);
583
584
39
            block.replace_by_position(result, std::move(col_res));
585
39
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
148
        return Status::OK();
598
148
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
2
                            const ColumnPtr& col_right_ptr) const {
555
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
2
        DCHECK(!(left_is_const && right_is_const));
562
563
2
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
1
        } else if (!left_is_const && right_is_const) {
575
1
            auto col_res = ColumnUInt8::create();
576
577
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
1
            vec_res.resize(col_left->size());
579
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
1
                              typename PrimitiveTypeTraits<PT>::CppType,
581
1
                              Op<PT>>::vector_constant(col_left->get_data(),
582
1
                                                       col_right->get_element(0), vec_res);
583
584
1
            block.replace_by_position(result, std::move(col_res));
585
1
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
2
        return Status::OK();
598
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
2.32k
                            const ColumnPtr& col_right_ptr) const {
555
2.32k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
2.32k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
2.32k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
2.32k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
2.32k
        DCHECK(!(left_is_const && right_is_const));
562
563
2.32k
        if (!left_is_const && !right_is_const) {
564
173
            auto col_res = ColumnUInt8::create();
565
566
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
173
            vec_res.resize(col_left->get_data().size());
568
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
173
                              typename PrimitiveTypeTraits<PT>::CppType,
570
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
173
                                                     vec_res);
572
573
173
            block.replace_by_position(result, std::move(col_res));
574
2.14k
        } else if (!left_is_const && right_is_const) {
575
1.92k
            auto col_res = ColumnUInt8::create();
576
577
1.92k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
1.92k
            vec_res.resize(col_left->size());
579
1.92k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
1.92k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
1.92k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
1.92k
                                                       col_right->get_element(0), vec_res);
583
584
1.92k
            block.replace_by_position(result, std::move(col_res));
585
1.92k
        } else if (left_is_const && !right_is_const) {
586
227
            auto col_res = ColumnUInt8::create();
587
588
227
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
227
            vec_res.resize(col_right->size());
590
227
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
227
                              typename PrimitiveTypeTraits<PT>::CppType,
592
227
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
227
                                                       col_right->get_data(), vec_res);
594
595
227
            block.replace_by_position(result, std::move(col_res));
596
227
        }
597
2.32k
        return Status::OK();
598
2.32k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
137
                            const ColumnPtr& col_right_ptr) const {
555
137
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
137
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
137
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
137
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
137
        DCHECK(!(left_is_const && right_is_const));
562
563
137
        if (!left_is_const && !right_is_const) {
564
122
            auto col_res = ColumnUInt8::create();
565
566
122
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
122
            vec_res.resize(col_left->get_data().size());
568
122
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
122
                              typename PrimitiveTypeTraits<PT>::CppType,
570
122
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
122
                                                     vec_res);
572
573
122
            block.replace_by_position(result, std::move(col_res));
574
122
        } else if (!left_is_const && right_is_const) {
575
14
            auto col_res = ColumnUInt8::create();
576
577
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
14
            vec_res.resize(col_left->size());
579
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
14
                              typename PrimitiveTypeTraits<PT>::CppType,
581
14
                              Op<PT>>::vector_constant(col_left->get_data(),
582
14
                                                       col_right->get_element(0), vec_res);
583
584
14
            block.replace_by_position(result, std::move(col_res));
585
14
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
137
        return Status::OK();
598
137
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1.14k
                            const ColumnPtr& col_right_ptr) const {
555
1.14k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1.14k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1.14k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1.14k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1.14k
        DCHECK(!(left_is_const && right_is_const));
562
563
1.14k
        if (!left_is_const && !right_is_const) {
564
173
            auto col_res = ColumnUInt8::create();
565
566
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
173
            vec_res.resize(col_left->get_data().size());
568
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
173
                              typename PrimitiveTypeTraits<PT>::CppType,
570
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
173
                                                     vec_res);
572
573
173
            block.replace_by_position(result, std::move(col_res));
574
967
        } else if (!left_is_const && right_is_const) {
575
848
            auto col_res = ColumnUInt8::create();
576
577
848
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
848
            vec_res.resize(col_left->size());
579
848
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
848
                              typename PrimitiveTypeTraits<PT>::CppType,
581
848
                              Op<PT>>::vector_constant(col_left->get_data(),
582
848
                                                       col_right->get_element(0), vec_res);
583
584
848
            block.replace_by_position(result, std::move(col_res));
585
848
        } else if (left_is_const && !right_is_const) {
586
119
            auto col_res = ColumnUInt8::create();
587
588
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
119
            vec_res.resize(col_right->size());
590
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
119
                              typename PrimitiveTypeTraits<PT>::CppType,
592
119
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
119
                                                       col_right->get_data(), vec_res);
594
595
119
            block.replace_by_position(result, std::move(col_res));
596
119
        }
597
1.14k
        return Status::OK();
598
1.14k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
792
                            const ColumnPtr& col_right_ptr) const {
555
792
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
792
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
792
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
792
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
792
        DCHECK(!(left_is_const && right_is_const));
562
563
792
        if (!left_is_const && !right_is_const) {
564
214
            auto col_res = ColumnUInt8::create();
565
566
214
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
214
            vec_res.resize(col_left->get_data().size());
568
214
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
214
                              typename PrimitiveTypeTraits<PT>::CppType,
570
214
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
214
                                                     vec_res);
572
573
214
            block.replace_by_position(result, std::move(col_res));
574
578
        } else if (!left_is_const && right_is_const) {
575
503
            auto col_res = ColumnUInt8::create();
576
577
503
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
503
            vec_res.resize(col_left->size());
579
503
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
503
                              typename PrimitiveTypeTraits<PT>::CppType,
581
503
                              Op<PT>>::vector_constant(col_left->get_data(),
582
503
                                                       col_right->get_element(0), vec_res);
583
584
503
            block.replace_by_position(result, std::move(col_res));
585
503
        } else if (left_is_const && !right_is_const) {
586
75
            auto col_res = ColumnUInt8::create();
587
588
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
75
            vec_res.resize(col_right->size());
590
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
75
                              typename PrimitiveTypeTraits<PT>::CppType,
592
75
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
75
                                                       col_right->get_data(), vec_res);
594
595
75
            block.replace_by_position(result, std::move(col_res));
596
75
        }
597
792
        return Status::OK();
598
792
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
226
                            const ColumnPtr& col_right_ptr) const {
555
226
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
226
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
226
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
226
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
226
        DCHECK(!(left_is_const && right_is_const));
562
563
226
        if (!left_is_const && !right_is_const) {
564
142
            auto col_res = ColumnUInt8::create();
565
566
142
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
142
            vec_res.resize(col_left->get_data().size());
568
142
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
142
                              typename PrimitiveTypeTraits<PT>::CppType,
570
142
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
142
                                                     vec_res);
572
573
142
            block.replace_by_position(result, std::move(col_res));
574
142
        } else if (!left_is_const && right_is_const) {
575
38
            auto col_res = ColumnUInt8::create();
576
577
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
38
            vec_res.resize(col_left->size());
579
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
38
                              typename PrimitiveTypeTraits<PT>::CppType,
581
38
                              Op<PT>>::vector_constant(col_left->get_data(),
582
38
                                                       col_right->get_element(0), vec_res);
583
584
38
            block.replace_by_position(result, std::move(col_res));
585
46
        } else if (left_is_const && !right_is_const) {
586
46
            auto col_res = ColumnUInt8::create();
587
588
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
46
            vec_res.resize(col_right->size());
590
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
46
                              typename PrimitiveTypeTraits<PT>::CppType,
592
46
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
46
                                                       col_right->get_data(), vec_res);
594
595
46
            block.replace_by_position(result, std::move(col_res));
596
46
        }
597
226
        return Status::OK();
598
226
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
18
                            const ColumnPtr& col_right_ptr) const {
555
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
18
        DCHECK(!(left_is_const && right_is_const));
562
563
18
        if (!left_is_const && !right_is_const) {
564
16
            auto col_res = ColumnUInt8::create();
565
566
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
16
            vec_res.resize(col_left->get_data().size());
568
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
16
                              typename PrimitiveTypeTraits<PT>::CppType,
570
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
16
                                                     vec_res);
572
573
16
            block.replace_by_position(result, std::move(col_res));
574
16
        } else if (!left_is_const && right_is_const) {
575
2
            auto col_res = ColumnUInt8::create();
576
577
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
2
            vec_res.resize(col_left->size());
579
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
2
                              typename PrimitiveTypeTraits<PT>::CppType,
581
2
                              Op<PT>>::vector_constant(col_left->get_data(),
582
2
                                                       col_right->get_element(0), vec_res);
583
584
2
            block.replace_by_position(result, std::move(col_res));
585
2
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
18
        return Status::OK();
598
18
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
16
                            const ColumnPtr& col_right_ptr) const {
555
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
16
        DCHECK(!(left_is_const && right_is_const));
562
563
16
        if (!left_is_const && !right_is_const) {
564
16
            auto col_res = ColumnUInt8::create();
565
566
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
16
            vec_res.resize(col_left->get_data().size());
568
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
16
                              typename PrimitiveTypeTraits<PT>::CppType,
570
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
16
                                                     vec_res);
572
573
16
            block.replace_by_position(result, std::move(col_res));
574
16
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
16
        return Status::OK();
598
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
137
                            const ColumnPtr& col_right_ptr) const {
555
137
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
137
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
137
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
137
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
137
        DCHECK(!(left_is_const && right_is_const));
562
563
138
        if (!left_is_const && !right_is_const) {
564
138
            auto col_res = ColumnUInt8::create();
565
566
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
138
            vec_res.resize(col_left->get_data().size());
568
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
138
                              typename PrimitiveTypeTraits<PT>::CppType,
570
138
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
138
                                                     vec_res);
572
573
138
            block.replace_by_position(result, std::move(col_res));
574
18.4E
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
18.4E
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
137
        return Status::OK();
598
137
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
360
                            const ColumnPtr& col_right_ptr) const {
555
360
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
360
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
360
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
360
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
360
        DCHECK(!(left_is_const && right_is_const));
562
563
360
        if (!left_is_const && !right_is_const) {
564
148
            auto col_res = ColumnUInt8::create();
565
566
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
148
            vec_res.resize(col_left->get_data().size());
568
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
148
                              typename PrimitiveTypeTraits<PT>::CppType,
570
148
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
148
                                                     vec_res);
572
573
148
            block.replace_by_position(result, std::move(col_res));
574
213
        } else if (!left_is_const && right_is_const) {
575
213
            auto col_res = ColumnUInt8::create();
576
577
213
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
213
            vec_res.resize(col_left->size());
579
213
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
213
                              typename PrimitiveTypeTraits<PT>::CppType,
581
213
                              Op<PT>>::vector_constant(col_left->get_data(),
582
213
                                                       col_right->get_element(0), vec_res);
583
584
213
            block.replace_by_position(result, std::move(col_res));
585
18.4E
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
360
        return Status::OK();
598
360
    }
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
554
31
                            const ColumnPtr& col_right_ptr) const {
555
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
31
        DCHECK(!(left_is_const && right_is_const));
562
563
31
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
31
        } else if (!left_is_const && right_is_const) {
575
31
            auto col_res = ColumnUInt8::create();
576
577
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
31
            vec_res.resize(col_left->size());
579
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
31
                              typename PrimitiveTypeTraits<PT>::CppType,
581
31
                              Op<PT>>::vector_constant(col_left->get_data(),
582
31
                                                       col_right->get_element(0), vec_res);
583
584
31
            block.replace_by_position(result, std::move(col_res));
585
31
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
31
        return Status::OK();
598
31
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
585
                            const ColumnPtr& col_right_ptr) const {
555
585
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
585
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
585
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
585
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
585
        DCHECK(!(left_is_const && right_is_const));
562
563
585
        if (!left_is_const && !right_is_const) {
564
432
            auto col_res = ColumnUInt8::create();
565
566
432
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
432
            vec_res.resize(col_left->get_data().size());
568
432
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
432
                              typename PrimitiveTypeTraits<PT>::CppType,
570
432
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
432
                                                     vec_res);
572
573
432
            block.replace_by_position(result, std::move(col_res));
574
432
        } else if (!left_is_const && right_is_const) {
575
148
            auto col_res = ColumnUInt8::create();
576
577
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
148
            vec_res.resize(col_left->size());
579
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
148
                              typename PrimitiveTypeTraits<PT>::CppType,
581
148
                              Op<PT>>::vector_constant(col_left->get_data(),
582
148
                                                       col_right->get_element(0), vec_res);
583
584
148
            block.replace_by_position(result, std::move(col_res));
585
148
        } else if (left_is_const && !right_is_const) {
586
5
            auto col_res = ColumnUInt8::create();
587
588
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
5
            vec_res.resize(col_right->size());
590
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
5
                              typename PrimitiveTypeTraits<PT>::CppType,
592
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
5
                                                       col_right->get_data(), vec_res);
594
595
5
            block.replace_by_position(result, std::move(col_res));
596
5
        }
597
585
        return Status::OK();
598
585
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
71
                            const ColumnPtr& col_right_ptr) const {
555
71
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
71
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
71
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
71
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
71
        DCHECK(!(left_is_const && right_is_const));
562
563
71
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
71
        } else if (!left_is_const && right_is_const) {
575
71
            auto col_res = ColumnUInt8::create();
576
577
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
71
            vec_res.resize(col_left->size());
579
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
71
                              typename PrimitiveTypeTraits<PT>::CppType,
581
71
                              Op<PT>>::vector_constant(col_left->get_data(),
582
71
                                                       col_right->get_element(0), vec_res);
583
584
71
            block.replace_by_position(result, std::move(col_res));
585
71
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
71
        return Status::OK();
598
71
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
61
                            const ColumnPtr& col_right_ptr) const {
555
61
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
61
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
61
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
61
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
61
        DCHECK(!(left_is_const && right_is_const));
562
563
61
        if (!left_is_const && !right_is_const) {
564
24
            auto col_res = ColumnUInt8::create();
565
566
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
24
            vec_res.resize(col_left->get_data().size());
568
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
24
                              typename PrimitiveTypeTraits<PT>::CppType,
570
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
24
                                                     vec_res);
572
573
24
            block.replace_by_position(result, std::move(col_res));
574
37
        } else if (!left_is_const && right_is_const) {
575
37
            auto col_res = ColumnUInt8::create();
576
577
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
37
            vec_res.resize(col_left->size());
579
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
37
                              typename PrimitiveTypeTraits<PT>::CppType,
581
37
                              Op<PT>>::vector_constant(col_left->get_data(),
582
37
                                                       col_right->get_element(0), vec_res);
583
584
37
            block.replace_by_position(result, std::move(col_res));
585
37
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
61
        return Status::OK();
598
61
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1
                            const ColumnPtr& col_right_ptr) const {
555
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1
        DCHECK(!(left_is_const && right_is_const));
562
563
1
        if (!left_is_const && !right_is_const) {
564
1
            auto col_res = ColumnUInt8::create();
565
566
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1
            vec_res.resize(col_left->get_data().size());
568
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1
                                                     vec_res);
572
573
1
            block.replace_by_position(result, std::move(col_res));
574
1
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
1
        return Status::OK();
598
1
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
112
                            const ColumnPtr& col_right_ptr) const {
555
112
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
112
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
112
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
112
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
112
        DCHECK(!(left_is_const && right_is_const));
562
563
112
        if (!left_is_const && !right_is_const) {
564
2
            auto col_res = ColumnUInt8::create();
565
566
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
2
            vec_res.resize(col_left->get_data().size());
568
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
2
                              typename PrimitiveTypeTraits<PT>::CppType,
570
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
2
                                                     vec_res);
572
573
2
            block.replace_by_position(result, std::move(col_res));
574
110
        } else if (!left_is_const && right_is_const) {
575
110
            auto col_res = ColumnUInt8::create();
576
577
110
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
110
            vec_res.resize(col_left->size());
579
110
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
110
                              typename PrimitiveTypeTraits<PT>::CppType,
581
110
                              Op<PT>>::vector_constant(col_left->get_data(),
582
110
                                                       col_right->get_element(0), vec_res);
583
584
110
            block.replace_by_position(result, std::move(col_res));
585
110
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
112
        return Status::OK();
598
112
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
134
                            const ColumnPtr& col_right_ptr) const {
555
134
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
134
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
134
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
134
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
134
        DCHECK(!(left_is_const && right_is_const));
562
563
134
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
134
        } else if (!left_is_const && right_is_const) {
575
134
            auto col_res = ColumnUInt8::create();
576
577
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
134
            vec_res.resize(col_left->size());
579
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
134
                              typename PrimitiveTypeTraits<PT>::CppType,
581
134
                              Op<PT>>::vector_constant(col_left->get_data(),
582
134
                                                       col_right->get_element(0), vec_res);
583
584
134
            block.replace_by_position(result, std::move(col_res));
585
134
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
134
        return Status::OK();
598
134
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
6.09k
                            const ColumnPtr& col_right_ptr) const {
555
6.09k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
6.09k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
6.09k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
6.09k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
6.09k
        DCHECK(!(left_is_const && right_is_const));
562
563
6.09k
        if (!left_is_const && !right_is_const) {
564
35
            auto col_res = ColumnUInt8::create();
565
566
35
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
35
            vec_res.resize(col_left->get_data().size());
568
35
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
35
                              typename PrimitiveTypeTraits<PT>::CppType,
570
35
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
35
                                                     vec_res);
572
573
35
            block.replace_by_position(result, std::move(col_res));
574
6.05k
        } else if (!left_is_const && right_is_const) {
575
5.83k
            auto col_res = ColumnUInt8::create();
576
577
5.83k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
5.83k
            vec_res.resize(col_left->size());
579
5.83k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
5.83k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
5.83k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
5.83k
                                                       col_right->get_element(0), vec_res);
583
584
5.83k
            block.replace_by_position(result, std::move(col_res));
585
5.83k
        } else if (left_is_const && !right_is_const) {
586
221
            auto col_res = ColumnUInt8::create();
587
588
221
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
221
            vec_res.resize(col_right->size());
590
221
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
221
                              typename PrimitiveTypeTraits<PT>::CppType,
592
221
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
221
                                                       col_right->get_data(), vec_res);
594
595
221
            block.replace_by_position(result, std::move(col_res));
596
221
        }
597
6.09k
        return Status::OK();
598
6.09k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
594
                            const ColumnPtr& col_right_ptr) const {
555
594
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
594
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
594
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
594
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
594
        DCHECK(!(left_is_const && right_is_const));
562
563
594
        if (!left_is_const && !right_is_const) {
564
71
            auto col_res = ColumnUInt8::create();
565
566
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
71
            vec_res.resize(col_left->get_data().size());
568
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
71
                              typename PrimitiveTypeTraits<PT>::CppType,
570
71
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
71
                                                     vec_res);
572
573
71
            block.replace_by_position(result, std::move(col_res));
574
523
        } else if (!left_is_const && right_is_const) {
575
511
            auto col_res = ColumnUInt8::create();
576
577
511
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
511
            vec_res.resize(col_left->size());
579
511
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
511
                              typename PrimitiveTypeTraits<PT>::CppType,
581
511
                              Op<PT>>::vector_constant(col_left->get_data(),
582
511
                                                       col_right->get_element(0), vec_res);
583
584
511
            block.replace_by_position(result, std::move(col_res));
585
511
        } else if (left_is_const && !right_is_const) {
586
12
            auto col_res = ColumnUInt8::create();
587
588
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
12
            vec_res.resize(col_right->size());
590
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
12
                              typename PrimitiveTypeTraits<PT>::CppType,
592
12
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
12
                                                       col_right->get_data(), vec_res);
594
595
12
            block.replace_by_position(result, std::move(col_res));
596
12
        }
597
594
        return Status::OK();
598
594
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
34
                            const ColumnPtr& col_right_ptr) const {
555
34
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
34
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
34
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
34
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
34
        DCHECK(!(left_is_const && right_is_const));
562
563
34
        if (!left_is_const && !right_is_const) {
564
0
            auto col_res = ColumnUInt8::create();
565
566
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
0
            vec_res.resize(col_left->get_data().size());
568
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
0
                              typename PrimitiveTypeTraits<PT>::CppType,
570
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
0
                                                     vec_res);
572
573
0
            block.replace_by_position(result, std::move(col_res));
574
34
        } else if (!left_is_const && right_is_const) {
575
34
            auto col_res = ColumnUInt8::create();
576
577
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
34
            vec_res.resize(col_left->size());
579
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
34
                              typename PrimitiveTypeTraits<PT>::CppType,
581
34
                              Op<PT>>::vector_constant(col_left->get_data(),
582
34
                                                       col_right->get_element(0), vec_res);
583
584
34
            block.replace_by_position(result, std::move(col_res));
585
34
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
34
        return Status::OK();
598
34
    }
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_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
20
                            const ColumnPtr& col_right_ptr) const {
555
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
20
        DCHECK(!(left_is_const && right_is_const));
562
563
20
        if (!left_is_const && !right_is_const) {
564
20
            auto col_res = ColumnUInt8::create();
565
566
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
20
            vec_res.resize(col_left->get_data().size());
568
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
20
                              typename PrimitiveTypeTraits<PT>::CppType,
570
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
20
                                                     vec_res);
572
573
20
            block.replace_by_position(result, std::move(col_res));
574
20
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
20
        return Status::OK();
598
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
144
                            const ColumnPtr& col_right_ptr) const {
555
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
144
        DCHECK(!(left_is_const && right_is_const));
562
563
144
        if (!left_is_const && !right_is_const) {
564
20
            auto col_res = ColumnUInt8::create();
565
566
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
20
            vec_res.resize(col_left->get_data().size());
568
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
20
                              typename PrimitiveTypeTraits<PT>::CppType,
570
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
20
                                                     vec_res);
572
573
20
            block.replace_by_position(result, std::move(col_res));
574
124
        } else if (!left_is_const && right_is_const) {
575
124
            auto col_res = ColumnUInt8::create();
576
577
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
124
            vec_res.resize(col_left->size());
579
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
124
                              typename PrimitiveTypeTraits<PT>::CppType,
581
124
                              Op<PT>>::vector_constant(col_left->get_data(),
582
124
                                                       col_right->get_element(0), vec_res);
583
584
124
            block.replace_by_position(result, std::move(col_res));
585
124
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
144
        return Status::OK();
598
144
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
106
                            const ColumnPtr& col_right_ptr) const {
555
106
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
106
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
106
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
106
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
106
        DCHECK(!(left_is_const && right_is_const));
562
563
106
        if (!left_is_const && !right_is_const) {
564
76
            auto col_res = ColumnUInt8::create();
565
566
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
76
            vec_res.resize(col_left->get_data().size());
568
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
76
                              typename PrimitiveTypeTraits<PT>::CppType,
570
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
76
                                                     vec_res);
572
573
76
            block.replace_by_position(result, std::move(col_res));
574
76
        } else if (!left_is_const && right_is_const) {
575
30
            auto col_res = ColumnUInt8::create();
576
577
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
30
            vec_res.resize(col_left->size());
579
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
30
                              typename PrimitiveTypeTraits<PT>::CppType,
581
30
                              Op<PT>>::vector_constant(col_left->get_data(),
582
30
                                                       col_right->get_element(0), vec_res);
583
584
30
            block.replace_by_position(result, std::move(col_res));
585
30
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
106
        return Status::OK();
598
106
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
679
                            const ColumnPtr& col_right_ptr) const {
555
679
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
679
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
679
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
679
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
679
        DCHECK(!(left_is_const && right_is_const));
562
563
679
        if (!left_is_const && !right_is_const) {
564
229
            auto col_res = ColumnUInt8::create();
565
566
229
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
229
            vec_res.resize(col_left->get_data().size());
568
229
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
229
                              typename PrimitiveTypeTraits<PT>::CppType,
570
229
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
229
                                                     vec_res);
572
573
229
            block.replace_by_position(result, std::move(col_res));
574
450
        } else if (!left_is_const && right_is_const) {
575
450
            auto col_res = ColumnUInt8::create();
576
577
450
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
450
            vec_res.resize(col_left->size());
579
450
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
450
                              typename PrimitiveTypeTraits<PT>::CppType,
581
450
                              Op<PT>>::vector_constant(col_left->get_data(),
582
450
                                                       col_right->get_element(0), vec_res);
583
584
450
            block.replace_by_position(result, std::move(col_res));
585
450
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
679
        return Status::OK();
598
679
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
451
                            const ColumnPtr& col_right_ptr) const {
555
451
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
451
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
451
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
451
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
451
        DCHECK(!(left_is_const && right_is_const));
562
563
451
        if (!left_is_const && !right_is_const) {
564
275
            auto col_res = ColumnUInt8::create();
565
566
275
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
275
            vec_res.resize(col_left->get_data().size());
568
275
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
275
                              typename PrimitiveTypeTraits<PT>::CppType,
570
275
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
275
                                                     vec_res);
572
573
275
            block.replace_by_position(result, std::move(col_res));
574
275
        } else if (!left_is_const && right_is_const) {
575
176
            auto col_res = ColumnUInt8::create();
576
577
176
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
176
            vec_res.resize(col_left->size());
579
176
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
176
                              typename PrimitiveTypeTraits<PT>::CppType,
581
176
                              Op<PT>>::vector_constant(col_left->get_data(),
582
176
                                                       col_right->get_element(0), vec_res);
583
584
176
            block.replace_by_position(result, std::move(col_res));
585
176
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
451
        return Status::OK();
598
451
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE43EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
220
                            const ColumnPtr& col_right_ptr) const {
555
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
220
        DCHECK(!(left_is_const && right_is_const));
562
563
220
        if (!left_is_const && !right_is_const) {
564
134
            auto col_res = ColumnUInt8::create();
565
566
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
134
            vec_res.resize(col_left->get_data().size());
568
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
134
                              typename PrimitiveTypeTraits<PT>::CppType,
570
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
134
                                                     vec_res);
572
573
134
            block.replace_by_position(result, std::move(col_res));
574
134
        } else if (!left_is_const && right_is_const) {
575
74
            auto col_res = ColumnUInt8::create();
576
577
74
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
74
            vec_res.resize(col_left->size());
579
74
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
74
                              typename PrimitiveTypeTraits<PT>::CppType,
581
74
                              Op<PT>>::vector_constant(col_left->get_data(),
582
74
                                                       col_right->get_element(0), vec_res);
583
584
74
            block.replace_by_position(result, std::move(col_res));
585
74
        } else if (left_is_const && !right_is_const) {
586
12
            auto col_res = ColumnUInt8::create();
587
588
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
12
            vec_res.resize(col_right->size());
590
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
12
                              typename PrimitiveTypeTraits<PT>::CppType,
592
12
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
12
                                                       col_right->get_data(), vec_res);
594
595
12
            block.replace_by_position(result, std::move(col_res));
596
12
        }
597
220
        return Status::OK();
598
220
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
2
                            const ColumnPtr& col_right_ptr) const {
555
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
2
        DCHECK(!(left_is_const && right_is_const));
562
563
2
        if (!left_is_const && !right_is_const) {
564
2
            auto col_res = ColumnUInt8::create();
565
566
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
2
            vec_res.resize(col_left->get_data().size());
568
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
2
                              typename PrimitiveTypeTraits<PT>::CppType,
570
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
2
                                                     vec_res);
572
573
2
            block.replace_by_position(result, std::move(col_res));
574
2
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
2
        return Status::OK();
598
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
5.94k
                            const ColumnPtr& col_right_ptr) const {
555
5.94k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
5.94k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
5.94k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
5.94k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
5.94k
        DCHECK(!(left_is_const && right_is_const));
562
563
5.94k
        if (!left_is_const && !right_is_const) {
564
161
            auto col_res = ColumnUInt8::create();
565
566
161
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
161
            vec_res.resize(col_left->get_data().size());
568
161
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
161
                              typename PrimitiveTypeTraits<PT>::CppType,
570
161
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
161
                                                     vec_res);
572
573
161
            block.replace_by_position(result, std::move(col_res));
574
5.78k
        } else if (!left_is_const && right_is_const) {
575
5.49k
            auto col_res = ColumnUInt8::create();
576
577
5.49k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
5.49k
            vec_res.resize(col_left->size());
579
5.49k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
5.49k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
5.49k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
5.49k
                                                       col_right->get_element(0), vec_res);
583
584
5.49k
            block.replace_by_position(result, std::move(col_res));
585
5.49k
        } else if (left_is_const && !right_is_const) {
586
288
            auto col_res = ColumnUInt8::create();
587
588
288
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
288
            vec_res.resize(col_right->size());
590
288
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
288
                              typename PrimitiveTypeTraits<PT>::CppType,
592
288
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
288
                                                       col_right->get_data(), vec_res);
594
595
288
            block.replace_by_position(result, std::move(col_res));
596
288
        }
597
5.94k
        return Status::OK();
598
5.94k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
439
                            const ColumnPtr& col_right_ptr) const {
555
439
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
439
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
439
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
439
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
439
        DCHECK(!(left_is_const && right_is_const));
562
563
439
        if (!left_is_const && !right_is_const) {
564
84
            auto col_res = ColumnUInt8::create();
565
566
84
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
84
            vec_res.resize(col_left->get_data().size());
568
84
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
84
                              typename PrimitiveTypeTraits<PT>::CppType,
570
84
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
84
                                                     vec_res);
572
573
84
            block.replace_by_position(result, std::move(col_res));
574
355
        } else if (!left_is_const && right_is_const) {
575
308
            auto col_res = ColumnUInt8::create();
576
577
308
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
308
            vec_res.resize(col_left->size());
579
308
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
308
                              typename PrimitiveTypeTraits<PT>::CppType,
581
308
                              Op<PT>>::vector_constant(col_left->get_data(),
582
308
                                                       col_right->get_element(0), vec_res);
583
584
308
            block.replace_by_position(result, std::move(col_res));
585
308
        } else if (left_is_const && !right_is_const) {
586
47
            auto col_res = ColumnUInt8::create();
587
588
47
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
47
            vec_res.resize(col_right->size());
590
47
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
47
                              typename PrimitiveTypeTraits<PT>::CppType,
592
47
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
47
                                                       col_right->get_data(), vec_res);
594
595
47
            block.replace_by_position(result, std::move(col_res));
596
47
        }
597
439
        return Status::OK();
598
439
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
2.19k
                            const ColumnPtr& col_right_ptr) const {
555
2.19k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
2.19k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
2.19k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
2.19k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
2.19k
        DCHECK(!(left_is_const && right_is_const));
562
563
2.19k
        if (!left_is_const && !right_is_const) {
564
244
            auto col_res = ColumnUInt8::create();
565
566
244
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
244
            vec_res.resize(col_left->get_data().size());
568
244
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
244
                              typename PrimitiveTypeTraits<PT>::CppType,
570
244
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
244
                                                     vec_res);
572
573
244
            block.replace_by_position(result, std::move(col_res));
574
1.95k
        } else if (!left_is_const && right_is_const) {
575
1.91k
            auto col_res = ColumnUInt8::create();
576
577
1.91k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
1.91k
            vec_res.resize(col_left->size());
579
1.91k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
1.91k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
1.91k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
1.91k
                                                       col_right->get_element(0), vec_res);
583
584
1.91k
            block.replace_by_position(result, std::move(col_res));
585
1.91k
        } else if (left_is_const && !right_is_const) {
586
38
            auto col_res = ColumnUInt8::create();
587
588
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
38
            vec_res.resize(col_right->size());
590
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
38
                              typename PrimitiveTypeTraits<PT>::CppType,
592
38
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
38
                                                       col_right->get_data(), vec_res);
594
595
38
            block.replace_by_position(result, std::move(col_res));
596
38
        }
597
2.19k
        return Status::OK();
598
2.19k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
2.50k
                            const ColumnPtr& col_right_ptr) const {
555
2.50k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
2.50k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
2.50k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
2.50k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
2.50k
        DCHECK(!(left_is_const && right_is_const));
562
563
2.50k
        if (!left_is_const && !right_is_const) {
564
190
            auto col_res = ColumnUInt8::create();
565
566
190
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
190
            vec_res.resize(col_left->get_data().size());
568
190
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
190
                              typename PrimitiveTypeTraits<PT>::CppType,
570
190
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
190
                                                     vec_res);
572
573
190
            block.replace_by_position(result, std::move(col_res));
574
2.31k
        } else if (!left_is_const && right_is_const) {
575
1.83k
            auto col_res = ColumnUInt8::create();
576
577
1.83k
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
1.83k
            vec_res.resize(col_left->size());
579
1.83k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
1.83k
                              typename PrimitiveTypeTraits<PT>::CppType,
581
1.83k
                              Op<PT>>::vector_constant(col_left->get_data(),
582
1.83k
                                                       col_right->get_element(0), vec_res);
583
584
1.83k
            block.replace_by_position(result, std::move(col_res));
585
1.83k
        } else if (left_is_const && !right_is_const) {
586
479
            auto col_res = ColumnUInt8::create();
587
588
479
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
479
            vec_res.resize(col_right->size());
590
479
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
479
                              typename PrimitiveTypeTraits<PT>::CppType,
592
479
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
479
                                                       col_right->get_data(), vec_res);
594
595
479
            block.replace_by_position(result, std::move(col_res));
596
479
        }
597
2.50k
        return Status::OK();
598
2.50k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
128
                            const ColumnPtr& col_right_ptr) const {
555
128
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
128
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
128
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
128
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
128
        DCHECK(!(left_is_const && right_is_const));
562
563
128
        if (!left_is_const && !right_is_const) {
564
84
            auto col_res = ColumnUInt8::create();
565
566
84
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
84
            vec_res.resize(col_left->get_data().size());
568
84
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
84
                              typename PrimitiveTypeTraits<PT>::CppType,
570
84
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
84
                                                     vec_res);
572
573
84
            block.replace_by_position(result, std::move(col_res));
574
84
        } else if (!left_is_const && right_is_const) {
575
28
            auto col_res = ColumnUInt8::create();
576
577
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
28
            vec_res.resize(col_left->size());
579
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
28
                              typename PrimitiveTypeTraits<PT>::CppType,
581
28
                              Op<PT>>::vector_constant(col_left->get_data(),
582
28
                                                       col_right->get_element(0), vec_res);
583
584
28
            block.replace_by_position(result, std::move(col_res));
585
28
        } else if (left_is_const && !right_is_const) {
586
16
            auto col_res = ColumnUInt8::create();
587
588
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
16
            vec_res.resize(col_right->size());
590
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
16
                              typename PrimitiveTypeTraits<PT>::CppType,
592
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
16
                                                       col_right->get_data(), vec_res);
594
595
16
            block.replace_by_position(result, std::move(col_res));
596
16
        }
597
128
        return Status::OK();
598
128
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
23
                            const ColumnPtr& col_right_ptr) const {
555
23
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
23
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
23
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
23
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
23
        DCHECK(!(left_is_const && right_is_const));
562
563
23
        if (!left_is_const && !right_is_const) {
564
16
            auto col_res = ColumnUInt8::create();
565
566
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
16
            vec_res.resize(col_left->get_data().size());
568
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
16
                              typename PrimitiveTypeTraits<PT>::CppType,
570
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
16
                                                     vec_res);
572
573
16
            block.replace_by_position(result, std::move(col_res));
574
16
        } else if (!left_is_const && right_is_const) {
575
7
            auto col_res = ColumnUInt8::create();
576
577
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
7
            vec_res.resize(col_left->size());
579
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
7
                              typename PrimitiveTypeTraits<PT>::CppType,
581
7
                              Op<PT>>::vector_constant(col_left->get_data(),
582
7
                                                       col_right->get_element(0), vec_res);
583
584
7
            block.replace_by_position(result, std::move(col_res));
585
7
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
23
        return Status::OK();
598
23
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
28
                            const ColumnPtr& col_right_ptr) const {
555
28
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
28
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
28
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
28
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
28
        DCHECK(!(left_is_const && right_is_const));
562
563
28
        if (!left_is_const && !right_is_const) {
564
24
            auto col_res = ColumnUInt8::create();
565
566
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
24
            vec_res.resize(col_left->get_data().size());
568
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
24
                              typename PrimitiveTypeTraits<PT>::CppType,
570
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
24
                                                     vec_res);
572
573
24
            block.replace_by_position(result, std::move(col_res));
574
24
        } else if (!left_is_const && right_is_const) {
575
4
            auto col_res = ColumnUInt8::create();
576
577
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
4
            vec_res.resize(col_left->size());
579
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
4
                              typename PrimitiveTypeTraits<PT>::CppType,
581
4
                              Op<PT>>::vector_constant(col_left->get_data(),
582
4
                                                       col_right->get_element(0), vec_res);
583
584
4
            block.replace_by_position(result, std::move(col_res));
585
4
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
28
        return Status::OK();
598
28
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
104
                            const ColumnPtr& col_right_ptr) const {
555
104
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
104
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
104
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
104
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
104
        DCHECK(!(left_is_const && right_is_const));
562
563
104
        if (!left_is_const && !right_is_const) {
564
104
            auto col_res = ColumnUInt8::create();
565
566
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
104
            vec_res.resize(col_left->get_data().size());
568
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
104
                              typename PrimitiveTypeTraits<PT>::CppType,
570
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
104
                                                     vec_res);
572
573
104
            block.replace_by_position(result, std::move(col_res));
574
104
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
104
        return Status::OK();
598
104
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
650
                            const ColumnPtr& col_right_ptr) const {
555
650
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
650
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
650
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
650
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
650
        DCHECK(!(left_is_const && right_is_const));
562
563
650
        if (!left_is_const && !right_is_const) {
564
106
            auto col_res = ColumnUInt8::create();
565
566
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
106
            vec_res.resize(col_left->get_data().size());
568
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
106
                              typename PrimitiveTypeTraits<PT>::CppType,
570
106
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
106
                                                     vec_res);
572
573
106
            block.replace_by_position(result, std::move(col_res));
574
544
        } else if (!left_is_const && right_is_const) {
575
544
            auto col_res = ColumnUInt8::create();
576
577
544
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
544
            vec_res.resize(col_left->size());
579
544
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
544
                              typename PrimitiveTypeTraits<PT>::CppType,
581
544
                              Op<PT>>::vector_constant(col_left->get_data(),
582
544
                                                       col_right->get_element(0), vec_res);
583
584
544
            block.replace_by_position(result, std::move(col_res));
585
544
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
650
        return Status::OK();
598
650
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
4
                            const ColumnPtr& col_right_ptr) const {
555
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
4
        DCHECK(!(left_is_const && right_is_const));
562
563
4
        if (!left_is_const && !right_is_const) {
564
4
            auto col_res = ColumnUInt8::create();
565
566
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
4
            vec_res.resize(col_left->get_data().size());
568
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
4
                              typename PrimitiveTypeTraits<PT>::CppType,
570
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
4
                                                     vec_res);
572
573
4
            block.replace_by_position(result, std::move(col_res));
574
4
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
4
        return Status::OK();
598
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
554
70
                            const ColumnPtr& col_right_ptr) const {
555
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
70
        DCHECK(!(left_is_const && right_is_const));
562
563
70
        if (!left_is_const && !right_is_const) {
564
38
            auto col_res = ColumnUInt8::create();
565
566
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
38
            vec_res.resize(col_left->get_data().size());
568
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
38
                              typename PrimitiveTypeTraits<PT>::CppType,
570
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
38
                                                     vec_res);
572
573
38
            block.replace_by_position(result, std::move(col_res));
574
38
        } else if (!left_is_const && right_is_const) {
575
31
            auto col_res = ColumnUInt8::create();
576
577
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
31
            vec_res.resize(col_left->size());
579
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
31
                              typename PrimitiveTypeTraits<PT>::CppType,
581
31
                              Op<PT>>::vector_constant(col_left->get_data(),
582
31
                                                       col_right->get_element(0), vec_res);
583
584
31
            block.replace_by_position(result, std::move(col_res));
585
31
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
70
        return Status::OK();
598
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
554
8
                            const ColumnPtr& col_right_ptr) const {
555
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
8
        DCHECK(!(left_is_const && right_is_const));
562
563
8
        if (!left_is_const && !right_is_const) {
564
8
            auto col_res = ColumnUInt8::create();
565
566
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
8
            vec_res.resize(col_left->get_data().size());
568
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
8
                              typename PrimitiveTypeTraits<PT>::CppType,
570
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
8
                                                     vec_res);
572
573
8
            block.replace_by_position(result, std::move(col_res));
574
8
        } else if (!left_is_const && right_is_const) {
575
0
            auto col_res = ColumnUInt8::create();
576
577
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
0
            vec_res.resize(col_left->size());
579
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
0
                              typename PrimitiveTypeTraits<PT>::CppType,
581
0
                              Op<PT>>::vector_constant(col_left->get_data(),
582
0
                                                       col_right->get_element(0), vec_res);
583
584
0
            block.replace_by_position(result, std::move(col_res));
585
0
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
8
        return Status::OK();
598
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
554
82
                            const ColumnPtr& col_right_ptr) const {
555
82
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
82
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
82
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
82
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
82
        DCHECK(!(left_is_const && right_is_const));
562
563
82
        if (!left_is_const && !right_is_const) {
564
54
            auto col_res = ColumnUInt8::create();
565
566
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
54
            vec_res.resize(col_left->get_data().size());
568
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
54
                              typename PrimitiveTypeTraits<PT>::CppType,
570
54
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
54
                                                     vec_res);
572
573
54
            block.replace_by_position(result, std::move(col_res));
574
54
        } else if (!left_is_const && right_is_const) {
575
28
            auto col_res = ColumnUInt8::create();
576
577
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
28
            vec_res.resize(col_left->size());
579
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
28
                              typename PrimitiveTypeTraits<PT>::CppType,
581
28
                              Op<PT>>::vector_constant(col_left->get_data(),
582
28
                                                       col_right->get_element(0), vec_res);
583
584
28
            block.replace_by_position(result, std::move(col_res));
585
28
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
82
        return Status::OK();
598
82
    }
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
554
1.16k
                            const ColumnPtr& col_right_ptr) const {
555
1.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1.16k
        DCHECK(!(left_is_const && right_is_const));
562
563
1.16k
        if (!left_is_const && !right_is_const) {
564
1.02k
            auto col_res = ColumnUInt8::create();
565
566
1.02k
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
1.02k
            vec_res.resize(col_left->get_data().size());
568
1.02k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
1.02k
                              typename PrimitiveTypeTraits<PT>::CppType,
570
1.02k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
1.02k
                                                     vec_res);
572
573
1.02k
            block.replace_by_position(result, std::move(col_res));
574
1.02k
        } else if (!left_is_const && right_is_const) {
575
139
            auto col_res = ColumnUInt8::create();
576
577
139
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
139
            vec_res.resize(col_left->size());
579
139
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
139
                              typename PrimitiveTypeTraits<PT>::CppType,
581
139
                              Op<PT>>::vector_constant(col_left->get_data(),
582
139
                                                       col_right->get_element(0), vec_res);
583
584
139
            block.replace_by_position(result, std::move(col_res));
585
139
        } else if (left_is_const && !right_is_const) {
586
5
            auto col_res = ColumnUInt8::create();
587
588
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
5
            vec_res.resize(col_right->size());
590
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
5
                              typename PrimitiveTypeTraits<PT>::CppType,
592
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
5
                                                       col_right->get_data(), vec_res);
594
595
5
            block.replace_by_position(result, std::move(col_res));
596
5
        }
597
1.16k
        return Status::OK();
598
1.16k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
1.20k
                            const ColumnPtr& col_right_ptr) const {
555
1.20k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
1.20k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
1.20k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
1.20k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
1.20k
        DCHECK(!(left_is_const && right_is_const));
562
563
1.20k
        if (!left_is_const && !right_is_const) {
564
402
            auto col_res = ColumnUInt8::create();
565
566
402
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
402
            vec_res.resize(col_left->get_data().size());
568
402
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
402
                              typename PrimitiveTypeTraits<PT>::CppType,
570
402
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
402
                                                     vec_res);
572
573
402
            block.replace_by_position(result, std::move(col_res));
574
805
        } else if (!left_is_const && right_is_const) {
575
33
            auto col_res = ColumnUInt8::create();
576
577
33
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
33
            vec_res.resize(col_left->size());
579
33
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
33
                              typename PrimitiveTypeTraits<PT>::CppType,
581
33
                              Op<PT>>::vector_constant(col_left->get_data(),
582
33
                                                       col_right->get_element(0), vec_res);
583
584
33
            block.replace_by_position(result, std::move(col_res));
585
772
        } else if (left_is_const && !right_is_const) {
586
772
            auto col_res = ColumnUInt8::create();
587
588
772
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
772
            vec_res.resize(col_right->size());
590
772
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
772
                              typename PrimitiveTypeTraits<PT>::CppType,
592
772
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
772
                                                       col_right->get_data(), vec_res);
594
595
772
            block.replace_by_position(result, std::move(col_res));
596
772
        }
597
1.20k
        return Status::OK();
598
1.20k
    }
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_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
48
                            const ColumnPtr& col_right_ptr) const {
555
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
48
        DCHECK(!(left_is_const && right_is_const));
562
563
48
        if (!left_is_const && !right_is_const) {
564
20
            auto col_res = ColumnUInt8::create();
565
566
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
20
            vec_res.resize(col_left->get_data().size());
568
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
20
                              typename PrimitiveTypeTraits<PT>::CppType,
570
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
20
                                                     vec_res);
572
573
20
            block.replace_by_position(result, std::move(col_res));
574
28
        } else if (!left_is_const && right_is_const) {
575
28
            auto col_res = ColumnUInt8::create();
576
577
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
28
            vec_res.resize(col_left->size());
579
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
28
                              typename PrimitiveTypeTraits<PT>::CppType,
581
28
                              Op<PT>>::vector_constant(col_left->get_data(),
582
28
                                                       col_right->get_element(0), vec_res);
583
584
28
            block.replace_by_position(result, std::move(col_res));
585
28
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
48
        return Status::OK();
598
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
554
62
                            const ColumnPtr& col_right_ptr) const {
555
62
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
556
62
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
557
558
62
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
559
62
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
560
561
62
        DCHECK(!(left_is_const && right_is_const));
562
563
62
        if (!left_is_const && !right_is_const) {
564
22
            auto col_res = ColumnUInt8::create();
565
566
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
567
22
            vec_res.resize(col_left->get_data().size());
568
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
569
22
                              typename PrimitiveTypeTraits<PT>::CppType,
570
22
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
571
22
                                                     vec_res);
572
573
22
            block.replace_by_position(result, std::move(col_res));
574
40
        } else if (!left_is_const && right_is_const) {
575
40
            auto col_res = ColumnUInt8::create();
576
577
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
578
40
            vec_res.resize(col_left->size());
579
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
580
40
                              typename PrimitiveTypeTraits<PT>::CppType,
581
40
                              Op<PT>>::vector_constant(col_left->get_data(),
582
40
                                                       col_right->get_element(0), vec_res);
583
584
40
            block.replace_by_position(result, std::move(col_res));
585
40
        } else if (left_is_const && !right_is_const) {
586
0
            auto col_res = ColumnUInt8::create();
587
588
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
589
0
            vec_res.resize(col_right->size());
590
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
591
0
                              typename PrimitiveTypeTraits<PT>::CppType,
592
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
593
0
                                                       col_right->get_data(), vec_res);
594
595
0
            block.replace_by_position(result, std::move(col_res));
596
0
        }
597
62
        return Status::OK();
598
62
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
599
600
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
601
3.24k
                           const ColumnWithTypeAndName& col_right) const {
602
3.24k
        auto call = [&](const auto& type) -> bool {
603
3.24k
            using DispatchType = std::decay_t<decltype(type)>;
604
3.24k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
3.24k
                    block, result, col_left, col_right);
606
3.24k
            return true;
607
3.24k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
602
8
        auto call = [&](const auto& type) -> bool {
603
8
            using DispatchType = std::decay_t<decltype(type)>;
604
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
8
                    block, result, col_left, col_right);
606
8
            return true;
607
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
602
66
        auto call = [&](const auto& type) -> bool {
603
66
            using DispatchType = std::decay_t<decltype(type)>;
604
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
66
                    block, result, col_left, col_right);
606
66
            return true;
607
66
        };
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
602
663
        auto call = [&](const auto& type) -> bool {
603
663
            using DispatchType = std::decay_t<decltype(type)>;
604
663
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
663
                    block, result, col_left, col_right);
606
663
            return true;
607
663
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
602
2
        auto call = [&](const auto& type) -> bool {
603
2
            using DispatchType = std::decay_t<decltype(type)>;
604
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
2
                    block, result, col_left, col_right);
606
2
            return true;
607
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
602
4
        auto call = [&](const auto& type) -> bool {
603
4
            using DispatchType = std::decay_t<decltype(type)>;
604
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
4
                    block, result, col_left, col_right);
606
4
            return true;
607
4
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
602
63
        auto call = [&](const auto& type) -> bool {
603
63
            using DispatchType = std::decay_t<decltype(type)>;
604
63
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
63
                    block, result, col_left, col_right);
606
63
            return true;
607
63
        };
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
602
47
        auto call = [&](const auto& type) -> bool {
603
47
            using DispatchType = std::decay_t<decltype(type)>;
604
47
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
47
                    block, result, col_left, col_right);
606
47
            return true;
607
47
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
602
11
        auto call = [&](const auto& type) -> bool {
603
11
            using DispatchType = std::decay_t<decltype(type)>;
604
11
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
11
                    block, result, col_left, col_right);
606
11
            return true;
607
11
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
602
178
        auto call = [&](const auto& type) -> bool {
603
178
            using DispatchType = std::decay_t<decltype(type)>;
604
178
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
178
                    block, result, col_left, col_right);
606
178
            return true;
607
178
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
602
200
        auto call = [&](const auto& type) -> bool {
603
200
            using DispatchType = std::decay_t<decltype(type)>;
604
200
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
200
                    block, result, col_left, col_right);
606
200
            return true;
607
200
        };
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
602
572
        auto call = [&](const auto& type) -> bool {
603
572
            using DispatchType = std::decay_t<decltype(type)>;
604
572
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
572
                    block, result, col_left, col_right);
606
572
            return true;
607
572
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
602
1
        auto call = [&](const auto& type) -> bool {
603
1
            using DispatchType = std::decay_t<decltype(type)>;
604
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
1
                    block, result, col_left, col_right);
606
1
            return true;
607
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
602
8
        auto call = [&](const auto& type) -> bool {
603
8
            using DispatchType = std::decay_t<decltype(type)>;
604
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
8
                    block, result, col_left, col_right);
606
8
            return true;
607
8
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
602
92
        auto call = [&](const auto& type) -> bool {
603
92
            using DispatchType = std::decay_t<decltype(type)>;
604
92
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
92
                    block, result, col_left, col_right);
606
92
            return true;
607
92
        };
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
602
92
        auto call = [&](const auto& type) -> bool {
603
92
            using DispatchType = std::decay_t<decltype(type)>;
604
92
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
92
                    block, result, col_left, col_right);
606
92
            return true;
607
92
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
602
6
        auto call = [&](const auto& type) -> bool {
603
6
            using DispatchType = std::decay_t<decltype(type)>;
604
6
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
6
                    block, result, col_left, col_right);
606
6
            return true;
607
6
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
602
147
        auto call = [&](const auto& type) -> bool {
603
147
            using DispatchType = std::decay_t<decltype(type)>;
604
147
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
147
                    block, result, col_left, col_right);
606
147
            return true;
607
147
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
602
151
        auto call = [&](const auto& type) -> bool {
603
151
            using DispatchType = std::decay_t<decltype(type)>;
604
151
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
151
                    block, result, col_left, col_right);
606
151
            return true;
607
151
        };
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
602
776
        auto call = [&](const auto& type) -> bool {
603
776
            using DispatchType = std::decay_t<decltype(type)>;
604
776
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
776
                    block, result, col_left, col_right);
606
776
            return true;
607
776
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
602
34
        auto call = [&](const auto& type) -> bool {
603
34
            using DispatchType = std::decay_t<decltype(type)>;
604
34
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
34
                    block, result, col_left, col_right);
606
34
            return true;
607
34
        };
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
602
66
        auto call = [&](const auto& type) -> bool {
603
66
            using DispatchType = std::decay_t<decltype(type)>;
604
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
66
                    block, result, col_left, col_right);
606
66
            return true;
607
66
        };
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
602
28
        auto call = [&](const auto& type) -> bool {
603
28
            using DispatchType = std::decay_t<decltype(type)>;
604
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
28
                    block, result, col_left, col_right);
606
28
            return true;
607
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
602
30
        auto call = [&](const auto& type) -> bool {
603
30
            using DispatchType = std::decay_t<decltype(type)>;
604
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
30
                    block, result, col_left, col_right);
606
30
            return true;
607
30
        };
608
609
3.24k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
610
0
            return Status::RuntimeError(
611
0
                    "type of left column {} is not equal to type of right column {}",
612
0
                    col_left.type->get_name(), col_right.type->get_name());
613
0
        }
614
615
3.24k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
616
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
617
0
                                        col_left.type->get_name(), col_right.type->get_name());
618
0
        }
619
3.24k
        return Status::OK();
620
3.24k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
601
740
                           const ColumnWithTypeAndName& col_right) const {
602
740
        auto call = [&](const auto& type) -> bool {
603
740
            using DispatchType = std::decay_t<decltype(type)>;
604
740
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
740
                    block, result, col_left, col_right);
606
740
            return true;
607
740
        };
608
609
740
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
610
0
            return Status::RuntimeError(
611
0
                    "type of left column {} is not equal to type of right column {}",
612
0
                    col_left.type->get_name(), col_right.type->get_name());
613
0
        }
614
615
740
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
616
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
617
0
                                        col_left.type->get_name(), col_right.type->get_name());
618
0
        }
619
740
        return Status::OK();
620
740
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
601
125
                           const ColumnWithTypeAndName& col_right) const {
602
125
        auto call = [&](const auto& type) -> bool {
603
125
            using DispatchType = std::decay_t<decltype(type)>;
604
125
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
125
                    block, result, col_left, col_right);
606
125
            return true;
607
125
        };
608
609
125
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
610
0
            return Status::RuntimeError(
611
0
                    "type of left column {} is not equal to type of right column {}",
612
0
                    col_left.type->get_name(), col_right.type->get_name());
613
0
        }
614
615
125
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
616
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
617
0
                                        col_left.type->get_name(), col_right.type->get_name());
618
0
        }
619
125
        return Status::OK();
620
125
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
601
950
                           const ColumnWithTypeAndName& col_right) const {
602
950
        auto call = [&](const auto& type) -> bool {
603
950
            using DispatchType = std::decay_t<decltype(type)>;
604
950
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
950
                    block, result, col_left, col_right);
606
950
            return true;
607
950
        };
608
609
950
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
610
0
            return Status::RuntimeError(
611
0
                    "type of left column {} is not equal to type of right column {}",
612
0
                    col_left.type->get_name(), col_right.type->get_name());
613
0
        }
614
615
950
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
616
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
617
0
                                        col_left.type->get_name(), col_right.type->get_name());
618
0
        }
619
950
        return Status::OK();
620
950
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
601
198
                           const ColumnWithTypeAndName& col_right) const {
602
198
        auto call = [&](const auto& type) -> bool {
603
198
            using DispatchType = std::decay_t<decltype(type)>;
604
198
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
198
                    block, result, col_left, col_right);
606
198
            return true;
607
198
        };
608
609
198
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
610
0
            return Status::RuntimeError(
611
0
                    "type of left column {} is not equal to type of right column {}",
612
0
                    col_left.type->get_name(), col_right.type->get_name());
613
0
        }
614
615
198
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
616
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
617
0
                                        col_left.type->get_name(), col_right.type->get_name());
618
0
        }
619
198
        return Status::OK();
620
198
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
601
1.10k
                           const ColumnWithTypeAndName& col_right) const {
602
1.10k
        auto call = [&](const auto& type) -> bool {
603
1.10k
            using DispatchType = std::decay_t<decltype(type)>;
604
1.10k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
1.10k
                    block, result, col_left, col_right);
606
1.10k
            return true;
607
1.10k
        };
608
609
1.10k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
610
0
            return Status::RuntimeError(
611
0
                    "type of left column {} is not equal to type of right column {}",
612
0
                    col_left.type->get_name(), col_right.type->get_name());
613
0
        }
614
615
1.10k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
616
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
617
0
                                        col_left.type->get_name(), col_right.type->get_name());
618
0
        }
619
1.10k
        return Status::OK();
620
1.10k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
601
124
                           const ColumnWithTypeAndName& col_right) const {
602
124
        auto call = [&](const auto& type) -> bool {
603
124
            using DispatchType = std::decay_t<decltype(type)>;
604
124
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
605
124
                    block, result, col_left, col_right);
606
124
            return true;
607
124
        };
608
609
124
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
610
0
            return Status::RuntimeError(
611
0
                    "type of left column {} is not equal to type of right column {}",
612
0
                    col_left.type->get_name(), col_right.type->get_name());
613
0
        }
614
615
124
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
616
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
617
0
                                        col_left.type->get_name(), col_right.type->get_name());
618
0
        }
619
124
        return Status::OK();
620
124
    }
621
622
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
623
21.0k
                          const IColumn* c1) const {
624
21.0k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
625
21.0k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
626
21.0k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
627
21.0k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
628
21.0k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
629
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
630
0
                                        c0->get_name(), c1->get_name(), name);
631
0
        }
632
21.0k
        DCHECK(!(c0_const && c1_const));
633
21.0k
        const ColumnString::Chars* c0_const_chars = nullptr;
634
21.0k
        const ColumnString::Chars* c1_const_chars = nullptr;
635
21.0k
        ColumnString::Offset c0_const_size = 0;
636
21.0k
        ColumnString::Offset c1_const_size = 0;
637
638
21.0k
        if (c0_const) {
639
77
            const ColumnString* c0_const_string =
640
77
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
641
642
77
            if (c0_const_string) {
643
77
                c0_const_chars = &c0_const_string->get_chars();
644
77
                c0_const_size = c0_const_string->get_offsets()[0];
645
77
            } else {
646
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
647
0
                                            c0->get_name(), name);
648
0
            }
649
77
        }
650
651
21.0k
        if (c1_const) {
652
20.0k
            const ColumnString* c1_const_string =
653
20.0k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
654
655
20.0k
            if (c1_const_string) {
656
20.0k
                c1_const_chars = &c1_const_string->get_chars();
657
20.0k
                c1_const_size = c1_const_string->get_offsets()[0];
658
20.0k
            } else {
659
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
660
0
                                            c1->get_name(), name);
661
0
            }
662
20.0k
        }
663
664
21.0k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
665
666
21.0k
        auto c_res = ColumnUInt8::create();
667
21.0k
        ColumnUInt8::Container& vec_res = c_res->get_data();
668
21.0k
        vec_res.resize(c0->size());
669
670
21.0k
        if (c0_string && c1_string) {
671
899
            StringImpl::string_vector_string_vector(
672
899
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
673
899
                    c1_string->get_offsets(), vec_res);
674
20.1k
        } else if (c0_string && c1_const) {
675
20.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
676
20.0k
                                               *c1_const_chars, c1_const_size, vec_res);
677
20.0k
        } else if (c0_const && c1_string) {
678
77
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
679
77
                                               c1_string->get_chars(), c1_string->get_offsets(),
680
77
                                               vec_res);
681
18.4E
        } else {
682
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
683
18.4E
                                        c0->get_name(), c1->get_name(), name);
684
18.4E
        }
685
21.0k
        block.replace_by_position(result, std::move(c_res));
686
21.0k
        return Status::OK();
687
21.0k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
623
171
                          const IColumn* c1) const {
624
171
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
625
171
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
626
171
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
627
171
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
628
171
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
629
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
630
0
                                        c0->get_name(), c1->get_name(), name);
631
0
        }
632
171
        DCHECK(!(c0_const && c1_const));
633
171
        const ColumnString::Chars* c0_const_chars = nullptr;
634
171
        const ColumnString::Chars* c1_const_chars = nullptr;
635
171
        ColumnString::Offset c0_const_size = 0;
636
171
        ColumnString::Offset c1_const_size = 0;
637
638
171
        if (c0_const) {
639
0
            const ColumnString* c0_const_string =
640
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
641
642
0
            if (c0_const_string) {
643
0
                c0_const_chars = &c0_const_string->get_chars();
644
0
                c0_const_size = c0_const_string->get_offsets()[0];
645
0
            } else {
646
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
647
0
                                            c0->get_name(), name);
648
0
            }
649
0
        }
650
651
171
        if (c1_const) {
652
169
            const ColumnString* c1_const_string =
653
169
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
654
655
169
            if (c1_const_string) {
656
169
                c1_const_chars = &c1_const_string->get_chars();
657
169
                c1_const_size = c1_const_string->get_offsets()[0];
658
169
            } else {
659
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
660
0
                                            c1->get_name(), name);
661
0
            }
662
169
        }
663
664
171
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
665
666
171
        auto c_res = ColumnUInt8::create();
667
171
        ColumnUInt8::Container& vec_res = c_res->get_data();
668
171
        vec_res.resize(c0->size());
669
670
171
        if (c0_string && c1_string) {
671
2
            StringImpl::string_vector_string_vector(
672
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
673
2
                    c1_string->get_offsets(), vec_res);
674
169
        } else if (c0_string && c1_const) {
675
169
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
676
169
                                               *c1_const_chars, c1_const_size, vec_res);
677
169
        } else if (c0_const && c1_string) {
678
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
679
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
680
0
                                               vec_res);
681
0
        } else {
682
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
683
0
                                        c0->get_name(), c1->get_name(), name);
684
0
        }
685
171
        block.replace_by_position(result, std::move(c_res));
686
171
        return Status::OK();
687
171
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
623
258
                          const IColumn* c1) const {
624
258
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
625
258
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
626
258
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
627
258
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
628
258
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
629
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
630
0
                                        c0->get_name(), c1->get_name(), name);
631
0
        }
632
258
        DCHECK(!(c0_const && c1_const));
633
258
        const ColumnString::Chars* c0_const_chars = nullptr;
634
258
        const ColumnString::Chars* c1_const_chars = nullptr;
635
258
        ColumnString::Offset c0_const_size = 0;
636
258
        ColumnString::Offset c1_const_size = 0;
637
638
258
        if (c0_const) {
639
60
            const ColumnString* c0_const_string =
640
60
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
641
642
60
            if (c0_const_string) {
643
60
                c0_const_chars = &c0_const_string->get_chars();
644
60
                c0_const_size = c0_const_string->get_offsets()[0];
645
60
            } else {
646
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
647
0
                                            c0->get_name(), name);
648
0
            }
649
60
        }
650
651
258
        if (c1_const) {
652
167
            const ColumnString* c1_const_string =
653
167
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
654
655
167
            if (c1_const_string) {
656
167
                c1_const_chars = &c1_const_string->get_chars();
657
167
                c1_const_size = c1_const_string->get_offsets()[0];
658
167
            } else {
659
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
660
0
                                            c1->get_name(), name);
661
0
            }
662
167
        }
663
664
258
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
665
666
258
        auto c_res = ColumnUInt8::create();
667
258
        ColumnUInt8::Container& vec_res = c_res->get_data();
668
258
        vec_res.resize(c0->size());
669
670
258
        if (c0_string && c1_string) {
671
31
            StringImpl::string_vector_string_vector(
672
31
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
673
31
                    c1_string->get_offsets(), vec_res);
674
227
        } else if (c0_string && c1_const) {
675
167
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
676
167
                                               *c1_const_chars, c1_const_size, vec_res);
677
167
        } else if (c0_const && c1_string) {
678
60
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
679
60
                                               c1_string->get_chars(), c1_string->get_offsets(),
680
60
                                               vec_res);
681
60
        } else {
682
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
683
0
                                        c0->get_name(), c1->get_name(), name);
684
0
        }
685
258
        block.replace_by_position(result, std::move(c_res));
686
258
        return Status::OK();
687
258
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
623
500
                          const IColumn* c1) const {
624
500
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
625
500
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
626
500
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
627
500
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
628
500
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
629
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
630
0
                                        c0->get_name(), c1->get_name(), name);
631
0
        }
632
500
        DCHECK(!(c0_const && c1_const));
633
500
        const ColumnString::Chars* c0_const_chars = nullptr;
634
500
        const ColumnString::Chars* c1_const_chars = nullptr;
635
500
        ColumnString::Offset c0_const_size = 0;
636
500
        ColumnString::Offset c1_const_size = 0;
637
638
500
        if (c0_const) {
639
6
            const ColumnString* c0_const_string =
640
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
641
642
6
            if (c0_const_string) {
643
6
                c0_const_chars = &c0_const_string->get_chars();
644
6
                c0_const_size = c0_const_string->get_offsets()[0];
645
6
            } else {
646
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
647
0
                                            c0->get_name(), name);
648
0
            }
649
6
        }
650
651
500
        if (c1_const) {
652
94
            const ColumnString* c1_const_string =
653
94
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
654
655
94
            if (c1_const_string) {
656
94
                c1_const_chars = &c1_const_string->get_chars();
657
94
                c1_const_size = c1_const_string->get_offsets()[0];
658
94
            } else {
659
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
660
0
                                            c1->get_name(), name);
661
0
            }
662
94
        }
663
664
500
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
665
666
500
        auto c_res = ColumnUInt8::create();
667
500
        ColumnUInt8::Container& vec_res = c_res->get_data();
668
500
        vec_res.resize(c0->size());
669
670
500
        if (c0_string && c1_string) {
671
401
            StringImpl::string_vector_string_vector(
672
401
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
673
401
                    c1_string->get_offsets(), vec_res);
674
401
        } else if (c0_string && c1_const) {
675
94
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
676
94
                                               *c1_const_chars, c1_const_size, vec_res);
677
94
        } else if (c0_const && c1_string) {
678
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
679
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
680
6
                                               vec_res);
681
18.4E
        } else {
682
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
683
18.4E
                                        c0->get_name(), c1->get_name(), name);
684
18.4E
        }
685
501
        block.replace_by_position(result, std::move(c_res));
686
501
        return Status::OK();
687
500
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
623
217
                          const IColumn* c1) const {
624
217
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
625
217
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
626
217
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
627
217
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
628
217
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
629
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
630
0
                                        c0->get_name(), c1->get_name(), name);
631
0
        }
632
217
        DCHECK(!(c0_const && c1_const));
633
217
        const ColumnString::Chars* c0_const_chars = nullptr;
634
217
        const ColumnString::Chars* c1_const_chars = nullptr;
635
217
        ColumnString::Offset c0_const_size = 0;
636
217
        ColumnString::Offset c1_const_size = 0;
637
638
217
        if (c0_const) {
639
0
            const ColumnString* c0_const_string =
640
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
641
642
0
            if (c0_const_string) {
643
0
                c0_const_chars = &c0_const_string->get_chars();
644
0
                c0_const_size = c0_const_string->get_offsets()[0];
645
0
            } else {
646
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
647
0
                                            c0->get_name(), name);
648
0
            }
649
0
        }
650
651
217
        if (c1_const) {
652
217
            const ColumnString* c1_const_string =
653
217
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
654
655
217
            if (c1_const_string) {
656
217
                c1_const_chars = &c1_const_string->get_chars();
657
217
                c1_const_size = c1_const_string->get_offsets()[0];
658
217
            } else {
659
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
660
0
                                            c1->get_name(), name);
661
0
            }
662
217
        }
663
664
217
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
665
666
217
        auto c_res = ColumnUInt8::create();
667
217
        ColumnUInt8::Container& vec_res = c_res->get_data();
668
217
        vec_res.resize(c0->size());
669
670
217
        if (c0_string && c1_string) {
671
0
            StringImpl::string_vector_string_vector(
672
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
673
0
                    c1_string->get_offsets(), vec_res);
674
217
        } else if (c0_string && c1_const) {
675
217
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
676
217
                                               *c1_const_chars, c1_const_size, vec_res);
677
217
        } else if (c0_const && c1_string) {
678
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
679
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
680
0
                                               vec_res);
681
0
        } else {
682
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
683
0
                                        c0->get_name(), c1->get_name(), name);
684
0
        }
685
217
        block.replace_by_position(result, std::move(c_res));
686
217
        return Status::OK();
687
217
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
623
19.7k
                          const IColumn* c1) const {
624
19.7k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
625
19.7k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
626
19.7k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
627
19.7k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
628
19.7k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
629
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
630
0
                                        c0->get_name(), c1->get_name(), name);
631
0
        }
632
19.7k
        DCHECK(!(c0_const && c1_const));
633
19.7k
        const ColumnString::Chars* c0_const_chars = nullptr;
634
19.7k
        const ColumnString::Chars* c1_const_chars = nullptr;
635
19.7k
        ColumnString::Offset c0_const_size = 0;
636
19.7k
        ColumnString::Offset c1_const_size = 0;
637
638
19.7k
        if (c0_const) {
639
11
            const ColumnString* c0_const_string =
640
11
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
641
642
11
            if (c0_const_string) {
643
11
                c0_const_chars = &c0_const_string->get_chars();
644
11
                c0_const_size = c0_const_string->get_offsets()[0];
645
11
            } else {
646
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
647
0
                                            c0->get_name(), name);
648
0
            }
649
11
        }
650
651
19.7k
        if (c1_const) {
652
19.3k
            const ColumnString* c1_const_string =
653
19.3k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
654
655
19.3k
            if (c1_const_string) {
656
19.3k
                c1_const_chars = &c1_const_string->get_chars();
657
19.3k
                c1_const_size = c1_const_string->get_offsets()[0];
658
19.3k
            } else {
659
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
660
0
                                            c1->get_name(), name);
661
0
            }
662
19.3k
        }
663
664
19.7k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
665
666
19.7k
        auto c_res = ColumnUInt8::create();
667
19.7k
        ColumnUInt8::Container& vec_res = c_res->get_data();
668
19.7k
        vec_res.resize(c0->size());
669
670
19.7k
        if (c0_string && c1_string) {
671
451
            StringImpl::string_vector_string_vector(
672
451
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
673
451
                    c1_string->get_offsets(), vec_res);
674
19.3k
        } else if (c0_string && c1_const) {
675
19.3k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
676
19.3k
                                               *c1_const_chars, c1_const_size, vec_res);
677
19.3k
        } else if (c0_const && c1_string) {
678
11
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
679
11
                                               c1_string->get_chars(), c1_string->get_offsets(),
680
11
                                               vec_res);
681
18.4E
        } else {
682
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
683
18.4E
                                        c0->get_name(), c1->get_name(), name);
684
18.4E
        }
685
19.7k
        block.replace_by_position(result, std::move(c_res));
686
19.7k
        return Status::OK();
687
19.7k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
623
159
                          const IColumn* c1) const {
624
159
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
625
159
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
626
159
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
627
159
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
628
159
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
629
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
630
0
                                        c0->get_name(), c1->get_name(), name);
631
0
        }
632
159
        DCHECK(!(c0_const && c1_const));
633
159
        const ColumnString::Chars* c0_const_chars = nullptr;
634
159
        const ColumnString::Chars* c1_const_chars = nullptr;
635
159
        ColumnString::Offset c0_const_size = 0;
636
159
        ColumnString::Offset c1_const_size = 0;
637
638
159
        if (c0_const) {
639
0
            const ColumnString* c0_const_string =
640
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
641
642
0
            if (c0_const_string) {
643
0
                c0_const_chars = &c0_const_string->get_chars();
644
0
                c0_const_size = c0_const_string->get_offsets()[0];
645
0
            } else {
646
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
647
0
                                            c0->get_name(), name);
648
0
            }
649
0
        }
650
651
159
        if (c1_const) {
652
145
            const ColumnString* c1_const_string =
653
145
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
654
655
145
            if (c1_const_string) {
656
145
                c1_const_chars = &c1_const_string->get_chars();
657
145
                c1_const_size = c1_const_string->get_offsets()[0];
658
145
            } else {
659
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
660
0
                                            c1->get_name(), name);
661
0
            }
662
145
        }
663
664
159
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
665
666
159
        auto c_res = ColumnUInt8::create();
667
159
        ColumnUInt8::Container& vec_res = c_res->get_data();
668
159
        vec_res.resize(c0->size());
669
670
159
        if (c0_string && c1_string) {
671
14
            StringImpl::string_vector_string_vector(
672
14
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
673
14
                    c1_string->get_offsets(), vec_res);
674
145
        } else if (c0_string && c1_const) {
675
145
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
676
145
                                               *c1_const_chars, c1_const_size, vec_res);
677
145
        } else if (c0_const && c1_string) {
678
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
679
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
680
0
                                               vec_res);
681
0
        } else {
682
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
683
0
                                        c0->get_name(), c1->get_name(), name);
684
0
        }
685
159
        block.replace_by_position(result, std::move(c_res));
686
159
        return Status::OK();
687
159
    }
688
689
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
690
141
                                         const IColumn* c1) const {
691
141
        bool c0_const = is_column_const(*c0);
692
141
        bool c1_const = is_column_const(*c1);
693
694
141
        DCHECK(!(c0_const && c1_const));
695
696
141
        auto c_res = ColumnUInt8::create();
697
141
        ColumnUInt8::Container& vec_res = c_res->get_data();
698
141
        vec_res.resize(c0->size());
699
700
141
        if (c0_const) {
701
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
702
141
        } else if (c1_const) {
703
132
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
704
132
        } else {
705
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
706
9
        }
707
708
141
        block.replace_by_position(result, std::move(c_res));
709
141
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
690
9
                                         const IColumn* c1) const {
691
9
        bool c0_const = is_column_const(*c0);
692
9
        bool c1_const = is_column_const(*c1);
693
694
9
        DCHECK(!(c0_const && c1_const));
695
696
9
        auto c_res = ColumnUInt8::create();
697
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
698
9
        vec_res.resize(c0->size());
699
700
9
        if (c0_const) {
701
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
702
9
        } else if (c1_const) {
703
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
704
8
        } else {
705
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
706
1
        }
707
708
9
        block.replace_by_position(result, std::move(c_res));
709
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
690
42
                                         const IColumn* c1) const {
691
42
        bool c0_const = is_column_const(*c0);
692
42
        bool c1_const = is_column_const(*c1);
693
694
42
        DCHECK(!(c0_const && c1_const));
695
696
42
        auto c_res = ColumnUInt8::create();
697
42
        ColumnUInt8::Container& vec_res = c_res->get_data();
698
42
        vec_res.resize(c0->size());
699
700
42
        if (c0_const) {
701
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
702
42
        } else if (c1_const) {
703
41
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
704
41
        } else {
705
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
706
1
        }
707
708
42
        block.replace_by_position(result, std::move(c_res));
709
42
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
690
11
                                         const IColumn* c1) const {
691
11
        bool c0_const = is_column_const(*c0);
692
11
        bool c1_const = is_column_const(*c1);
693
694
11
        DCHECK(!(c0_const && c1_const));
695
696
11
        auto c_res = ColumnUInt8::create();
697
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
698
11
        vec_res.resize(c0->size());
699
700
11
        if (c0_const) {
701
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
702
11
        } else if (c1_const) {
703
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
704
8
        } else {
705
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
706
3
        }
707
708
11
        block.replace_by_position(result, std::move(c_res));
709
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
690
54
                                         const IColumn* c1) const {
691
54
        bool c0_const = is_column_const(*c0);
692
54
        bool c1_const = is_column_const(*c1);
693
694
54
        DCHECK(!(c0_const && c1_const));
695
696
54
        auto c_res = ColumnUInt8::create();
697
54
        ColumnUInt8::Container& vec_res = c_res->get_data();
698
54
        vec_res.resize(c0->size());
699
700
54
        if (c0_const) {
701
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
702
54
        } else if (c1_const) {
703
54
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
704
54
        } else {
705
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
706
0
        }
707
708
54
        block.replace_by_position(result, std::move(c_res));
709
54
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
690
17
                                         const IColumn* c1) const {
691
17
        bool c0_const = is_column_const(*c0);
692
17
        bool c1_const = is_column_const(*c1);
693
694
17
        DCHECK(!(c0_const && c1_const));
695
696
17
        auto c_res = ColumnUInt8::create();
697
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
698
17
        vec_res.resize(c0->size());
699
700
17
        if (c0_const) {
701
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
702
17
        } else if (c1_const) {
703
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
704
13
        } else {
705
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
706
4
        }
707
708
17
        block.replace_by_position(result, std::move(c_res));
709
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
690
8
                                         const IColumn* c1) const {
691
8
        bool c0_const = is_column_const(*c0);
692
8
        bool c1_const = is_column_const(*c1);
693
694
8
        DCHECK(!(c0_const && c1_const));
695
696
8
        auto c_res = ColumnUInt8::create();
697
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
698
8
        vec_res.resize(c0->size());
699
700
8
        if (c0_const) {
701
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
702
8
        } else if (c1_const) {
703
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
704
8
        } else {
705
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
706
0
        }
707
708
8
        block.replace_by_position(result, std::move(c_res));
709
8
    }
710
711
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
712
141
                           const ColumnWithTypeAndName& c1) const {
713
141
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
714
141
        return Status::OK();
715
141
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
712
9
                           const ColumnWithTypeAndName& c1) const {
713
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
714
9
        return Status::OK();
715
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
712
42
                           const ColumnWithTypeAndName& c1) const {
713
42
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
714
42
        return Status::OK();
715
42
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
712
11
                           const ColumnWithTypeAndName& c1) const {
713
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
714
11
        return Status::OK();
715
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
712
54
                           const ColumnWithTypeAndName& c1) const {
713
54
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
714
54
        return Status::OK();
715
54
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
712
17
                           const ColumnWithTypeAndName& c1) const {
713
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
714
17
        return Status::OK();
715
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
712
8
                           const ColumnWithTypeAndName& c1) const {
713
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
714
8
        return Status::OK();
715
8
    }
716
717
    template <typename TemporalValue>
718
    static int compare_timestamp_ns_with_temporal(const TimeStampNsValue& timestamp,
719
374
                                                  const TemporalValue& temporal) {
720
374
        const auto timestamp_datetime = timestamp.to_datetime();
721
1.52k
        const auto compare_part = [](auto left, auto right) {
722
1.52k
            if (left < right) {
723
136
                return -1;
724
136
            }
725
1.38k
            if (left > right) {
726
154
                return 1;
727
154
            }
728
1.23k
            return 0;
729
1.38k
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIttEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIjiEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
_ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Line
Count
Source
721
39
        const auto compare_part = [](auto left, auto right) {
722
39
            if (left < right) {
723
11
                return -1;
724
11
            }
725
28
            if (left > right) {
726
7
                return 1;
727
7
            }
728
21
            return 0;
729
28
        };
_ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
721
105
        const auto compare_part = [](auto left, auto right) {
722
105
            if (left < right) {
723
2
                return -1;
724
2
            }
725
103
            if (left > right) {
726
0
                return 1;
727
0
            }
728
103
            return 0;
729
103
        };
_ZZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
721
19
        const auto compare_part = [](auto left, auto right) {
722
19
            if (left < right) {
723
2
                return -1;
724
2
            }
725
17
            if (left > right) {
726
9
                return 1;
727
9
            }
728
8
            return 0;
729
17
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIttEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIjiEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
_ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Line
Count
Source
721
24
        const auto compare_part = [](auto left, auto right) {
722
24
            if (left < right) {
723
7
                return -1;
724
7
            }
725
17
            if (left > right) {
726
4
                return 1;
727
4
            }
728
13
            return 0;
729
17
        };
_ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
721
65
        const auto compare_part = [](auto left, auto right) {
722
65
            if (left < right) {
723
0
                return -1;
724
0
            }
725
65
            if (left > right) {
726
3
                return 1;
727
3
            }
728
62
            return 0;
729
65
        };
_ZZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
721
10
        const auto compare_part = [](auto left, auto right) {
722
10
            if (left < right) {
723
0
                return -1;
724
0
            }
725
10
            if (left > right) {
726
5
                return 1;
727
5
            }
728
5
            return 0;
729
10
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIttEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIjiEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Line
Count
Source
721
83
        const auto compare_part = [](auto left, auto right) {
722
83
            if (left < right) {
723
30
                return -1;
724
30
            }
725
53
            if (left > right) {
726
9
                return 1;
727
9
            }
728
44
            return 0;
729
53
        };
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
721
204
        const auto compare_part = [](auto left, auto right) {
722
204
            if (left < right) {
723
2
                return -1;
724
2
            }
725
202
            if (left > right) {
726
11
                return 1;
727
11
            }
728
191
            return 0;
729
202
        };
_ZZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
721
31
        const auto compare_part = [](auto left, auto right) {
722
31
            if (left < right) {
723
1
                return -1;
724
1
            }
725
30
            if (left > right) {
726
14
                return 1;
727
14
            }
728
16
            return 0;
729
30
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIttEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIjiEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
_ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Line
Count
Source
721
24
        const auto compare_part = [](auto left, auto right) {
722
24
            if (left < right) {
723
8
                return -1;
724
8
            }
725
16
            if (left > right) {
726
4
                return 1;
727
4
            }
728
12
            return 0;
729
16
        };
_ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
721
60
        const auto compare_part = [](auto left, auto right) {
722
60
            if (left < right) {
723
2
                return -1;
724
2
            }
725
58
            if (left > right) {
726
0
                return 1;
727
0
            }
728
58
            return 0;
729
58
        };
_ZZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
721
10
        const auto compare_part = [](auto left, auto right) {
722
10
            if (left < right) {
723
0
                return -1;
724
0
            }
725
10
            if (left > right) {
726
5
                return 1;
727
5
            }
728
5
            return 0;
729
10
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIttEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIjiEEDaS9_SC_
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Line
Count
Source
721
12
        const auto compare_part = [](auto left, auto right) {
722
12
            if (left < right) {
723
2
                return -1;
724
2
            }
725
10
            if (left > right) {
726
0
                return 1;
727
0
            }
728
10
            return 0;
729
10
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
721
44
        const auto compare_part = [](auto left, auto right) {
722
44
            if (left < right) {
723
0
                return -1;
724
0
            }
725
44
            if (left > right) {
726
4
                return 1;
727
4
            }
728
40
            return 0;
729
44
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
721
6
        const auto compare_part = [](auto left, auto right) {
722
6
            if (left < right) {
723
0
                return -1;
724
0
            }
725
6
            if (left > right) {
726
2
                return 1;
727
2
            }
728
4
            return 0;
729
6
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Line
Count
Source
721
192
        const auto compare_part = [](auto left, auto right) {
722
192
            if (left < right) {
723
63
                return -1;
724
63
            }
725
129
            if (left > right) {
726
21
                return 1;
727
21
            }
728
108
            return 0;
729
129
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Line
Count
Source
721
506
        const auto compare_part = [](auto left, auto right) {
722
506
            if (left < right) {
723
5
                return -1;
724
5
            }
725
501
            if (left > right) {
726
16
                return 1;
727
16
            }
728
485
            return 0;
729
501
        };
_ZZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
Line
Count
Source
721
87
        const auto compare_part = [](auto left, auto right) {
722
87
            if (left < right) {
723
1
                return -1;
724
1
            }
725
86
            if (left > right) {
726
40
                return 1;
727
40
            }
728
46
            return 0;
729
86
        };
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIttEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhhEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIhtEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_ENKUlS9_T0_E_clIjiEEDaS9_SC_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIttEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIhhEEDaSB_SE_
Unexecuted instantiation: _ZZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_ENKUlSB_T0_E_clIjjEEDaSB_SE_
730
374
        int comparison = compare_part(timestamp_datetime.year(), temporal.year());
731
374
        if (comparison == 0) {
732
208
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
733
208
        }
734
374
        if (comparison == 0) {
735
208
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
736
208
        }
737
374
        if (comparison == 0) {
738
208
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
739
208
        }
740
374
        if (comparison == 0) {
741
187
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
742
187
        }
743
374
        if (comparison == 0) {
744
173
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
745
173
        }
746
374
        if (comparison == 0) {
747
163
            comparison = compare_part(timestamp.nanosecond(), temporal.microsecond() * 1000);
748
163
        }
749
374
        return comparison;
750
374
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
Line
Count
Source
719
39
                                                  const TemporalValue& temporal) {
720
39
        const auto timestamp_datetime = timestamp.to_datetime();
721
39
        const auto compare_part = [](auto left, auto right) {
722
39
            if (left < right) {
723
39
                return -1;
724
39
            }
725
39
            if (left > right) {
726
39
                return 1;
727
39
            }
728
39
            return 0;
729
39
        };
730
39
        int comparison = compare_part(timestamp_datetime.year(), temporal.year());
731
39
        if (comparison == 0) {
732
21
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
733
21
        }
734
39
        if (comparison == 0) {
735
21
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
736
21
        }
737
39
        if (comparison == 0) {
738
21
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
739
21
        }
740
39
        if (comparison == 0) {
741
21
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
742
21
        }
743
39
        if (comparison == 0) {
744
21
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
745
21
        }
746
39
        if (comparison == 0) {
747
19
            comparison = compare_part(timestamp.nanosecond(), temporal.microsecond() * 1000);
748
19
        }
749
39
        return comparison;
750
39
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
Line
Count
Source
719
24
                                                  const TemporalValue& temporal) {
720
24
        const auto timestamp_datetime = timestamp.to_datetime();
721
24
        const auto compare_part = [](auto left, auto right) {
722
24
            if (left < right) {
723
24
                return -1;
724
24
            }
725
24
            if (left > right) {
726
24
                return 1;
727
24
            }
728
24
            return 0;
729
24
        };
730
24
        int comparison = compare_part(timestamp_datetime.year(), temporal.year());
731
24
        if (comparison == 0) {
732
13
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
733
13
        }
734
24
        if (comparison == 0) {
735
13
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
736
13
        }
737
24
        if (comparison == 0) {
738
13
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
739
13
        }
740
24
        if (comparison == 0) {
741
13
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
742
13
        }
743
24
        if (comparison == 0) {
744
13
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
745
13
        }
746
24
        if (comparison == 0) {
747
10
            comparison = compare_part(timestamp.nanosecond(), temporal.microsecond() * 1000);
748
10
        }
749
24
        return comparison;
750
24
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
Line
Count
Source
719
83
                                                  const TemporalValue& temporal) {
720
83
        const auto timestamp_datetime = timestamp.to_datetime();
721
83
        const auto compare_part = [](auto left, auto right) {
722
83
            if (left < right) {
723
83
                return -1;
724
83
            }
725
83
            if (left > right) {
726
83
                return 1;
727
83
            }
728
83
            return 0;
729
83
        };
730
83
        int comparison = compare_part(timestamp_datetime.year(), temporal.year());
731
83
        if (comparison == 0) {
732
44
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
733
44
        }
734
83
        if (comparison == 0) {
735
44
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
736
44
        }
737
83
        if (comparison == 0) {
738
44
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
739
44
        }
740
83
        if (comparison == 0) {
741
38
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
742
38
        }
743
83
        if (comparison == 0) {
744
34
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
745
34
        }
746
83
        if (comparison == 0) {
747
31
            comparison = compare_part(timestamp.nanosecond(), temporal.microsecond() * 1000);
748
31
        }
749
83
        return comparison;
750
83
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
Line
Count
Source
719
24
                                                  const TemporalValue& temporal) {
720
24
        const auto timestamp_datetime = timestamp.to_datetime();
721
24
        const auto compare_part = [](auto left, auto right) {
722
24
            if (left < right) {
723
24
                return -1;
724
24
            }
725
24
            if (left > right) {
726
24
                return 1;
727
24
            }
728
24
            return 0;
729
24
        };
730
24
        int comparison = compare_part(timestamp_datetime.year(), temporal.year());
731
24
        if (comparison == 0) {
732
12
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
733
12
        }
734
24
        if (comparison == 0) {
735
12
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
736
12
        }
737
24
        if (comparison == 0) {
738
12
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
739
12
        }
740
24
        if (comparison == 0) {
741
12
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
742
12
        }
743
24
        if (comparison == 0) {
744
12
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
745
12
        }
746
24
        if (comparison == 0) {
747
10
            comparison = compare_part(timestamp.nanosecond(), temporal.microsecond() * 1000);
748
10
        }
749
24
        return comparison;
750
24
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
Line
Count
Source
719
12
                                                  const TemporalValue& temporal) {
720
12
        const auto timestamp_datetime = timestamp.to_datetime();
721
12
        const auto compare_part = [](auto left, auto right) {
722
12
            if (left < right) {
723
12
                return -1;
724
12
            }
725
12
            if (left > right) {
726
12
                return 1;
727
12
            }
728
12
            return 0;
729
12
        };
730
12
        int comparison = compare_part(timestamp_datetime.year(), temporal.year());
731
12
        if (comparison == 0) {
732
10
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
733
10
        }
734
12
        if (comparison == 0) {
735
10
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
736
10
        }
737
12
        if (comparison == 0) {
738
10
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
739
10
        }
740
12
        if (comparison == 0) {
741
8
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
742
8
        }
743
12
        if (comparison == 0) {
744
6
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
745
6
        }
746
12
        if (comparison == 0) {
747
6
            comparison = compare_part(timestamp.nanosecond(), temporal.microsecond() * 1000);
748
6
        }
749
12
        return comparison;
750
12
    }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
Line
Count
Source
719
192
                                                  const TemporalValue& temporal) {
720
192
        const auto timestamp_datetime = timestamp.to_datetime();
721
192
        const auto compare_part = [](auto left, auto right) {
722
192
            if (left < right) {
723
192
                return -1;
724
192
            }
725
192
            if (left > right) {
726
192
                return 1;
727
192
            }
728
192
            return 0;
729
192
        };
730
192
        int comparison = compare_part(timestamp_datetime.year(), temporal.year());
731
192
        if (comparison == 0) {
732
108
            comparison = compare_part(timestamp_datetime.month(), temporal.month());
733
108
        }
734
192
        if (comparison == 0) {
735
108
            comparison = compare_part(timestamp_datetime.day(), temporal.day());
736
108
        }
737
192
        if (comparison == 0) {
738
108
            comparison = compare_part(timestamp_datetime.hour(), temporal.hour());
739
108
        }
740
192
        if (comparison == 0) {
741
95
            comparison = compare_part(timestamp_datetime.minute(), temporal.minute());
742
95
        }
743
192
        if (comparison == 0) {
744
87
            comparison = compare_part(timestamp_datetime.second(), temporal.second());
745
87
        }
746
192
        if (comparison == 0) {
747
87
            comparison = compare_part(timestamp.nanosecond(), temporal.microsecond() * 1000);
748
87
        }
749
192
        return comparison;
750
192
    }
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_16VecDateTimeValueEEEiRKNS_16TimeStampNsValueERKT_
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_15DateV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
Unexecuted instantiation: _ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE34compare_timestamp_ns_with_temporalINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEEiRKNS_16TimeStampNsValueERKT_
751
752
    template <PrimitiveType TemporalPType, bool timestamp_ns_on_left>
753
    Status execute_timestamp_ns_temporal(FunctionContext* context, Block& block, uint32_t result,
754
                                         const ColumnPtr& left_column,
755
                                         const ColumnPtr& right_column,
756
                                         const DataTypePtr& temporal_type,
757
69
                                         size_t input_rows_count) const {
758
69
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
69
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
69
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
69
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
69
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
69
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
69
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
69
        const auto& timestamps =
766
69
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
69
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
69
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
69
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
69
        auto result_column = ColumnUInt8::create(input_rows_count);
772
69
        auto& result_data = result_column->get_data();
773
443
        for (size_t row = 0; row < input_rows_count; ++row) {
774
374
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
374
            const auto& temporal =
776
374
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
374
            int comparison;
778
374
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
6
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
6
                const auto scale = temporal_type->get_scale();
781
6
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
6
                                          scale)) [[unlikely]] {
783
0
                    return Status::InvalidArgument(
784
0
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
0
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
0
                            context->state()->timezone());
787
0
                }
788
6
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
368
            } else {
790
368
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
368
            }
792
140
            if constexpr (!timestamp_ns_on_left) {
793
140
                comparison = -comparison;
794
140
            }
795
374
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
374
        }
797
69
        block.replace_by_position(result, std::move(result_column));
798
69
        return Status::OK();
799
69
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
7
                                         size_t input_rows_count) const {
758
7
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
7
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
7
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
7
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
7
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
7
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
7
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
7
        const auto& timestamps =
766
7
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
7
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
7
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
7
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
7
        auto result_column = ColumnUInt8::create(input_rows_count);
772
7
        auto& result_data = result_column->get_data();
773
37
        for (size_t row = 0; row < input_rows_count; ++row) {
774
30
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
30
            const auto& temporal =
776
30
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
30
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
30
            } else {
790
30
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
30
            }
792
            if constexpr (!timestamp_ns_on_left) {
793
                comparison = -comparison;
794
            }
795
30
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
30
        }
797
7
        block.replace_by_position(result, std::move(result_column));
798
7
        return Status::OK();
799
7
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
3
                                         size_t input_rows_count) const {
758
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
3
        const auto& timestamps =
766
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
3
        auto result_column = ColumnUInt8::create(input_rows_count);
772
3
        auto& result_data = result_column->get_data();
773
12
        for (size_t row = 0; row < input_rows_count; ++row) {
774
9
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
9
            const auto& temporal =
776
9
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
9
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
9
            } else {
790
9
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
9
            }
792
9
            if constexpr (!timestamp_ns_on_left) {
793
9
                comparison = -comparison;
794
9
            }
795
9
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
9
        }
797
3
        block.replace_by_position(result, std::move(result_column));
798
3
        return Status::OK();
799
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
3
                                         size_t input_rows_count) const {
758
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
3
        const auto& timestamps =
766
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
3
        auto result_column = ColumnUInt8::create(input_rows_count);
772
3
        auto& result_data = result_column->get_data();
773
20
        for (size_t row = 0; row < input_rows_count; ++row) {
774
17
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
17
            const auto& temporal =
776
17
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
17
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
17
            } else {
790
17
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
17
            }
792
            if constexpr (!timestamp_ns_on_left) {
793
                comparison = -comparison;
794
            }
795
17
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
17
        }
797
3
        block.replace_by_position(result, std::move(result_column));
798
3
        return Status::OK();
799
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
1
                                         size_t input_rows_count) const {
758
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
1
        const auto& timestamps =
766
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
1
        auto result_column = ColumnUInt8::create(input_rows_count);
772
1
        auto& result_data = result_column->get_data();
773
8
        for (size_t row = 0; row < input_rows_count; ++row) {
774
7
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
7
            const auto& temporal =
776
7
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
7
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
7
            } else {
790
7
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
7
            }
792
7
            if constexpr (!timestamp_ns_on_left) {
793
7
                comparison = -comparison;
794
7
            }
795
7
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
7
        }
797
1
        block.replace_by_position(result, std::move(result_column));
798
1
        return Status::OK();
799
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
9
                                         size_t input_rows_count) const {
758
9
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
9
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
9
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
9
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
9
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
9
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
9
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
9
        const auto& timestamps =
766
9
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
9
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
9
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
9
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
9
        auto result_column = ColumnUInt8::create(input_rows_count);
772
9
        auto& result_data = result_column->get_data();
773
57
        for (size_t row = 0; row < input_rows_count; ++row) {
774
48
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
48
            const auto& temporal =
776
48
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
48
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
48
            } else {
790
48
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
48
            }
792
            if constexpr (!timestamp_ns_on_left) {
793
                comparison = -comparison;
794
            }
795
48
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
48
        }
797
9
        block.replace_by_position(result, std::move(result_column));
798
9
        return Status::OK();
799
9
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
6
                                         size_t input_rows_count) const {
758
6
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
6
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
6
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
6
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
6
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
6
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
6
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
6
        const auto& timestamps =
766
6
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
6
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
6
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
6
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
6
        auto result_column = ColumnUInt8::create(input_rows_count);
772
6
        auto& result_data = result_column->get_data();
773
41
        for (size_t row = 0; row < input_rows_count; ++row) {
774
35
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
35
            const auto& temporal =
776
35
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
35
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
35
            } else {
790
35
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
35
            }
792
35
            if constexpr (!timestamp_ns_on_left) {
793
35
                comparison = -comparison;
794
35
            }
795
35
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
35
        }
797
6
        block.replace_by_position(result, std::move(result_column));
798
6
        return Status::OK();
799
6
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
3
                                         size_t input_rows_count) const {
758
3
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
3
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
3
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
3
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
3
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
3
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
3
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
3
        const auto& timestamps =
766
3
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
3
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
3
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
3
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
3
        auto result_column = ColumnUInt8::create(input_rows_count);
772
3
        auto& result_data = result_column->get_data();
773
20
        for (size_t row = 0; row < input_rows_count; ++row) {
774
17
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
17
            const auto& temporal =
776
17
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
17
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
17
            } else {
790
17
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
17
            }
792
            if constexpr (!timestamp_ns_on_left) {
793
                comparison = -comparison;
794
            }
795
17
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
17
        }
797
3
        block.replace_by_position(result, std::move(result_column));
798
3
        return Status::OK();
799
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
1
                                         size_t input_rows_count) const {
758
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
1
        const auto& timestamps =
766
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
1
        auto result_column = ColumnUInt8::create(input_rows_count);
772
1
        auto& result_data = result_column->get_data();
773
8
        for (size_t row = 0; row < input_rows_count; ++row) {
774
7
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
7
            const auto& temporal =
776
7
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
7
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
7
            } else {
790
7
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
7
            }
792
7
            if constexpr (!timestamp_ns_on_left) {
793
7
                comparison = -comparison;
794
7
            }
795
7
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
7
        }
797
1
        block.replace_by_position(result, std::move(result_column));
798
1
        return Status::OK();
799
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
1
                                         size_t input_rows_count) const {
758
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
1
        const auto& timestamps =
766
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
1
        auto result_column = ColumnUInt8::create(input_rows_count);
772
1
        auto& result_data = result_column->get_data();
773
7
        for (size_t row = 0; row < input_rows_count; ++row) {
774
6
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
6
            const auto& temporal =
776
6
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
6
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
6
            } else {
790
6
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
6
            }
792
            if constexpr (!timestamp_ns_on_left) {
793
                comparison = -comparison;
794
            }
795
6
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
6
        }
797
1
        block.replace_by_position(result, std::move(result_column));
798
1
        return Status::OK();
799
1
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
1
                                         size_t input_rows_count) const {
758
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
1
        const auto& timestamps =
766
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
1
        auto result_column = ColumnUInt8::create(input_rows_count);
772
1
        auto& result_data = result_column->get_data();
773
7
        for (size_t row = 0; row < input_rows_count; ++row) {
774
6
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
6
            const auto& temporal =
776
6
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
6
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
6
            } else {
790
6
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
6
            }
792
6
            if constexpr (!timestamp_ns_on_left) {
793
6
                comparison = -comparison;
794
6
            }
795
6
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
6
        }
797
1
        block.replace_by_position(result, std::move(result_column));
798
1
        return Status::OK();
799
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
21
                                         size_t input_rows_count) const {
758
21
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
21
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
21
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
21
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
21
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
21
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
21
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
21
        const auto& timestamps =
766
21
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
21
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
21
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
21
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
21
        auto result_column = ColumnUInt8::create(input_rows_count);
772
21
        auto& result_data = result_column->get_data();
773
137
        for (size_t row = 0; row < input_rows_count; ++row) {
774
116
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
116
            const auto& temporal =
776
116
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
116
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
116
            } else {
790
116
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
116
            }
792
            if constexpr (!timestamp_ns_on_left) {
793
                comparison = -comparison;
794
            }
795
116
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
116
        }
797
21
        block.replace_by_position(result, std::move(result_column));
798
21
        return Status::OK();
799
21
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
12
                                         size_t input_rows_count) const {
758
12
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
12
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
12
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
12
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
12
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
12
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
12
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
12
        const auto& timestamps =
766
12
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
12
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
12
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
12
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
12
        auto result_column = ColumnUInt8::create(input_rows_count);
772
12
        auto& result_data = result_column->get_data();
773
82
        for (size_t row = 0; row < input_rows_count; ++row) {
774
70
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
70
            const auto& temporal =
776
70
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
70
            int comparison;
778
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
                const auto scale = temporal_type->get_scale();
781
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
                                          scale)) [[unlikely]] {
783
                    return Status::InvalidArgument(
784
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
                            context->state()->timezone());
787
                }
788
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
70
            } else {
790
70
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
70
            }
792
70
            if constexpr (!timestamp_ns_on_left) {
793
70
                comparison = -comparison;
794
70
            }
795
70
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
70
        }
797
12
        block.replace_by_position(result, std::move(result_column));
798
12
        return Status::OK();
799
12
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Line
Count
Source
757
1
                                         size_t input_rows_count) const {
758
1
        static_assert(TemporalPType == TYPE_DATE || TemporalPType == TYPE_DATEV2 ||
759
1
                      TemporalPType == TYPE_DATETIME || TemporalPType == TYPE_DATETIMEV2 ||
760
1
                      TemporalPType == TYPE_TIMESTAMPTZ);
761
1
        const auto& timestamp_column = timestamp_ns_on_left ? left_column : right_column;
762
1
        const auto& temporal_column = timestamp_ns_on_left ? right_column : left_column;
763
1
        auto [timestamp_unpacked, timestamp_is_const] = unpack_if_const(timestamp_column);
764
1
        auto [temporal_unpacked, temporal_is_const] = unpack_if_const(temporal_column);
765
1
        const auto& timestamps =
766
1
                assert_cast<const ColumnTimeStampNs&>(*timestamp_unpacked).get_data();
767
1
        using TemporalColumn = typename PrimitiveTypeTraits<TemporalPType>::ColumnType;
768
1
        using TemporalValue = typename PrimitiveTypeTraits<TemporalPType>::CppType;
769
1
        const auto& temporals = assert_cast<const TemporalColumn&>(*temporal_unpacked).get_data();
770
771
1
        auto result_column = ColumnUInt8::create(input_rows_count);
772
1
        auto& result_data = result_column->get_data();
773
7
        for (size_t row = 0; row < input_rows_count; ++row) {
774
6
            const auto& timestamp = timestamps[timestamp_is_const ? 0 : row];
775
6
            const auto& temporal =
776
6
                    reinterpret_cast<const TemporalValue&>(temporals[temporal_is_const ? 0 : row]);
777
6
            int comparison;
778
6
            if constexpr (TemporalPType == TYPE_TIMESTAMPTZ) {
779
6
                DateV2Value<DateTimeV2ValueType> local_datetime;
780
6
                const auto scale = temporal_type->get_scale();
781
6
                if (!temporal.to_datetime(local_datetime, context->state()->timezone_obj(), scale,
782
6
                                          scale)) [[unlikely]] {
783
0
                    return Status::InvalidArgument(
784
0
                            "can not compare timestamptz {} with TIMESTAMP_NS in timezone {}",
785
0
                            temporal.to_string(context->state()->timezone_obj(), scale),
786
0
                            context->state()->timezone());
787
0
                }
788
6
                comparison = compare_timestamp_ns_with_temporal(timestamp, local_datetime);
789
            } else {
790
                comparison = compare_timestamp_ns_with_temporal(timestamp, temporal);
791
            }
792
6
            if constexpr (!timestamp_ns_on_left) {
793
6
                comparison = -comparison;
794
6
            }
795
6
            result_data[row] = Op<TYPE_INT>::apply(comparison, 0);
796
6
        }
797
1
        block.replace_by_position(result, std::move(result_column));
798
1
        return Status::OK();
799
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE11ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE25ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE12ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE26ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb1EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE29execute_timestamp_ns_temporalILNS_13PrimitiveTypeE42ELb0EEENS_6StatusEPNS_15FunctionContextERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISC_EESH_RKSt10shared_ptrIKNS_9IDataTypeEEm
800
801
public:
802
176
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
802
31
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
802
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
802
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
802
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
802
51
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
802
29
    String get_name() const override { return name; }
803
804
288k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
804
5.71k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
804
8.22k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
804
3.28k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
804
10.1k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
804
260k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
804
1.20k
    size_t get_number_of_arguments() const override { return 2; }
805
806
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
807
3.65k
                                                const VExprSPtrs& arguments) const override {
808
3.65k
        auto op = comparison_zonemap_detail::op_from_name(name);
809
3.65k
        DORIS_CHECK(op.has_value());
810
3.65k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
811
3.65k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
807
469
                                                const VExprSPtrs& arguments) const override {
808
469
        auto op = comparison_zonemap_detail::op_from_name(name);
809
469
        DORIS_CHECK(op.has_value());
810
469
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
811
469
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
807
289
                                                const VExprSPtrs& arguments) const override {
808
289
        auto op = comparison_zonemap_detail::op_from_name(name);
809
289
        DORIS_CHECK(op.has_value());
810
289
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
811
289
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
807
515
                                                const VExprSPtrs& arguments) const override {
808
515
        auto op = comparison_zonemap_detail::op_from_name(name);
809
515
        DORIS_CHECK(op.has_value());
810
515
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
811
515
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
807
221
                                                const VExprSPtrs& arguments) const override {
808
221
        auto op = comparison_zonemap_detail::op_from_name(name);
809
221
        DORIS_CHECK(op.has_value());
810
221
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
811
221
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
807
1.97k
                                                const VExprSPtrs& arguments) const override {
808
1.97k
        auto op = comparison_zonemap_detail::op_from_name(name);
809
1.97k
        DORIS_CHECK(op.has_value());
810
1.97k
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
811
1.97k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
807
189
                                                const VExprSPtrs& arguments) const override {
808
189
        auto op = comparison_zonemap_detail::op_from_name(name);
809
189
        DORIS_CHECK(op.has_value());
810
189
        return comparison_zonemap_detail::evaluate(ctx, arguments, *op);
811
189
    }
812
813
30.3k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
814
30.3k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
815
0
            return false;
816
0
        }
817
30.3k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
818
30.3k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
819
30.3k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
813
5.97k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
814
5.97k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
815
0
            return false;
816
0
        }
817
5.97k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
818
5.97k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
819
5.97k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
813
3.44k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
814
3.44k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
815
0
            return false;
816
0
        }
817
3.44k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
818
3.44k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
819
3.44k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
813
3.51k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
814
3.51k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
815
0
            return false;
816
0
        }
817
3.51k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
818
3.51k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
819
3.51k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
813
1.64k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
814
1.64k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
815
0
            return false;
816
0
        }
817
1.64k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
818
1.64k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
819
1.64k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
813
14.1k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
814
14.1k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
815
0
            return false;
816
0
        }
817
14.1k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
818
14.1k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
819
14.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
813
1.63k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
814
1.63k
        if (!comparison_zonemap_detail::op_from_name(name).has_value()) {
815
0
            return false;
816
0
        }
817
1.63k
        return comparison_zonemap_detail::can_evaluate(arguments) ||
818
1.63k
               comparison_zonemap_detail::can_evaluate_slot_slot(arguments);
819
1.63k
    }
820
821
    ZoneMapFilterResult evaluate_dictionary_filter(const DictionaryEvalContext& ctx,
822
14
                                                   const VExprSPtrs& arguments) const override {
823
14
        auto op = comparison_zonemap_detail::op_from_name(name);
824
14
        DORIS_CHECK(op.has_value());
825
14
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
826
14
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
822
3
                                                   const VExprSPtrs& arguments) const override {
823
3
        auto op = comparison_zonemap_detail::op_from_name(name);
824
3
        DORIS_CHECK(op.has_value());
825
3
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
826
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
822
7
                                                   const VExprSPtrs& arguments) const override {
823
7
        auto op = comparison_zonemap_detail::op_from_name(name);
824
7
        DORIS_CHECK(op.has_value());
825
7
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
826
7
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
822
4
                                                   const VExprSPtrs& arguments) const override {
823
4
        auto op = comparison_zonemap_detail::op_from_name(name);
824
4
        DORIS_CHECK(op.has_value());
825
4
        return comparison_zonemap_detail::evaluate_dictionary(ctx, arguments, *op);
826
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE26evaluate_dictionary_filterERKNS_12expr_zonemap21DictionaryEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
827
828
147
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
829
147
        auto op = comparison_zonemap_detail::op_from_name(name);
830
147
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
831
147
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
828
94
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
829
94
        auto op = comparison_zonemap_detail::op_from_name(name);
830
94
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
831
94
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
828
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
829
1
        auto op = comparison_zonemap_detail::op_from_name(name);
830
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
831
1
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
828
23
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
829
23
        auto op = comparison_zonemap_detail::op_from_name(name);
830
23
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
831
23
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
828
1
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
829
1
        auto op = comparison_zonemap_detail::op_from_name(name);
830
1
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
831
1
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
828
25
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
829
25
        auto op = comparison_zonemap_detail::op_from_name(name);
830
25
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
831
25
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE30can_evaluate_dictionary_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
828
3
    bool can_evaluate_dictionary_filter(const VExprSPtrs& arguments) const override {
829
3
        auto op = comparison_zonemap_detail::op_from_name(name);
830
3
        return op.has_value() && comparison_zonemap_detail::can_evaluate(arguments);
831
3
    }
832
833
    ZoneMapFilterResult evaluate_bloom_filter(const BloomFilterEvalContext& ctx,
834
19
                                              const VExprSPtrs& arguments) const override {
835
19
        auto op = comparison_zonemap_detail::op_from_name(name);
836
19
        DORIS_CHECK(op.has_value());
837
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
838
19
    }
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
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
Line
Count
Source
834
19
                                              const VExprSPtrs& arguments) const override {
835
19
        auto op = comparison_zonemap_detail::op_from_name(name);
836
19
        DORIS_CHECK(op.has_value());
837
19
        return comparison_zonemap_detail::evaluate_bloom_filter(ctx, arguments, *op);
838
19
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE21evaluate_bloom_filterERKNS_12expr_zonemap22BloomFilterEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISB_EE
839
840
64
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
841
64
        auto op = comparison_zonemap_detail::op_from_name(name);
842
64
        return op == comparison_zonemap_detail::Op::EQ &&
843
64
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
844
64
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
840
28
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
841
28
        auto op = comparison_zonemap_detail::op_from_name(name);
842
28
        return op == comparison_zonemap_detail::Op::EQ &&
843
28
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
844
28
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
840
6
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
841
6
        auto op = comparison_zonemap_detail::op_from_name(name);
842
6
        return op == comparison_zonemap_detail::Op::EQ &&
843
6
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
844
6
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
840
29
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
841
29
        auto op = comparison_zonemap_detail::op_from_name(name);
842
29
        return op == comparison_zonemap_detail::Op::EQ &&
843
29
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
844
29
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE25can_evaluate_bloom_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
840
1
    bool can_evaluate_bloom_filter(const VExprSPtrs& arguments) const override {
841
1
        auto op = comparison_zonemap_detail::op_from_name(name);
842
1
        return op == comparison_zonemap_detail::Op::EQ &&
843
1
               expr_zonemap::can_evaluate_bloom_filter_equality(arguments);
844
1
    }
845
846
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
847
288k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
848
288k
        return std::make_shared<DataTypeUInt8>();
849
288k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
847
5.71k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
848
5.71k
        return std::make_shared<DataTypeUInt8>();
849
5.71k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
847
8.23k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
848
8.23k
        return std::make_shared<DataTypeUInt8>();
849
8.23k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
847
3.28k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
848
3.28k
        return std::make_shared<DataTypeUInt8>();
849
3.28k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
847
10.1k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
848
10.1k
        return std::make_shared<DataTypeUInt8>();
849
10.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
847
259k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
848
259k
        return std::make_shared<DataTypeUInt8>();
849
259k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
847
1.19k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
848
1.19k
        return std::make_shared<DataTypeUInt8>();
849
1.19k
    }
850
851
    Status evaluate_inverted_index(
852
            const ColumnsWithTypeAndName& arguments,
853
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
854
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
855
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
856
1.28k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
857
1.28k
        DCHECK(arguments.size() == 1);
858
1.28k
        DCHECK(data_type_with_names.size() == 1);
859
1.28k
        DCHECK(iterators.size() == 1);
860
1.28k
        auto* iter = iterators[0];
861
1.28k
        auto data_type_with_name = data_type_with_names[0];
862
1.28k
        if (iter == nullptr) {
863
0
            return Status::OK();
864
0
        }
865
1.28k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
866
298
            return Status::OK();
867
298
        }
868
991
        segment_v2::InvertedIndexQueryType query_type;
869
991
        std::string_view name_view(name);
870
991
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
871
689
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
872
689
        } else if (name_view == NameLess::name) {
873
65
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
874
237
        } else if (name_view == NameLessOrEquals::name) {
875
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
876
156
        } else if (name_view == NameGreater::name) {
877
67
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
878
93
        } else if (name_view == NameGreaterOrEquals::name) {
879
93
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
880
18.4E
        } else {
881
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
882
18.4E
        }
883
884
995
        if (segment_v2::is_range_query(query_type) &&
885
995
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
886
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
887
133
            return Status::OK();
888
133
        }
889
862
        Field param_value;
890
862
        arguments[0].column->get(0, param_value);
891
862
        if (param_value.is_null()) {
892
2
            return Status::OK();
893
2
        }
894
860
        segment_v2::InvertedIndexParam param;
895
860
        param.column_name = data_type_with_name.first;
896
860
        param.column_type = data_type_with_name.second;
897
860
        param.query_value = param_value;
898
860
        param.query_type = query_type;
899
860
        param.num_rows = num_rows;
900
860
        param.roaring = std::make_shared<roaring::Roaring>();
901
860
        param.analyzer_ctx = analyzer_ctx;
902
860
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
903
718
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
904
718
        if (iter->has_null()) {
905
717
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
906
717
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
907
717
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
908
717
        }
909
718
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
910
718
        bitmap_result = result;
911
718
        bitmap_result.mask_out_null();
912
913
718
        if (name_view == NameNotEquals::name) {
914
55
            roaring::Roaring full_result;
915
55
            full_result.addRange(0, num_rows);
916
55
            bitmap_result.op_not(&full_result);
917
55
        }
918
919
718
        return Status::OK();
920
718
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
856
106
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
857
106
        DCHECK(arguments.size() == 1);
858
106
        DCHECK(data_type_with_names.size() == 1);
859
106
        DCHECK(iterators.size() == 1);
860
106
        auto* iter = iterators[0];
861
106
        auto data_type_with_name = data_type_with_names[0];
862
106
        if (iter == nullptr) {
863
0
            return Status::OK();
864
0
        }
865
106
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
866
39
            return Status::OK();
867
39
        }
868
67
        segment_v2::InvertedIndexQueryType query_type;
869
67
        std::string_view name_view(name);
870
67
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
871
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
872
67
        } else if (name_view == NameLess::name) {
873
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
874
67
        } else if (name_view == NameLessOrEquals::name) {
875
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
876
67
        } else if (name_view == NameGreater::name) {
877
67
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
878
67
        } else if (name_view == NameGreaterOrEquals::name) {
879
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
880
0
        } else {
881
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
882
0
        }
883
884
67
        if (segment_v2::is_range_query(query_type) &&
885
67
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
886
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
887
17
            return Status::OK();
888
17
        }
889
50
        Field param_value;
890
50
        arguments[0].column->get(0, param_value);
891
50
        if (param_value.is_null()) {
892
0
            return Status::OK();
893
0
        }
894
50
        segment_v2::InvertedIndexParam param;
895
50
        param.column_name = data_type_with_name.first;
896
50
        param.column_type = data_type_with_name.second;
897
50
        param.query_value = param_value;
898
50
        param.query_type = query_type;
899
50
        param.num_rows = num_rows;
900
50
        param.roaring = std::make_shared<roaring::Roaring>();
901
50
        param.analyzer_ctx = analyzer_ctx;
902
50
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
903
31
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
904
31
        if (iter->has_null()) {
905
31
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
906
31
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
907
31
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
908
31
        }
909
31
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
910
31
        bitmap_result = result;
911
31
        bitmap_result.mask_out_null();
912
913
31
        if (name_view == NameNotEquals::name) {
914
0
            roaring::Roaring full_result;
915
0
            full_result.addRange(0, num_rows);
916
0
            bitmap_result.op_not(&full_result);
917
0
        }
918
919
31
        return Status::OK();
920
31
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
856
179
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
857
179
        DCHECK(arguments.size() == 1);
858
179
        DCHECK(data_type_with_names.size() == 1);
859
179
        DCHECK(iterators.size() == 1);
860
179
        auto* iter = iterators[0];
861
179
        auto data_type_with_name = data_type_with_names[0];
862
179
        if (iter == nullptr) {
863
0
            return Status::OK();
864
0
        }
865
179
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
866
86
            return Status::OK();
867
86
        }
868
93
        segment_v2::InvertedIndexQueryType query_type;
869
93
        std::string_view name_view(name);
870
93
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
871
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
872
93
        } else if (name_view == NameLess::name) {
873
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
874
93
        } else if (name_view == NameLessOrEquals::name) {
875
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
876
93
        } else if (name_view == NameGreater::name) {
877
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
878
93
        } else if (name_view == NameGreaterOrEquals::name) {
879
93
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
880
93
        } else {
881
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
882
0
        }
883
884
93
        if (segment_v2::is_range_query(query_type) &&
885
93
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
886
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
887
47
            return Status::OK();
888
47
        }
889
46
        Field param_value;
890
46
        arguments[0].column->get(0, param_value);
891
46
        if (param_value.is_null()) {
892
0
            return Status::OK();
893
0
        }
894
46
        segment_v2::InvertedIndexParam param;
895
46
        param.column_name = data_type_with_name.first;
896
46
        param.column_type = data_type_with_name.second;
897
46
        param.query_value = param_value;
898
46
        param.query_type = query_type;
899
46
        param.num_rows = num_rows;
900
46
        param.roaring = std::make_shared<roaring::Roaring>();
901
46
        param.analyzer_ctx = analyzer_ctx;
902
46
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
903
5
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
904
5
        if (iter->has_null()) {
905
5
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
906
5
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
907
5
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
908
5
        }
909
5
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
910
5
        bitmap_result = result;
911
5
        bitmap_result.mask_out_null();
912
913
5
        if (name_view == NameNotEquals::name) {
914
0
            roaring::Roaring full_result;
915
0
            full_result.addRange(0, num_rows);
916
0
            bitmap_result.op_not(&full_result);
917
0
        }
918
919
5
        return Status::OK();
920
5
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
856
108
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
857
108
        DCHECK(arguments.size() == 1);
858
108
        DCHECK(data_type_with_names.size() == 1);
859
108
        DCHECK(iterators.size() == 1);
860
108
        auto* iter = iterators[0];
861
108
        auto data_type_with_name = data_type_with_names[0];
862
108
        if (iter == nullptr) {
863
0
            return Status::OK();
864
0
        }
865
108
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
866
43
            return Status::OK();
867
43
        }
868
65
        segment_v2::InvertedIndexQueryType query_type;
869
65
        std::string_view name_view(name);
870
65
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
871
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
872
65
        } else if (name_view == NameLess::name) {
873
65
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
874
65
        } else if (name_view == NameLessOrEquals::name) {
875
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
876
0
        } else if (name_view == NameGreater::name) {
877
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
878
0
        } else if (name_view == NameGreaterOrEquals::name) {
879
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
880
0
        } else {
881
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
882
0
        }
883
884
65
        if (segment_v2::is_range_query(query_type) &&
885
65
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
886
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
887
18
            return Status::OK();
888
18
        }
889
47
        Field param_value;
890
47
        arguments[0].column->get(0, param_value);
891
47
        if (param_value.is_null()) {
892
0
            return Status::OK();
893
0
        }
894
47
        segment_v2::InvertedIndexParam param;
895
47
        param.column_name = data_type_with_name.first;
896
47
        param.column_type = data_type_with_name.second;
897
47
        param.query_value = param_value;
898
47
        param.query_type = query_type;
899
47
        param.num_rows = num_rows;
900
47
        param.roaring = std::make_shared<roaring::Roaring>();
901
47
        param.analyzer_ctx = analyzer_ctx;
902
47
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
903
29
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
904
29
        if (iter->has_null()) {
905
29
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
906
29
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
907
29
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
908
29
        }
909
29
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
910
29
        bitmap_result = result;
911
29
        bitmap_result.mask_out_null();
912
913
29
        if (name_view == NameNotEquals::name) {
914
0
            roaring::Roaring full_result;
915
0
            full_result.addRange(0, num_rows);
916
0
            bitmap_result.op_not(&full_result);
917
0
        }
918
919
29
        return Status::OK();
920
29
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
856
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
857
175
        DCHECK(arguments.size() == 1);
858
175
        DCHECK(data_type_with_names.size() == 1);
859
175
        DCHECK(iterators.size() == 1);
860
175
        auto* iter = iterators[0];
861
175
        auto data_type_with_name = data_type_with_names[0];
862
175
        if (iter == nullptr) {
863
0
            return Status::OK();
864
0
        }
865
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
866
94
            return Status::OK();
867
94
        }
868
81
        segment_v2::InvertedIndexQueryType query_type;
869
81
        std::string_view name_view(name);
870
81
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
871
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
872
81
        } else if (name_view == NameLess::name) {
873
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
874
81
        } else if (name_view == NameLessOrEquals::name) {
875
81
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
876
81
        } else if (name_view == NameGreater::name) {
877
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
878
0
        } else if (name_view == NameGreaterOrEquals::name) {
879
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
880
0
        } else {
881
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
882
0
        }
883
884
81
        if (segment_v2::is_range_query(query_type) &&
885
81
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
886
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
887
51
            return Status::OK();
888
51
        }
889
30
        Field param_value;
890
30
        arguments[0].column->get(0, param_value);
891
30
        if (param_value.is_null()) {
892
0
            return Status::OK();
893
0
        }
894
30
        segment_v2::InvertedIndexParam param;
895
30
        param.column_name = data_type_with_name.first;
896
30
        param.column_type = data_type_with_name.second;
897
30
        param.query_value = param_value;
898
30
        param.query_type = query_type;
899
30
        param.num_rows = num_rows;
900
30
        param.roaring = std::make_shared<roaring::Roaring>();
901
30
        param.analyzer_ctx = analyzer_ctx;
902
30
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
903
9
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
904
9
        if (iter->has_null()) {
905
9
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
906
9
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
907
9
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
908
9
        }
909
9
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
910
9
        bitmap_result = result;
911
9
        bitmap_result.mask_out_null();
912
913
9
        if (name_view == NameNotEquals::name) {
914
0
            roaring::Roaring full_result;
915
0
            full_result.addRange(0, num_rows);
916
0
            bitmap_result.op_not(&full_result);
917
0
        }
918
919
9
        return Status::OK();
920
9
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
856
653
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
857
653
        DCHECK(arguments.size() == 1);
858
653
        DCHECK(data_type_with_names.size() == 1);
859
653
        DCHECK(iterators.size() == 1);
860
653
        auto* iter = iterators[0];
861
653
        auto data_type_with_name = data_type_with_names[0];
862
653
        if (iter == nullptr) {
863
0
            return Status::OK();
864
0
        }
865
653
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
866
30
            return Status::OK();
867
30
        }
868
623
        segment_v2::InvertedIndexQueryType query_type;
869
623
        std::string_view name_view(name);
870
626
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
871
626
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
872
18.4E
        } else if (name_view == NameLess::name) {
873
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
874
18.4E
        } else if (name_view == NameLessOrEquals::name) {
875
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
876
18.4E
        } else if (name_view == NameGreater::name) {
877
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
878
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
879
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
880
18.4E
        } else {
881
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
882
18.4E
        }
883
884
626
        if (segment_v2::is_range_query(query_type) &&
885
626
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
886
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
887
0
            return Status::OK();
888
0
        }
889
626
        Field param_value;
890
626
        arguments[0].column->get(0, param_value);
891
626
        if (param_value.is_null()) {
892
2
            return Status::OK();
893
2
        }
894
624
        segment_v2::InvertedIndexParam param;
895
624
        param.column_name = data_type_with_name.first;
896
624
        param.column_type = data_type_with_name.second;
897
624
        param.query_value = param_value;
898
624
        param.query_type = query_type;
899
624
        param.num_rows = num_rows;
900
624
        param.roaring = std::make_shared<roaring::Roaring>();
901
624
        param.analyzer_ctx = analyzer_ctx;
902
624
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
903
588
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
904
588
        if (iter->has_null()) {
905
588
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
906
588
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
907
588
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
908
588
        }
909
588
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
910
588
        bitmap_result = result;
911
588
        bitmap_result.mask_out_null();
912
913
588
        if (name_view == NameNotEquals::name) {
914
0
            roaring::Roaring full_result;
915
0
            full_result.addRange(0, num_rows);
916
0
            bitmap_result.op_not(&full_result);
917
0
        }
918
919
588
        return Status::OK();
920
588
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
856
68
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
857
68
        DCHECK(arguments.size() == 1);
858
68
        DCHECK(data_type_with_names.size() == 1);
859
68
        DCHECK(iterators.size() == 1);
860
68
        auto* iter = iterators[0];
861
68
        auto data_type_with_name = data_type_with_names[0];
862
68
        if (iter == nullptr) {
863
0
            return Status::OK();
864
0
        }
865
68
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
866
6
            return Status::OK();
867
6
        }
868
62
        segment_v2::InvertedIndexQueryType query_type;
869
62
        std::string_view name_view(name);
870
63
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
871
63
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
872
18.4E
        } else if (name_view == NameLess::name) {
873
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
874
18.4E
        } else if (name_view == NameLessOrEquals::name) {
875
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
876
18.4E
        } else if (name_view == NameGreater::name) {
877
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
878
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
879
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
880
18.4E
        } else {
881
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
882
18.4E
        }
883
884
63
        if (segment_v2::is_range_query(query_type) &&
885
63
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
886
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
887
0
            return Status::OK();
888
0
        }
889
63
        Field param_value;
890
63
        arguments[0].column->get(0, param_value);
891
63
        if (param_value.is_null()) {
892
0
            return Status::OK();
893
0
        }
894
63
        segment_v2::InvertedIndexParam param;
895
63
        param.column_name = data_type_with_name.first;
896
63
        param.column_type = data_type_with_name.second;
897
63
        param.query_value = param_value;
898
63
        param.query_type = query_type;
899
63
        param.num_rows = num_rows;
900
63
        param.roaring = std::make_shared<roaring::Roaring>();
901
63
        param.analyzer_ctx = analyzer_ctx;
902
63
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
903
56
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
904
56
        if (iter->has_null()) {
905
55
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
906
55
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
907
55
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
908
55
        }
909
56
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
910
56
        bitmap_result = result;
911
56
        bitmap_result.mask_out_null();
912
913
56
        if (name_view == NameNotEquals::name) {
914
55
            roaring::Roaring full_result;
915
55
            full_result.addRange(0, num_rows);
916
55
            bitmap_result.op_not(&full_result);
917
55
        }
918
919
56
        return Status::OK();
920
56
    }
921
922
    // Keep all primitive-type pairs in one dispatch point so every comparison operator shares the
923
    // same mixed TIMESTAMP_NS semantics.
924
    // NOLINTNEXTLINE(readability-function-size)
925
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
926
133k
                        uint32_t result, size_t input_rows_count) const override {
927
133k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
928
133k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
929
930
133k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
931
133k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
932
133k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
933
133k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
934
935
133k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
936
133k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
937
938
133k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                             \
939
669k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                    \
940
669k
        right_type->get_primitive_type() == TYPE) {                                                \
941
44
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,     \
942
44
                                                         col_right_ptr, right_type,                \
943
44
                                                         input_rows_count);                        \
944
44
    }                                                                                              \
945
669k
    if (left_type->get_primitive_type() == TYPE &&                                                 \
946
669k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                   \
947
25
        return execute_timestamp_ns_temporal<TYPE, false>(                                         \
948
25
                context, block, result, col_left_ptr, col_right_ptr, left_type, input_rows_count); \
949
25
    }
950
951
133k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
952
267k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
953
267k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
954
267k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
955
267k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
956
957
133k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
958
959
        /// The case when arguments are the same (tautological comparison). Return constant.
960
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
961
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
962
133k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
963
133k
            col_left_untyped == col_right_untyped) {
964
            /// Always true: =, <=, >=
965
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
966
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
967
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
968
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
969
0
                block.get_by_position(result).column =
970
0
                        DataTypeUInt8()
971
0
                                .create_column_const(input_rows_count,
972
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
973
0
                                ->convert_to_full_column_if_const();
974
0
                return Status::OK();
975
0
            } else {
976
0
                block.get_by_position(result).column =
977
0
                        DataTypeUInt8()
978
0
                                .create_column_const(input_rows_count,
979
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
980
0
                                ->convert_to_full_column_if_const();
981
0
                return Status::OK();
982
0
            }
983
0
        }
984
985
243k
        auto can_compare = [](PrimitiveType t) -> bool {
986
243k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
243k
                   is_timestamp_ns_type(t);
988
243k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
985
150k
        auto can_compare = [](PrimitiveType t) -> bool {
986
150k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
150k
                   is_timestamp_ns_type(t);
988
150k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
985
6.00k
        auto can_compare = [](PrimitiveType t) -> bool {
986
6.00k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
6.00k
                   is_timestamp_ns_type(t);
988
6.00k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
985
17.3k
        auto can_compare = [](PrimitiveType t) -> bool {
986
17.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
17.3k
                   is_timestamp_ns_type(t);
988
17.3k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
985
16.2k
        auto can_compare = [](PrimitiveType t) -> bool {
986
16.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
16.2k
                   is_timestamp_ns_type(t);
988
16.2k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
985
47.8k
        auto can_compare = [](PrimitiveType t) -> bool {
986
47.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
47.8k
                   is_timestamp_ns_type(t);
988
47.8k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
985
5.57k
        auto can_compare = [](PrimitiveType t) -> bool {
986
5.57k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
5.57k
                   is_timestamp_ns_type(t);
988
5.57k
        };
989
990
133k
        if (can_compare(left_type->get_primitive_type()) &&
991
133k
            can_compare(right_type->get_primitive_type())) {
992
            // check left type equals right type TODO: remove this after FE is aware of scales difference
993
109k
            if (!left_type->equals_ignore_precision(*right_type)) {
994
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
995
0
                                            get_name(), left_type->get_name(),
996
0
                                            right_type->get_name());
997
0
            }
998
109k
        }
999
1000
133k
        auto compare_type = left_type->get_primitive_type();
1001
133k
        switch (compare_type) {
1002
262
        case TYPE_BOOLEAN:
1003
262
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1004
5.31k
        case TYPE_DATEV2:
1005
5.31k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1006
955
        case TYPE_DATETIMEV2:
1007
955
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1008
904
        case TYPE_TIMESTAMP_NS:
1009
904
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1010
7
        case TYPE_TIMESTAMPTZ:
1011
7
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1012
9.82k
        case TYPE_TINYINT:
1013
9.82k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1014
2.60k
        case TYPE_SMALLINT:
1015
2.60k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1016
78.2k
        case TYPE_INT:
1017
78.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1018
8.14k
        case TYPE_BIGINT:
1019
8.14k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1020
663
        case TYPE_LARGEINT:
1021
663
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1022
46
        case TYPE_IPV4:
1023
46
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1024
46
        case TYPE_IPV6:
1025
46
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1026
552
        case TYPE_FLOAT:
1027
552
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1028
1.87k
        case TYPE_DOUBLE:
1029
1.87k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1030
4
        case TYPE_TIMEV2:
1031
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1032
0
        case TYPE_DECIMALV2:
1033
345
        case TYPE_DECIMAL32:
1034
983
        case TYPE_DECIMAL64:
1035
3.15k
        case TYPE_DECIMAL128I:
1036
3.24k
        case TYPE_DECIMAL256:
1037
3.24k
            return execute_decimal(block, result, col_with_type_and_name_left,
1038
3.24k
                                   col_with_type_and_name_right);
1039
1.00k
        case TYPE_CHAR:
1040
7.40k
        case TYPE_VARCHAR:
1041
21.0k
        case TYPE_STRING:
1042
21.0k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1043
141
        default:
1044
141
            return execute_generic(block, result, col_with_type_and_name_left,
1045
141
                                   col_with_type_and_name_right);
1046
133k
        }
1047
0
        return Status::OK();
1048
133k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
926
75.6k
                        uint32_t result, size_t input_rows_count) const override {
927
75.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
928
75.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
929
930
75.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
931
75.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
932
75.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
933
75.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
934
935
75.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
936
75.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
937
938
75.6k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                             \
939
75.6k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                    \
940
75.6k
        right_type->get_primitive_type() == TYPE) {                                                \
941
75.6k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,     \
942
75.6k
                                                         col_right_ptr, right_type,                \
943
75.6k
                                                         input_rows_count);                        \
944
75.6k
    }                                                                                              \
945
75.6k
    if (left_type->get_primitive_type() == TYPE &&                                                 \
946
75.6k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                   \
947
75.6k
        return execute_timestamp_ns_temporal<TYPE, false>(                                         \
948
75.6k
                context, block, result, col_left_ptr, col_right_ptr, left_type, input_rows_count); \
949
75.6k
    }
950
951
75.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
952
151k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
953
151k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
954
151k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
955
151k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
956
957
75.6k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
958
959
        /// The case when arguments are the same (tautological comparison). Return constant.
960
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
961
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
962
75.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
963
75.6k
            col_left_untyped == col_right_untyped) {
964
            /// Always true: =, <=, >=
965
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
966
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
967
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
968
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
969
                block.get_by_position(result).column =
970
                        DataTypeUInt8()
971
                                .create_column_const(input_rows_count,
972
                                                     Field::create_field<TYPE_BOOLEAN>(1))
973
                                ->convert_to_full_column_if_const();
974
                return Status::OK();
975
0
            } else {
976
0
                block.get_by_position(result).column =
977
0
                        DataTypeUInt8()
978
0
                                .create_column_const(input_rows_count,
979
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
980
0
                                ->convert_to_full_column_if_const();
981
0
                return Status::OK();
982
0
            }
983
0
        }
984
985
0
        auto can_compare = [](PrimitiveType t) -> bool {
986
75.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
75.6k
                   is_timestamp_ns_type(t);
988
75.6k
        };
989
990
75.6k
        if (can_compare(left_type->get_primitive_type()) &&
991
75.6k
            can_compare(right_type->get_primitive_type())) {
992
            // check left type equals right type TODO: remove this after FE is aware of scales difference
993
74.7k
            if (!left_type->equals_ignore_precision(*right_type)) {
994
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
995
0
                                            get_name(), left_type->get_name(),
996
0
                                            right_type->get_name());
997
0
            }
998
74.7k
        }
999
1000
75.6k
        auto compare_type = left_type->get_primitive_type();
1001
75.6k
        switch (compare_type) {
1002
0
        case TYPE_BOOLEAN:
1003
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1004
1.25k
        case TYPE_DATEV2:
1005
1.25k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1006
2
        case TYPE_DATETIMEV2:
1007
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1008
63
        case TYPE_TIMESTAMP_NS:
1009
63
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1010
1
        case TYPE_TIMESTAMPTZ:
1011
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1012
1.29k
        case TYPE_TINYINT:
1013
1.29k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1014
1.80k
        case TYPE_SMALLINT:
1015
1.80k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1016
66.9k
        case TYPE_INT:
1017
66.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1018
2.35k
        case TYPE_BIGINT:
1019
2.35k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1020
247
        case TYPE_LARGEINT:
1021
247
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1022
4
        case TYPE_IPV4:
1023
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1024
1
        case TYPE_IPV6:
1025
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1026
219
        case TYPE_FLOAT:
1027
219
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1028
525
        case TYPE_DOUBLE:
1029
525
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1030
0
        case TYPE_TIMEV2:
1031
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1032
0
        case TYPE_DECIMALV2:
1033
8
        case TYPE_DECIMAL32:
1034
74
        case TYPE_DECIMAL64:
1035
737
        case TYPE_DECIMAL128I:
1036
739
        case TYPE_DECIMAL256:
1037
739
            return execute_decimal(block, result, col_with_type_and_name_left,
1038
739
                                   col_with_type_and_name_right);
1039
14
        case TYPE_CHAR:
1040
76
        case TYPE_VARCHAR:
1041
171
        case TYPE_STRING:
1042
171
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1043
9
        default:
1044
9
            return execute_generic(block, result, col_with_type_and_name_left,
1045
9
                                   col_with_type_and_name_right);
1046
75.6k
        }
1047
0
        return Status::OK();
1048
75.6k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
926
3.19k
                        uint32_t result, size_t input_rows_count) const override {
927
3.19k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
928
3.19k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
929
930
3.19k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
931
3.19k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
932
3.19k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
933
3.19k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
934
935
3.19k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
936
3.19k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
937
938
3.19k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                             \
939
3.19k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                    \
940
3.19k
        right_type->get_primitive_type() == TYPE) {                                                \
941
3.19k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,     \
942
3.19k
                                                         col_right_ptr, right_type,                \
943
3.19k
                                                         input_rows_count);                        \
944
3.19k
    }                                                                                              \
945
3.19k
    if (left_type->get_primitive_type() == TYPE &&                                                 \
946
3.19k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                   \
947
3.19k
        return execute_timestamp_ns_temporal<TYPE, false>(                                         \
948
3.19k
                context, block, result, col_left_ptr, col_right_ptr, left_type, input_rows_count); \
949
3.19k
    }
950
951
3.19k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
952
6.39k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
953
6.39k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
954
6.39k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
955
6.39k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
956
957
3.19k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
958
959
        /// The case when arguments are the same (tautological comparison). Return constant.
960
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
961
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
962
3.19k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
963
3.19k
            col_left_untyped == col_right_untyped) {
964
            /// Always true: =, <=, >=
965
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
966
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
967
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
968
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
969
0
                block.get_by_position(result).column =
970
0
                        DataTypeUInt8()
971
0
                                .create_column_const(input_rows_count,
972
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
973
0
                                ->convert_to_full_column_if_const();
974
0
                return Status::OK();
975
            } else {
976
                block.get_by_position(result).column =
977
                        DataTypeUInt8()
978
                                .create_column_const(input_rows_count,
979
                                                     Field::create_field<TYPE_BOOLEAN>(0))
980
                                ->convert_to_full_column_if_const();
981
                return Status::OK();
982
            }
983
0
        }
984
985
0
        auto can_compare = [](PrimitiveType t) -> bool {
986
3.19k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
3.19k
                   is_timestamp_ns_type(t);
988
3.19k
        };
989
990
3.19k
        if (can_compare(left_type->get_primitive_type()) &&
991
3.19k
            can_compare(right_type->get_primitive_type())) {
992
            // check left type equals right type TODO: remove this after FE is aware of scales difference
993
2.81k
            if (!left_type->equals_ignore_precision(*right_type)) {
994
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
995
0
                                            get_name(), left_type->get_name(),
996
0
                                            right_type->get_name());
997
0
            }
998
2.81k
        }
999
1000
3.19k
        auto compare_type = left_type->get_primitive_type();
1001
3.19k
        switch (compare_type) {
1002
24
        case TYPE_BOOLEAN:
1003
24
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1004
491
        case TYPE_DATEV2:
1005
491
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1006
118
        case TYPE_DATETIMEV2:
1007
118
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1008
404
        case TYPE_TIMESTAMP_NS:
1009
404
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1010
1
        case TYPE_TIMESTAMPTZ:
1011
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1012
70
        case TYPE_TINYINT:
1013
70
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1014
92
        case TYPE_SMALLINT:
1015
92
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1016
684
        case TYPE_INT:
1017
684
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1018
696
        case TYPE_BIGINT:
1019
696
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1020
28
        case TYPE_LARGEINT:
1021
28
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1022
1
        case TYPE_IPV4:
1023
1
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1024
1
        case TYPE_IPV6:
1025
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1026
24
        case TYPE_FLOAT:
1027
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1028
135
        case TYPE_DOUBLE:
1029
135
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1030
0
        case TYPE_TIMEV2:
1031
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1032
0
        case TYPE_DECIMALV2:
1033
4
        case TYPE_DECIMAL32:
1034
67
        case TYPE_DECIMAL64:
1035
114
        case TYPE_DECIMAL128I:
1036
125
        case TYPE_DECIMAL256:
1037
125
            return execute_decimal(block, result, col_with_type_and_name_left,
1038
125
                                   col_with_type_and_name_right);
1039
24
        case TYPE_CHAR:
1040
205
        case TYPE_VARCHAR:
1041
258
        case TYPE_STRING:
1042
258
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1043
42
        default:
1044
42
            return execute_generic(block, result, col_with_type_and_name_left,
1045
42
                                   col_with_type_and_name_right);
1046
3.19k
        }
1047
0
        return Status::OK();
1048
3.19k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
926
9.42k
                        uint32_t result, size_t input_rows_count) const override {
927
9.42k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
928
9.42k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
929
930
9.42k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
931
9.42k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
932
9.42k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
933
9.42k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
934
935
9.42k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
936
9.42k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
937
938
9.42k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                             \
939
9.42k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                    \
940
9.42k
        right_type->get_primitive_type() == TYPE) {                                                \
941
9.42k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,     \
942
9.42k
                                                         col_right_ptr, right_type,                \
943
9.42k
                                                         input_rows_count);                        \
944
9.42k
    }                                                                                              \
945
9.42k
    if (left_type->get_primitive_type() == TYPE &&                                                 \
946
9.42k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                   \
947
9.42k
        return execute_timestamp_ns_temporal<TYPE, false>(                                         \
948
9.42k
                context, block, result, col_left_ptr, col_right_ptr, left_type, input_rows_count); \
949
9.42k
    }
950
951
9.42k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
952
18.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
953
18.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
954
18.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
955
18.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
956
957
9.40k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
958
959
        /// The case when arguments are the same (tautological comparison). Return constant.
960
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
961
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
962
9.40k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
963
9.40k
            col_left_untyped == col_right_untyped) {
964
            /// Always true: =, <=, >=
965
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
966
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
967
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
968
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
969
                block.get_by_position(result).column =
970
                        DataTypeUInt8()
971
                                .create_column_const(input_rows_count,
972
                                                     Field::create_field<TYPE_BOOLEAN>(1))
973
                                ->convert_to_full_column_if_const();
974
                return Status::OK();
975
0
            } else {
976
0
                block.get_by_position(result).column =
977
0
                        DataTypeUInt8()
978
0
                                .create_column_const(input_rows_count,
979
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
980
0
                                ->convert_to_full_column_if_const();
981
0
                return Status::OK();
982
0
            }
983
0
        }
984
985
0
        auto can_compare = [](PrimitiveType t) -> bool {
986
9.40k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
9.40k
                   is_timestamp_ns_type(t);
988
9.40k
        };
989
990
9.40k
        if (can_compare(left_type->get_primitive_type()) &&
991
9.40k
            can_compare(right_type->get_primitive_type())) {
992
            // check left type equals right type TODO: remove this after FE is aware of scales difference
993
7.94k
            if (!left_type->equals_ignore_precision(*right_type)) {
994
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
995
0
                                            get_name(), left_type->get_name(),
996
0
                                            right_type->get_name());
997
0
            }
998
7.94k
        }
999
1000
9.40k
        auto compare_type = left_type->get_primitive_type();
1001
9.40k
        switch (compare_type) {
1002
101
        case TYPE_BOOLEAN:
1003
101
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1004
2.23k
        case TYPE_DATEV2:
1005
2.23k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1006
313
        case TYPE_DATETIMEV2:
1007
313
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1008
148
        case TYPE_TIMESTAMP_NS:
1009
148
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1010
2
        case TYPE_TIMESTAMPTZ:
1011
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1012
2.32k
        case TYPE_TINYINT:
1013
2.32k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1014
137
        case TYPE_SMALLINT:
1015
137
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1016
1.14k
        case TYPE_INT:
1017
1.14k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1018
792
        case TYPE_BIGINT:
1019
792
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1020
226
        case TYPE_LARGEINT:
1021
226
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1022
18
        case TYPE_IPV4:
1023
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1024
16
        case TYPE_IPV6:
1025
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1026
137
        case TYPE_FLOAT:
1027
137
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1028
360
        case TYPE_DOUBLE:
1029
360
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1030
0
        case TYPE_TIMEV2:
1031
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1032
0
        case TYPE_DECIMALV2:
1033
178
        case TYPE_DECIMAL32:
1034
378
        case TYPE_DECIMAL64:
1035
948
        case TYPE_DECIMAL128I:
1036
949
        case TYPE_DECIMAL256:
1037
949
            return execute_decimal(block, result, col_with_type_and_name_left,
1038
949
                                   col_with_type_and_name_right);
1039
172
        case TYPE_CHAR:
1040
349
        case TYPE_VARCHAR:
1041
500
        case TYPE_STRING:
1042
500
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1043
11
        default:
1044
11
            return execute_generic(block, result, col_with_type_and_name_left,
1045
11
                                   col_with_type_and_name_right);
1046
9.40k
        }
1047
0
        return Status::OK();
1048
9.40k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
926
8.35k
                        uint32_t result, size_t input_rows_count) const override {
927
8.35k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
928
8.35k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
929
930
8.35k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
931
8.35k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
932
8.35k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
933
8.35k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
934
935
8.35k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
936
8.35k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
937
938
8.35k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                             \
939
8.35k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                    \
940
8.35k
        right_type->get_primitive_type() == TYPE) {                                                \
941
8.35k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,     \
942
8.35k
                                                         col_right_ptr, right_type,                \
943
8.35k
                                                         input_rows_count);                        \
944
8.35k
    }                                                                                              \
945
8.35k
    if (left_type->get_primitive_type() == TYPE &&                                                 \
946
8.35k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                   \
947
8.35k
        return execute_timestamp_ns_temporal<TYPE, false>(                                         \
948
8.35k
                context, block, result, col_left_ptr, col_right_ptr, left_type, input_rows_count); \
949
8.35k
    }
950
951
8.35k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
952
16.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
953
16.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
954
16.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
955
16.6k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
956
957
8.34k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
958
959
        /// The case when arguments are the same (tautological comparison). Return constant.
960
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
961
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
962
8.34k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
963
8.34k
            col_left_untyped == col_right_untyped) {
964
            /// Always true: =, <=, >=
965
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
966
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
967
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
968
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
969
0
                block.get_by_position(result).column =
970
0
                        DataTypeUInt8()
971
0
                                .create_column_const(input_rows_count,
972
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
973
0
                                ->convert_to_full_column_if_const();
974
0
                return Status::OK();
975
            } else {
976
                block.get_by_position(result).column =
977
                        DataTypeUInt8()
978
                                .create_column_const(input_rows_count,
979
                                                     Field::create_field<TYPE_BOOLEAN>(0))
980
                                ->convert_to_full_column_if_const();
981
                return Status::OK();
982
            }
983
0
        }
984
985
0
        auto can_compare = [](PrimitiveType t) -> bool {
986
8.34k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
8.34k
                   is_timestamp_ns_type(t);
988
8.34k
        };
989
990
8.34k
        if (can_compare(left_type->get_primitive_type()) &&
991
8.34k
            can_compare(right_type->get_primitive_type())) {
992
            // check left type equals right type TODO: remove this after FE is aware of scales difference
993
7.93k
            if (!left_type->equals_ignore_precision(*right_type)) {
994
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
995
0
                                            get_name(), left_type->get_name(),
996
0
                                            right_type->get_name());
997
0
            }
998
7.93k
        }
999
1000
8.34k
        auto compare_type = left_type->get_primitive_type();
1001
8.34k
        switch (compare_type) {
1002
31
        case TYPE_BOOLEAN:
1003
31
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1004
585
        case TYPE_DATEV2:
1005
585
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1006
71
        case TYPE_DATETIMEV2:
1007
71
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1008
61
        case TYPE_TIMESTAMP_NS:
1009
61
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1010
1
        case TYPE_TIMESTAMPTZ:
1011
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1012
112
        case TYPE_TINYINT:
1013
112
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1014
134
        case TYPE_SMALLINT:
1015
134
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1016
6.09k
        case TYPE_INT:
1017
6.09k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1018
594
        case TYPE_BIGINT:
1019
594
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1020
34
        case TYPE_LARGEINT:
1021
34
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1022
0
        case TYPE_IPV4:
1023
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1024
0
        case TYPE_IPV6:
1025
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1026
20
        case TYPE_FLOAT:
1027
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1028
144
        case TYPE_DOUBLE:
1029
144
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1030
0
        case TYPE_TIMEV2:
1031
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1032
0
        case TYPE_DECIMALV2:
1033
8
        case TYPE_DECIMAL32:
1034
100
        case TYPE_DECIMAL64:
1035
192
        case TYPE_DECIMAL128I:
1036
198
        case TYPE_DECIMAL256:
1037
198
            return execute_decimal(block, result, col_with_type_and_name_left,
1038
198
                                   col_with_type_and_name_right);
1039
48
        case TYPE_CHAR:
1040
152
        case TYPE_VARCHAR:
1041
217
        case TYPE_STRING:
1042
217
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1043
54
        default:
1044
54
            return execute_generic(block, result, col_with_type_and_name_left,
1045
54
                                   col_with_type_and_name_right);
1046
8.34k
        }
1047
0
        return Status::OK();
1048
8.34k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
926
34.4k
                        uint32_t result, size_t input_rows_count) const override {
927
34.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
928
34.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
929
930
34.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
931
34.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
932
34.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
933
34.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
934
935
34.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
936
34.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
937
938
34.4k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                             \
939
34.4k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                    \
940
34.4k
        right_type->get_primitive_type() == TYPE) {                                                \
941
34.4k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,     \
942
34.4k
                                                         col_right_ptr, right_type,                \
943
34.4k
                                                         input_rows_count);                        \
944
34.4k
    }                                                                                              \
945
34.4k
    if (left_type->get_primitive_type() == TYPE &&                                                 \
946
34.4k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                   \
947
34.4k
        return execute_timestamp_ns_temporal<TYPE, false>(                                         \
948
34.4k
                context, block, result, col_left_ptr, col_right_ptr, left_type, input_rows_count); \
949
34.4k
    }
950
951
34.4k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
952
68.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
953
68.8k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
954
68.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
955
68.7k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
956
957
34.3k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
958
959
        /// The case when arguments are the same (tautological comparison). Return constant.
960
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
961
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
962
34.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
963
34.3k
            col_left_untyped == col_right_untyped) {
964
            /// Always true: =, <=, >=
965
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
966
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
967
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
968
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
969
0
                block.get_by_position(result).column =
970
0
                        DataTypeUInt8()
971
0
                                .create_column_const(input_rows_count,
972
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
973
0
                                ->convert_to_full_column_if_const();
974
0
                return Status::OK();
975
            } else {
976
                block.get_by_position(result).column =
977
                        DataTypeUInt8()
978
                                .create_column_const(input_rows_count,
979
                                                     Field::create_field<TYPE_BOOLEAN>(0))
980
                                ->convert_to_full_column_if_const();
981
                return Status::OK();
982
            }
983
0
        }
984
985
0
        auto can_compare = [](PrimitiveType t) -> bool {
986
34.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
34.3k
                   is_timestamp_ns_type(t);
988
34.3k
        };
989
990
34.3k
        if (can_compare(left_type->get_primitive_type()) &&
991
34.3k
            can_compare(right_type->get_primitive_type())) {
992
            // check left type equals right type TODO: remove this after FE is aware of scales difference
993
13.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
994
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
995
0
                                            get_name(), left_type->get_name(),
996
0
                                            right_type->get_name());
997
0
            }
998
13.4k
        }
999
1000
34.3k
        auto compare_type = left_type->get_primitive_type();
1001
34.3k
        switch (compare_type) {
1002
106
        case TYPE_BOOLEAN:
1003
106
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1004
679
        case TYPE_DATEV2:
1005
679
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1006
451
        case TYPE_DATETIMEV2:
1007
451
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1008
220
        case TYPE_TIMESTAMP_NS:
1009
220
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1010
2
        case TYPE_TIMESTAMPTZ:
1011
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1012
5.94k
        case TYPE_TINYINT:
1013
5.94k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1014
440
        case TYPE_SMALLINT:
1015
440
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1016
2.19k
        case TYPE_INT:
1017
2.19k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1018
2.50k
        case TYPE_BIGINT:
1019
2.50k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1020
128
        case TYPE_LARGEINT:
1021
128
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1022
23
        case TYPE_IPV4:
1023
23
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1024
28
        case TYPE_IPV6:
1025
28
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1026
104
        case TYPE_FLOAT:
1027
104
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1028
650
        case TYPE_DOUBLE:
1029
650
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1030
4
        case TYPE_TIMEV2:
1031
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1032
0
        case TYPE_DECIMALV2:
1033
147
        case TYPE_DECIMAL32:
1034
298
        case TYPE_DECIMAL64:
1035
1.07k
        case TYPE_DECIMAL128I:
1036
1.10k
        case TYPE_DECIMAL256:
1037
1.10k
            return execute_decimal(block, result, col_with_type_and_name_left,
1038
1.10k
                                   col_with_type_and_name_right);
1039
744
        case TYPE_CHAR:
1040
6.58k
        case TYPE_VARCHAR:
1041
19.7k
        case TYPE_STRING:
1042
19.7k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1043
17
        default:
1044
17
            return execute_generic(block, result, col_with_type_and_name_left,
1045
17
                                   col_with_type_and_name_right);
1046
34.3k
        }
1047
0
        return Status::OK();
1048
34.3k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
926
2.93k
                        uint32_t result, size_t input_rows_count) const override {
927
2.93k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
928
2.93k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
929
930
2.93k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
931
2.93k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
932
2.93k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
933
2.93k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
934
935
2.93k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
936
2.93k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
937
938
2.93k
#define EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE)                                             \
939
2.93k
    if (left_type->get_primitive_type() == TYPE_TIMESTAMP_NS &&                                    \
940
2.93k
        right_type->get_primitive_type() == TYPE) {                                                \
941
2.93k
        return execute_timestamp_ns_temporal<TYPE, true>(context, block, result, col_left_ptr,     \
942
2.93k
                                                         col_right_ptr, right_type,                \
943
2.93k
                                                         input_rows_count);                        \
944
2.93k
    }                                                                                              \
945
2.93k
    if (left_type->get_primitive_type() == TYPE &&                                                 \
946
2.93k
        right_type->get_primitive_type() == TYPE_TIMESTAMP_NS) {                                   \
947
2.93k
        return execute_timestamp_ns_temporal<TYPE, false>(                                         \
948
2.93k
                context, block, result, col_left_ptr, col_right_ptr, left_type, input_rows_count); \
949
2.93k
    }
950
951
2.93k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATE)
952
5.86k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATEV2)
953
5.86k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIME)
954
5.86k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_DATETIMEV2)
955
5.86k
        EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON(TYPE_TIMESTAMPTZ)
956
957
2.93k
#undef EXECUTE_TIMESTAMP_NS_TEMPORAL_COMPARISON
958
959
        /// The case when arguments are the same (tautological comparison). Return constant.
960
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
961
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
962
2.93k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
963
2.93k
            col_left_untyped == col_right_untyped) {
964
            /// Always true: =, <=, >=
965
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
966
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
967
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
968
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
969
                block.get_by_position(result).column =
970
                        DataTypeUInt8()
971
                                .create_column_const(input_rows_count,
972
                                                     Field::create_field<TYPE_BOOLEAN>(1))
973
                                ->convert_to_full_column_if_const();
974
                return Status::OK();
975
0
            } else {
976
0
                block.get_by_position(result).column =
977
0
                        DataTypeUInt8()
978
0
                                .create_column_const(input_rows_count,
979
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
980
0
                                ->convert_to_full_column_if_const();
981
0
                return Status::OK();
982
0
            }
983
0
        }
984
985
0
        auto can_compare = [](PrimitiveType t) -> bool {
986
2.93k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t) ||
987
2.93k
                   is_timestamp_ns_type(t);
988
2.93k
        };
989
990
2.93k
        if (can_compare(left_type->get_primitive_type()) &&
991
2.93k
            can_compare(right_type->get_primitive_type())) {
992
            // check left type equals right type TODO: remove this after FE is aware of scales difference
993
2.63k
            if (!left_type->equals_ignore_precision(*right_type)) {
994
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
995
0
                                            get_name(), left_type->get_name(),
996
0
                                            right_type->get_name());
997
0
            }
998
2.63k
        }
999
1000
2.93k
        auto compare_type = left_type->get_primitive_type();
1001
2.93k
        switch (compare_type) {
1002
0
        case TYPE_BOOLEAN:
1003
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
1004
70
        case TYPE_DATEV2:
1005
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
1006
0
        case TYPE_DATETIMEV2:
1007
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
1008
8
        case TYPE_TIMESTAMP_NS:
1009
8
            return execute_num_type<TYPE_TIMESTAMP_NS>(block, result, col_left_ptr, col_right_ptr);
1010
0
        case TYPE_TIMESTAMPTZ:
1011
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
1012
82
        case TYPE_TINYINT:
1013
82
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
1014
0
        case TYPE_SMALLINT:
1015
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
1016
1.16k
        case TYPE_INT:
1017
1.16k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
1018
1.20k
        case TYPE_BIGINT:
1019
1.20k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
1020
0
        case TYPE_LARGEINT:
1021
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
1022
0
        case TYPE_IPV4:
1023
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
1024
0
        case TYPE_IPV6:
1025
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
1026
48
        case TYPE_FLOAT:
1027
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
1028
62
        case TYPE_DOUBLE:
1029
62
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
1030
0
        case TYPE_TIMEV2:
1031
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
1032
0
        case TYPE_DECIMALV2:
1033
0
        case TYPE_DECIMAL32:
1034
66
        case TYPE_DECIMAL64:
1035
94
        case TYPE_DECIMAL128I:
1036
124
        case TYPE_DECIMAL256:
1037
124
            return execute_decimal(block, result, col_with_type_and_name_left,
1038
124
                                   col_with_type_and_name_right);
1039
1
        case TYPE_CHAR:
1040
39
        case TYPE_VARCHAR:
1041
159
        case TYPE_STRING:
1042
159
            return execute_string(block, result, col_left_untyped, col_right_untyped);
1043
8
        default:
1044
8
            return execute_generic(block, result, col_with_type_and_name_left,
1045
8
                                   col_with_type_and_name_right);
1046
2.93k
        }
1047
0
        return Status::OK();
1048
2.93k
    }
1049
};
1050
1051
} // namespace doris