Coverage Report

Created: 2026-05-09 01:43

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/memcmp_small.h"
38
#include "core/value/vdatetime_value.h"
39
#include "exprs/function/function.h"
40
#include "exprs/function/function_helpers.h"
41
#include "exprs/function/functions_logical.h"
42
#include "storage/index/index_reader_helper.h"
43
44
namespace doris {
45
46
/** Comparison functions: ==, !=, <, >, <=, >=.
47
  * The comparison functions always return 0 or 1 (UInt8).
48
  *
49
  * You can compare the following types:
50
  * - numbers and decimals;
51
  * - strings and fixed strings;
52
  * - dates;
53
  * - datetimes;
54
  *   within each group, but not from different groups;
55
  * - tuples (lexicographic comparison).
56
  *
57
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
58
  */
59
60
template <typename A, typename B, typename Op>
61
struct NumComparisonImpl {
62
    /// 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.
63
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
64
173
                                        PaddedPODArray<UInt8>& c) {
65
173
        size_t size = a.size();
66
173
        const A* __restrict a_pos = a.data();
67
173
        const B* __restrict b_pos = b.data();
68
173
        UInt8* __restrict c_pos = c.data();
69
173
        const A* __restrict a_end = a_pos + size;
70
71
847
        while (a_pos < a_end) {
72
674
            *c_pos = Op::apply(*a_pos, *b_pos);
73
674
            ++a_pos;
74
674
            ++b_pos;
75
674
            ++c_pos;
76
674
        }
77
173
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
24
                                        PaddedPODArray<UInt8>& c) {
65
24
        size_t size = a.size();
66
24
        const A* __restrict a_pos = a.data();
67
24
        const B* __restrict b_pos = b.data();
68
24
        UInt8* __restrict c_pos = c.data();
69
24
        const A* __restrict a_end = a_pos + size;
70
71
435
        while (a_pos < a_end) {
72
411
            *c_pos = Op::apply(*a_pos, *b_pos);
73
411
            ++a_pos;
74
411
            ++b_pos;
75
411
            ++c_pos;
76
411
        }
77
24
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
136
                                        PaddedPODArray<UInt8>& c) {
65
136
        size_t size = a.size();
66
136
        const A* __restrict a_pos = a.data();
67
136
        const B* __restrict b_pos = b.data();
68
136
        UInt8* __restrict c_pos = c.data();
69
136
        const A* __restrict a_end = a_pos + size;
70
71
324
        while (a_pos < a_end) {
72
188
            *c_pos = Op::apply(*a_pos, *b_pos);
73
188
            ++a_pos;
74
188
            ++b_pos;
75
188
            ++c_pos;
76
188
        }
77
136
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
4
        while (a_pos < a_end) {
72
3
            *c_pos = Op::apply(*a_pos, *b_pos);
73
3
            ++a_pos;
74
3
            ++b_pos;
75
3
            ++c_pos;
76
3
        }
77
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
12
                                        PaddedPODArray<UInt8>& c) {
65
12
        size_t size = a.size();
66
12
        const A* __restrict a_pos = a.data();
67
12
        const B* __restrict b_pos = b.data();
68
12
        UInt8* __restrict c_pos = c.data();
69
12
        const A* __restrict a_end = a_pos + size;
70
71
84
        while (a_pos < a_end) {
72
72
            *c_pos = Op::apply(*a_pos, *b_pos);
73
72
            ++a_pos;
74
72
            ++b_pos;
75
72
            ++c_pos;
76
72
        }
77
12
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
78
79
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
80
144k
                                          PaddedPODArray<UInt8>& c) {
81
144k
        size_t size = a.size();
82
144k
        const A* __restrict a_pos = a.data();
83
144k
        UInt8* __restrict c_pos = c.data();
84
144k
        const A* __restrict a_end = a_pos + size;
85
86
144M
        while (a_pos < a_end) {
87
144M
            *c_pos = Op::apply(*a_pos, b);
88
144M
            ++a_pos;
89
144M
            ++c_pos;
90
144M
        }
91
144k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
1.50k
                                          PaddedPODArray<UInt8>& c) {
81
1.50k
        size_t size = a.size();
82
1.50k
        const A* __restrict a_pos = a.data();
83
1.50k
        UInt8* __restrict c_pos = c.data();
84
1.50k
        const A* __restrict a_end = a_pos + size;
85
86
4.82k
        while (a_pos < a_end) {
87
3.32k
            *c_pos = Op::apply(*a_pos, b);
88
3.32k
            ++a_pos;
89
3.32k
            ++c_pos;
90
3.32k
        }
91
1.50k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
500
                                          PaddedPODArray<UInt8>& c) {
81
500
        size_t size = a.size();
82
500
        const A* __restrict a_pos = a.data();
83
500
        UInt8* __restrict c_pos = c.data();
84
500
        const A* __restrict a_end = a_pos + size;
85
86
1.20k
        while (a_pos < a_end) {
87
700
            *c_pos = Op::apply(*a_pos, b);
88
700
            ++a_pos;
89
700
            ++c_pos;
90
700
        }
91
500
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
198
                                          PaddedPODArray<UInt8>& c) {
81
198
        size_t size = a.size();
82
198
        const A* __restrict a_pos = a.data();
83
198
        UInt8* __restrict c_pos = c.data();
84
198
        const A* __restrict a_end = a_pos + size;
85
86
494
        while (a_pos < a_end) {
87
296
            *c_pos = Op::apply(*a_pos, b);
88
296
            ++a_pos;
89
296
            ++c_pos;
90
296
        }
91
198
    }
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
80
2.02k
                                          PaddedPODArray<UInt8>& c) {
81
2.02k
        size_t size = a.size();
82
2.02k
        const A* __restrict a_pos = a.data();
83
2.02k
        UInt8* __restrict c_pos = c.data();
84
2.02k
        const A* __restrict a_end = a_pos + size;
85
86
128k
        while (a_pos < a_end) {
87
126k
            *c_pos = Op::apply(*a_pos, b);
88
126k
            ++a_pos;
89
126k
            ++c_pos;
90
126k
        }
91
2.02k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.04k
                                          PaddedPODArray<UInt8>& c) {
81
1.04k
        size_t size = a.size();
82
1.04k
        const A* __restrict a_pos = a.data();
83
1.04k
        UInt8* __restrict c_pos = c.data();
84
1.04k
        const A* __restrict a_end = a_pos + size;
85
86
26.6k
        while (a_pos < a_end) {
87
25.6k
            *c_pos = Op::apply(*a_pos, b);
88
25.6k
            ++a_pos;
89
25.6k
            ++c_pos;
90
25.6k
        }
91
1.04k
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
28.5k
                                          PaddedPODArray<UInt8>& c) {
81
28.5k
        size_t size = a.size();
82
28.5k
        const A* __restrict a_pos = a.data();
83
28.5k
        UInt8* __restrict c_pos = c.data();
84
28.5k
        const A* __restrict a_end = a_pos + size;
85
86
1.89M
        while (a_pos < a_end) {
87
1.86M
            *c_pos = Op::apply(*a_pos, b);
88
1.86M
            ++a_pos;
89
1.86M
            ++c_pos;
90
1.86M
        }
91
28.5k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
21.8k
                                          PaddedPODArray<UInt8>& c) {
81
21.8k
        size_t size = a.size();
82
21.8k
        const A* __restrict a_pos = a.data();
83
21.8k
        UInt8* __restrict c_pos = c.data();
84
21.8k
        const A* __restrict a_end = a_pos + size;
85
86
2.48M
        while (a_pos < a_end) {
87
2.46M
            *c_pos = Op::apply(*a_pos, b);
88
2.46M
            ++a_pos;
89
2.46M
            ++c_pos;
90
2.46M
        }
91
21.8k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
30
                                          PaddedPODArray<UInt8>& c) {
81
30
        size_t size = a.size();
82
30
        const A* __restrict a_pos = a.data();
83
30
        UInt8* __restrict c_pos = c.data();
84
30
        const A* __restrict a_end = a_pos + size;
85
86
1.74k
        while (a_pos < a_end) {
87
1.71k
            *c_pos = Op::apply(*a_pos, b);
88
1.71k
            ++a_pos;
89
1.71k
            ++c_pos;
90
1.71k
        }
91
30
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
4
                                          PaddedPODArray<UInt8>& c) {
81
4
        size_t size = a.size();
82
4
        const A* __restrict a_pos = a.data();
83
4
        UInt8* __restrict c_pos = c.data();
84
4
        const A* __restrict a_end = a_pos + size;
85
86
26
        while (a_pos < a_end) {
87
22
            *c_pos = Op::apply(*a_pos, b);
88
22
            ++a_pos;
89
22
            ++c_pos;
90
22
        }
91
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
68
                                          PaddedPODArray<UInt8>& c) {
81
68
        size_t size = a.size();
82
68
        const A* __restrict a_pos = a.data();
83
68
        UInt8* __restrict c_pos = c.data();
84
68
        const A* __restrict a_end = a_pos + size;
85
86
952
        while (a_pos < a_end) {
87
884
            *c_pos = Op::apply(*a_pos, b);
88
884
            ++a_pos;
89
884
            ++c_pos;
90
884
        }
91
68
    }
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
80
8
                                          PaddedPODArray<UInt8>& c) {
81
8
        size_t size = a.size();
82
8
        const A* __restrict a_pos = a.data();
83
8
        UInt8* __restrict c_pos = c.data();
84
8
        const A* __restrict a_end = a_pos + size;
85
86
16
        while (a_pos < a_end) {
87
8
            *c_pos = Op::apply(*a_pos, b);
88
8
            ++a_pos;
89
8
            ++c_pos;
90
8
        }
91
8
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
2
                                          PaddedPODArray<UInt8>& c) {
81
2
        size_t size = a.size();
82
2
        const A* __restrict a_pos = a.data();
83
2
        UInt8* __restrict c_pos = c.data();
84
2
        const A* __restrict a_end = a_pos + size;
85
86
4
        while (a_pos < a_end) {
87
2
            *c_pos = Op::apply(*a_pos, b);
88
2
            ++a_pos;
89
2
            ++c_pos;
90
2
        }
91
2
    }
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
80
16
                                          PaddedPODArray<UInt8>& c) {
81
16
        size_t size = a.size();
82
16
        const A* __restrict a_pos = a.data();
83
16
        UInt8* __restrict c_pos = c.data();
84
16
        const A* __restrict a_end = a_pos + size;
85
86
1.16k
        while (a_pos < a_end) {
87
1.14k
            *c_pos = Op::apply(*a_pos, b);
88
1.14k
            ++a_pos;
89
1.14k
            ++c_pos;
90
1.14k
        }
91
16
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
26
                                          PaddedPODArray<UInt8>& c) {
81
26
        size_t size = a.size();
82
26
        const A* __restrict a_pos = a.data();
83
26
        UInt8* __restrict c_pos = c.data();
84
26
        const A* __restrict a_end = a_pos + size;
85
86
802
        while (a_pos < a_end) {
87
776
            *c_pos = Op::apply(*a_pos, b);
88
776
            ++a_pos;
89
776
            ++c_pos;
90
776
        }
91
26
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
2.58k
                                          PaddedPODArray<UInt8>& c) {
81
2.58k
        size_t size = a.size();
82
2.58k
        const A* __restrict a_pos = a.data();
83
2.58k
        UInt8* __restrict c_pos = c.data();
84
2.58k
        const A* __restrict a_end = a_pos + size;
85
86
656k
        while (a_pos < a_end) {
87
653k
            *c_pos = Op::apply(*a_pos, b);
88
653k
            ++a_pos;
89
653k
            ++c_pos;
90
653k
        }
91
2.58k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.90k
                                          PaddedPODArray<UInt8>& c) {
81
1.90k
        size_t size = a.size();
82
1.90k
        const A* __restrict a_pos = a.data();
83
1.90k
        UInt8* __restrict c_pos = c.data();
84
1.90k
        const A* __restrict a_end = a_pos + size;
85
86
268k
        while (a_pos < a_end) {
87
266k
            *c_pos = Op::apply(*a_pos, b);
88
266k
            ++a_pos;
89
266k
            ++c_pos;
90
266k
        }
91
1.90k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
116
                                          PaddedPODArray<UInt8>& c) {
81
116
        size_t size = a.size();
82
116
        const A* __restrict a_pos = a.data();
83
116
        UInt8* __restrict c_pos = c.data();
84
116
        const A* __restrict a_end = a_pos + size;
85
86
594
        while (a_pos < a_end) {
87
478
            *c_pos = Op::apply(*a_pos, b);
88
478
            ++a_pos;
89
478
            ++c_pos;
90
478
        }
91
116
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
94
                                          PaddedPODArray<UInt8>& c) {
81
94
        size_t size = a.size();
82
94
        const A* __restrict a_pos = a.data();
83
94
        UInt8* __restrict c_pos = c.data();
84
94
        const A* __restrict a_end = a_pos + size;
85
86
202
        while (a_pos < a_end) {
87
108
            *c_pos = Op::apply(*a_pos, b);
88
108
            ++a_pos;
89
108
            ++c_pos;
90
108
        }
91
94
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
92
                                          PaddedPODArray<UInt8>& c) {
81
92
        size_t size = a.size();
82
92
        const A* __restrict a_pos = a.data();
83
92
        UInt8* __restrict c_pos = c.data();
84
92
        const A* __restrict a_end = a_pos + size;
85
86
204
        while (a_pos < a_end) {
87
112
            *c_pos = Op::apply(*a_pos, b);
88
112
            ++a_pos;
89
112
            ++c_pos;
90
112
        }
91
92
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
278
                                          PaddedPODArray<UInt8>& c) {
81
278
        size_t size = a.size();
82
278
        const A* __restrict a_pos = a.data();
83
278
        UInt8* __restrict c_pos = c.data();
84
278
        const A* __restrict a_end = a_pos + size;
85
86
45.1k
        while (a_pos < a_end) {
87
44.8k
            *c_pos = Op::apply(*a_pos, b);
88
44.8k
            ++a_pos;
89
44.8k
            ++c_pos;
90
44.8k
        }
91
278
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
8
                                          PaddedPODArray<UInt8>& c) {
81
8
        size_t size = a.size();
82
8
        const A* __restrict a_pos = a.data();
83
8
        UInt8* __restrict c_pos = c.data();
84
8
        const A* __restrict a_end = a_pos + size;
85
86
24
        while (a_pos < a_end) {
87
16
            *c_pos = Op::apply(*a_pos, b);
88
16
            ++a_pos;
89
16
            ++c_pos;
90
16
        }
91
8
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
34
                                          PaddedPODArray<UInt8>& c) {
81
34
        size_t size = a.size();
82
34
        const A* __restrict a_pos = a.data();
83
34
        UInt8* __restrict c_pos = c.data();
84
34
        const A* __restrict a_end = a_pos + size;
85
86
2.24k
        while (a_pos < a_end) {
87
2.20k
            *c_pos = Op::apply(*a_pos, b);
88
2.20k
            ++a_pos;
89
2.20k
            ++c_pos;
90
2.20k
        }
91
34
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
168
                                          PaddedPODArray<UInt8>& c) {
81
168
        size_t size = a.size();
82
168
        const A* __restrict a_pos = a.data();
83
168
        UInt8* __restrict c_pos = c.data();
84
168
        const A* __restrict a_end = a_pos + size;
85
86
4.36k
        while (a_pos < a_end) {
87
4.20k
            *c_pos = Op::apply(*a_pos, b);
88
4.20k
            ++a_pos;
89
4.20k
            ++c_pos;
90
4.20k
        }
91
168
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
254
                                          PaddedPODArray<UInt8>& c) {
81
254
        size_t size = a.size();
82
254
        const A* __restrict a_pos = a.data();
83
254
        UInt8* __restrict c_pos = c.data();
84
254
        const A* __restrict a_end = a_pos + size;
85
86
12.6k
        while (a_pos < a_end) {
87
12.4k
            *c_pos = Op::apply(*a_pos, b);
88
12.4k
            ++a_pos;
89
12.4k
            ++c_pos;
90
12.4k
        }
91
254
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
16.4k
                                          PaddedPODArray<UInt8>& c) {
81
16.4k
        size_t size = a.size();
82
16.4k
        const A* __restrict a_pos = a.data();
83
16.4k
        UInt8* __restrict c_pos = c.data();
84
16.4k
        const A* __restrict a_end = a_pos + size;
85
86
1.42M
        while (a_pos < a_end) {
87
1.41M
            *c_pos = Op::apply(*a_pos, b);
88
1.41M
            ++a_pos;
89
1.41M
            ++c_pos;
90
1.41M
        }
91
16.4k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
5.14k
                                          PaddedPODArray<UInt8>& c) {
81
5.14k
        size_t size = a.size();
82
5.14k
        const A* __restrict a_pos = a.data();
83
5.14k
        UInt8* __restrict c_pos = c.data();
84
5.14k
        const A* __restrict a_end = a_pos + size;
85
86
4.42M
        while (a_pos < a_end) {
87
4.41M
            *c_pos = Op::apply(*a_pos, b);
88
4.41M
            ++a_pos;
89
4.41M
            ++c_pos;
90
4.41M
        }
91
5.14k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
12.1k
                                          PaddedPODArray<UInt8>& c) {
81
12.1k
        size_t size = a.size();
82
12.1k
        const A* __restrict a_pos = a.data();
83
12.1k
        UInt8* __restrict c_pos = c.data();
84
12.1k
        const A* __restrict a_end = a_pos + size;
85
86
75.9k
        while (a_pos < a_end) {
87
63.8k
            *c_pos = Op::apply(*a_pos, b);
88
63.8k
            ++a_pos;
89
63.8k
            ++c_pos;
90
63.8k
        }
91
12.1k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
906
                                          PaddedPODArray<UInt8>& c) {
81
906
        size_t size = a.size();
82
906
        const A* __restrict a_pos = a.data();
83
906
        UInt8* __restrict c_pos = c.data();
84
906
        const A* __restrict a_end = a_pos + size;
85
86
2.47k
        while (a_pos < a_end) {
87
1.56k
            *c_pos = Op::apply(*a_pos, b);
88
1.56k
            ++a_pos;
89
1.56k
            ++c_pos;
90
1.56k
        }
91
906
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
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
80
16
                                          PaddedPODArray<UInt8>& c) {
81
16
        size_t size = a.size();
82
16
        const A* __restrict a_pos = a.data();
83
16
        UInt8* __restrict c_pos = c.data();
84
16
        const A* __restrict a_end = a_pos + size;
85
86
1.16k
        while (a_pos < a_end) {
87
1.14k
            *c_pos = Op::apply(*a_pos, b);
88
1.14k
            ++a_pos;
89
1.14k
            ++c_pos;
90
1.14k
        }
91
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
26
                                          PaddedPODArray<UInt8>& c) {
81
26
        size_t size = a.size();
82
26
        const A* __restrict a_pos = a.data();
83
26
        UInt8* __restrict c_pos = c.data();
84
26
        const A* __restrict a_end = a_pos + size;
85
86
64
        while (a_pos < a_end) {
87
38
            *c_pos = Op::apply(*a_pos, b);
88
38
            ++a_pos;
89
38
            ++c_pos;
90
38
        }
91
26
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.95k
                                          PaddedPODArray<UInt8>& c) {
81
1.95k
        size_t size = a.size();
82
1.95k
        const A* __restrict a_pos = a.data();
83
1.95k
        UInt8* __restrict c_pos = c.data();
84
1.95k
        const A* __restrict a_end = a_pos + size;
85
86
339k
        while (a_pos < a_end) {
87
337k
            *c_pos = Op::apply(*a_pos, b);
88
337k
            ++a_pos;
89
337k
            ++c_pos;
90
337k
        }
91
1.95k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
40
                                          PaddedPODArray<UInt8>& c) {
81
40
        size_t size = a.size();
82
40
        const A* __restrict a_pos = a.data();
83
40
        UInt8* __restrict c_pos = c.data();
84
40
        const A* __restrict a_end = a_pos + size;
85
86
33.8k
        while (a_pos < a_end) {
87
33.8k
            *c_pos = Op::apply(*a_pos, b);
88
33.8k
            ++a_pos;
89
33.8k
            ++c_pos;
90
33.8k
        }
91
40
    }
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
80
124
                                          PaddedPODArray<UInt8>& c) {
81
124
        size_t size = a.size();
82
124
        const A* __restrict a_pos = a.data();
83
124
        UInt8* __restrict c_pos = c.data();
84
124
        const A* __restrict a_end = a_pos + size;
85
86
22.1k
        while (a_pos < a_end) {
87
21.9k
            *c_pos = Op::apply(*a_pos, b);
88
21.9k
            ++a_pos;
89
21.9k
            ++c_pos;
90
21.9k
        }
91
124
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
302
                                          PaddedPODArray<UInt8>& c) {
81
302
        size_t size = a.size();
82
302
        const A* __restrict a_pos = a.data();
83
302
        UInt8* __restrict c_pos = c.data();
84
302
        const A* __restrict a_end = a_pos + size;
85
86
36.9k
        while (a_pos < a_end) {
87
36.6k
            *c_pos = Op::apply(*a_pos, b);
88
36.6k
            ++a_pos;
89
36.6k
            ++c_pos;
90
36.6k
        }
91
302
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
1.03k
                                          PaddedPODArray<UInt8>& c) {
81
1.03k
        size_t size = a.size();
82
1.03k
        const A* __restrict a_pos = a.data();
83
1.03k
        UInt8* __restrict c_pos = c.data();
84
1.03k
        const A* __restrict a_end = a_pos + size;
85
86
3.18M
        while (a_pos < a_end) {
87
3.18M
            *c_pos = Op::apply(*a_pos, b);
88
3.18M
            ++a_pos;
89
3.18M
            ++c_pos;
90
3.18M
        }
91
1.03k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
10.1k
                                          PaddedPODArray<UInt8>& c) {
81
10.1k
        size_t size = a.size();
82
10.1k
        const A* __restrict a_pos = a.data();
83
10.1k
        UInt8* __restrict c_pos = c.data();
84
10.1k
        const A* __restrict a_end = a_pos + size;
85
86
74.7M
        while (a_pos < a_end) {
87
74.6M
            *c_pos = Op::apply(*a_pos, b);
88
74.6M
            ++a_pos;
89
74.6M
            ++c_pos;
90
74.6M
        }
91
10.1k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
474
                                          PaddedPODArray<UInt8>& c) {
81
474
        size_t size = a.size();
82
474
        const A* __restrict a_pos = a.data();
83
474
        UInt8* __restrict c_pos = c.data();
84
474
        const A* __restrict a_end = a_pos + size;
85
86
30.0k
        while (a_pos < a_end) {
87
29.6k
            *c_pos = Op::apply(*a_pos, b);
88
29.6k
            ++a_pos;
89
29.6k
            ++c_pos;
90
29.6k
        }
91
474
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
422
                                          PaddedPODArray<UInt8>& c) {
81
422
        size_t size = a.size();
82
422
        const A* __restrict a_pos = a.data();
83
422
        UInt8* __restrict c_pos = c.data();
84
422
        const A* __restrict a_end = a_pos + size;
85
86
27.2k
        while (a_pos < a_end) {
87
26.7k
            *c_pos = Op::apply(*a_pos, b);
88
26.7k
            ++a_pos;
89
26.7k
            ++c_pos;
90
26.7k
        }
91
422
    }
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
80
2
                                          PaddedPODArray<UInt8>& c) {
81
2
        size_t size = a.size();
82
2
        const A* __restrict a_pos = a.data();
83
2
        UInt8* __restrict c_pos = c.data();
84
2
        const A* __restrict a_end = a_pos + size;
85
86
6
        while (a_pos < a_end) {
87
4
            *c_pos = Op::apply(*a_pos, b);
88
4
            ++a_pos;
89
4
            ++c_pos;
90
4
        }
91
2
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
194
                                          PaddedPODArray<UInt8>& c) {
81
194
        size_t size = a.size();
82
194
        const A* __restrict a_pos = a.data();
83
194
        UInt8* __restrict c_pos = c.data();
84
194
        const A* __restrict a_end = a_pos + size;
85
86
14.0k
        while (a_pos < a_end) {
87
13.8k
            *c_pos = Op::apply(*a_pos, b);
88
13.8k
            ++a_pos;
89
13.8k
            ++c_pos;
90
13.8k
        }
91
194
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
220
                                          PaddedPODArray<UInt8>& c) {
81
220
        size_t size = a.size();
82
220
        const A* __restrict a_pos = a.data();
83
220
        UInt8* __restrict c_pos = c.data();
84
220
        const A* __restrict a_end = a_pos + size;
85
86
15.1k
        while (a_pos < a_end) {
87
14.9k
            *c_pos = Op::apply(*a_pos, b);
88
14.9k
            ++a_pos;
89
14.9k
            ++c_pos;
90
14.9k
        }
91
220
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
15.0k
                                          PaddedPODArray<UInt8>& c) {
81
15.0k
        size_t size = a.size();
82
15.0k
        const A* __restrict a_pos = a.data();
83
15.0k
        UInt8* __restrict c_pos = c.data();
84
15.0k
        const A* __restrict a_end = a_pos + size;
85
86
27.1M
        while (a_pos < a_end) {
87
27.1M
            *c_pos = Op::apply(*a_pos, b);
88
27.1M
            ++a_pos;
89
27.1M
            ++c_pos;
90
27.1M
        }
91
15.0k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
16.5k
                                          PaddedPODArray<UInt8>& c) {
81
16.5k
        size_t size = a.size();
82
16.5k
        const A* __restrict a_pos = a.data();
83
16.5k
        UInt8* __restrict c_pos = c.data();
84
16.5k
        const A* __restrict a_end = a_pos + size;
85
86
27.4M
        while (a_pos < a_end) {
87
27.3M
            *c_pos = Op::apply(*a_pos, b);
88
27.3M
            ++a_pos;
89
27.3M
            ++c_pos;
90
27.3M
        }
91
16.5k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
600
                                          PaddedPODArray<UInt8>& c) {
81
600
        size_t size = a.size();
82
600
        const A* __restrict a_pos = a.data();
83
600
        UInt8* __restrict c_pos = c.data();
84
600
        const A* __restrict a_end = a_pos + size;
85
86
40.2k
        while (a_pos < a_end) {
87
39.6k
            *c_pos = Op::apply(*a_pos, b);
88
39.6k
            ++a_pos;
89
39.6k
            ++c_pos;
90
39.6k
        }
91
600
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
586
                                          PaddedPODArray<UInt8>& c) {
81
586
        size_t size = a.size();
82
586
        const A* __restrict a_pos = a.data();
83
586
        UInt8* __restrict c_pos = c.data();
84
586
        const A* __restrict a_end = a_pos + size;
85
86
35.0k
        while (a_pos < a_end) {
87
34.5k
            *c_pos = Op::apply(*a_pos, b);
88
34.5k
            ++a_pos;
89
34.5k
            ++c_pos;
90
34.5k
        }
91
586
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
16
                                          PaddedPODArray<UInt8>& c) {
81
16
        size_t size = a.size();
82
16
        const A* __restrict a_pos = a.data();
83
16
        UInt8* __restrict c_pos = c.data();
84
16
        const A* __restrict a_end = a_pos + size;
85
86
32
        while (a_pos < a_end) {
87
16
            *c_pos = Op::apply(*a_pos, b);
88
16
            ++a_pos;
89
16
            ++c_pos;
90
16
        }
91
16
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
16
                                          PaddedPODArray<UInt8>& c) {
81
16
        size_t size = a.size();
82
16
        const A* __restrict a_pos = a.data();
83
16
        UInt8* __restrict c_pos = c.data();
84
16
        const A* __restrict a_end = a_pos + size;
85
86
32
        while (a_pos < a_end) {
87
16
            *c_pos = Op::apply(*a_pos, b);
88
16
            ++a_pos;
89
16
            ++c_pos;
90
16
        }
91
16
    }
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
80
104
                                          PaddedPODArray<UInt8>& c) {
81
104
        size_t size = a.size();
82
104
        const A* __restrict a_pos = a.data();
83
104
        UInt8* __restrict c_pos = c.data();
84
104
        const A* __restrict a_end = a_pos + size;
85
86
208
        while (a_pos < a_end) {
87
104
            *c_pos = Op::apply(*a_pos, b);
88
104
            ++a_pos;
89
104
            ++c_pos;
90
104
        }
91
104
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
104
                                          PaddedPODArray<UInt8>& c) {
81
104
        size_t size = a.size();
82
104
        const A* __restrict a_pos = a.data();
83
104
        UInt8* __restrict c_pos = c.data();
84
104
        const A* __restrict a_end = a_pos + size;
85
86
208
        while (a_pos < a_end) {
87
104
            *c_pos = Op::apply(*a_pos, b);
88
104
            ++a_pos;
89
104
            ++c_pos;
90
104
        }
91
104
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
12
                                          PaddedPODArray<UInt8>& c) {
81
12
        size_t size = a.size();
82
12
        const A* __restrict a_pos = a.data();
83
12
        UInt8* __restrict c_pos = c.data();
84
12
        const A* __restrict a_end = a_pos + size;
85
86
132
        while (a_pos < a_end) {
87
120
            *c_pos = Op::apply(*a_pos, b);
88
120
            ++a_pos;
89
120
            ++c_pos;
90
120
        }
91
12
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
22
                                          PaddedPODArray<UInt8>& c) {
81
22
        size_t size = a.size();
82
22
        const A* __restrict a_pos = a.data();
83
22
        UInt8* __restrict c_pos = c.data();
84
22
        const A* __restrict a_end = a_pos + size;
85
86
242
        while (a_pos < a_end) {
87
220
            *c_pos = Op::apply(*a_pos, b);
88
220
            ++a_pos;
89
220
            ++c_pos;
90
220
        }
91
22
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
92
93
2
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
94
2
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
95
2
    }
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
93
2
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
94
2
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
95
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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
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_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_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_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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
96
};
97
98
/// Generic version, implemented for columns of same type.
99
template <typename Op>
100
struct GenericComparisonImpl {
101
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
4
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
3
        }
105
1
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
4
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
3
        }
105
1
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
106
107
0
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
0
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
0
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
0
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
0
        }
112
0
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
113
114
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
116
0
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
117
};
118
119
template <typename Op>
120
struct StringComparisonImpl {
121
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
122
                                                      const ColumnString::Offsets& a_offsets,
123
                                                      const ColumnString::Chars& b_data,
124
                                                      const ColumnString::Offsets& b_offsets,
125
0
                                                      PaddedPODArray<UInt8>& c) {
126
0
        size_t size = a_offsets.size();
127
0
        ColumnString::Offset prev_a_offset = 0;
128
0
        ColumnString::Offset prev_b_offset = 0;
129
0
        const auto* a_pos = a_data.data();
130
0
        const auto* b_pos = b_data.data();
131
132
0
        for (size_t i = 0; i < size; ++i) {
133
0
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
0
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
0
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
0
                             0);
137
138
0
            prev_a_offset = a_offsets[i];
139
0
            prev_b_offset = b_offsets[i];
140
0
        }
141
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
142
143
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
144
                                                 const ColumnString::Offsets& a_offsets,
145
                                                 const ColumnString::Chars& b_data,
146
                                                 ColumnString::Offset b_size,
147
2.10k
                                                 PaddedPODArray<UInt8>& c) {
148
2.10k
        size_t size = a_offsets.size();
149
2.10k
        ColumnString::Offset prev_a_offset = 0;
150
2.10k
        const auto* a_pos = a_data.data();
151
2.10k
        const auto* b_pos = b_data.data();
152
153
191k
        for (size_t i = 0; i < size; ++i) {
154
189k
            c[i] = Op::apply(
155
189k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
189k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
189k
                    0);
158
159
189k
            prev_a_offset = a_offsets[i];
160
189k
        }
161
2.10k
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
144
                                                 PaddedPODArray<UInt8>& c) {
148
144
        size_t size = a_offsets.size();
149
144
        ColumnString::Offset prev_a_offset = 0;
150
144
        const auto* a_pos = a_data.data();
151
144
        const auto* b_pos = b_data.data();
152
153
384
        for (size_t i = 0; i < size; ++i) {
154
240
            c[i] = Op::apply(
155
240
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
240
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
240
                    0);
158
159
240
            prev_a_offset = a_offsets[i];
160
240
        }
161
144
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
382
                                                 PaddedPODArray<UInt8>& c) {
148
382
        size_t size = a_offsets.size();
149
382
        ColumnString::Offset prev_a_offset = 0;
150
382
        const auto* a_pos = a_data.data();
151
382
        const auto* b_pos = b_data.data();
152
153
69.2k
        for (size_t i = 0; i < size; ++i) {
154
68.8k
            c[i] = Op::apply(
155
68.8k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
68.8k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
68.8k
                    0);
158
159
68.8k
            prev_a_offset = a_offsets[i];
160
68.8k
        }
161
382
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
1.58k
                                                 PaddedPODArray<UInt8>& c) {
148
1.58k
        size_t size = a_offsets.size();
149
1.58k
        ColumnString::Offset prev_a_offset = 0;
150
1.58k
        const auto* a_pos = a_data.data();
151
1.58k
        const auto* b_pos = b_data.data();
152
153
122k
        for (size_t i = 0; i < size; ++i) {
154
120k
            c[i] = Op::apply(
155
120k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
120k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
120k
                    0);
158
159
120k
            prev_a_offset = a_offsets[i];
160
120k
        }
161
1.58k
    }
162
163
    static void constant_string_vector(const ColumnString::Chars& a_data,
164
                                       ColumnString::Offset a_size,
165
                                       const ColumnString::Chars& b_data,
166
                                       const ColumnString::Offsets& b_offsets,
167
0
                                       PaddedPODArray<UInt8>& c) {
168
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
169
0
                                                                               a_data, a_size, c);
170
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
171
};
172
173
template <bool positive>
174
struct StringEqualsImpl {
175
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
176
                                                      const ColumnString::Offsets& a_offsets,
177
                                                      const ColumnString::Chars& b_data,
178
                                                      const ColumnString::Offsets& b_offsets,
179
0
                                                      PaddedPODArray<UInt8>& c) {
180
0
        size_t size = a_offsets.size();
181
0
        ColumnString::Offset prev_a_offset = 0;
182
0
        ColumnString::Offset prev_b_offset = 0;
183
0
        const auto* a_pos = a_data.data();
184
0
        const auto* b_pos = b_data.data();
185
186
0
        for (size_t i = 0; i < size; ++i) {
187
0
            auto a_size = a_offsets[i] - prev_a_offset;
188
0
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
0
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
0
                                                               b_pos + prev_b_offset, b_size);
192
193
0
            prev_a_offset = a_offsets[i];
194
0
            prev_b_offset = b_offsets[i];
195
0
        }
196
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
197
198
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
199
                                                 const ColumnString::Offsets& a_offsets,
200
                                                 const ColumnString::Chars& b_data,
201
                                                 ColumnString::Offset b_size,
202
11.6k
                                                 PaddedPODArray<UInt8>& c) {
203
11.6k
        size_t size = a_offsets.size();
204
11.6k
        if (b_size == 0) {
205
0
            auto* __restrict data = c.data();
206
0
            auto* __restrict offsets = a_offsets.data();
207
208
0
            ColumnString::Offset prev_a_offset = 0;
209
0
            for (size_t i = 0; i < size; ++i) {
210
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
0
                prev_a_offset = offsets[i];
212
0
            }
213
11.6k
        } else {
214
11.6k
            ColumnString::Offset prev_a_offset = 0;
215
11.6k
            const auto* a_pos = a_data.data();
216
11.6k
            const auto* b_pos = b_data.data();
217
7.42M
            for (size_t i = 0; i < size; ++i) {
218
7.40M
                auto a_size = a_offsets[i] - prev_a_offset;
219
7.40M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
7.40M
                                                                   b_pos, b_size);
221
7.40M
                prev_a_offset = a_offsets[i];
222
7.40M
            }
223
11.6k
        }
224
11.6k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
202
10.2k
                                                 PaddedPODArray<UInt8>& c) {
203
10.2k
        size_t size = a_offsets.size();
204
10.2k
        if (b_size == 0) {
205
0
            auto* __restrict data = c.data();
206
0
            auto* __restrict offsets = a_offsets.data();
207
208
0
            ColumnString::Offset prev_a_offset = 0;
209
0
            for (size_t i = 0; i < size; ++i) {
210
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
0
                prev_a_offset = offsets[i];
212
0
            }
213
10.2k
        } else {
214
10.2k
            ColumnString::Offset prev_a_offset = 0;
215
10.2k
            const auto* a_pos = a_data.data();
216
10.2k
            const auto* b_pos = b_data.data();
217
6.50M
            for (size_t i = 0; i < size; ++i) {
218
6.49M
                auto a_size = a_offsets[i] - prev_a_offset;
219
6.49M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
6.49M
                                                                   b_pos, b_size);
221
6.49M
                prev_a_offset = a_offsets[i];
222
6.49M
            }
223
10.2k
        }
224
10.2k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
202
1.40k
                                                 PaddedPODArray<UInt8>& c) {
203
1.40k
        size_t size = a_offsets.size();
204
1.40k
        if (b_size == 0) {
205
0
            auto* __restrict data = c.data();
206
0
            auto* __restrict offsets = a_offsets.data();
207
208
0
            ColumnString::Offset prev_a_offset = 0;
209
0
            for (size_t i = 0; i < size; ++i) {
210
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
0
                prev_a_offset = offsets[i];
212
0
            }
213
1.40k
        } else {
214
1.40k
            ColumnString::Offset prev_a_offset = 0;
215
1.40k
            const auto* a_pos = a_data.data();
216
1.40k
            const auto* b_pos = b_data.data();
217
914k
            for (size_t i = 0; i < size; ++i) {
218
912k
                auto a_size = a_offsets[i] - prev_a_offset;
219
912k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
912k
                                                                   b_pos, b_size);
221
912k
                prev_a_offset = a_offsets[i];
222
912k
            }
223
1.40k
        }
224
1.40k
    }
225
226
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
227
                                                 ColumnString::Offset a_size,
228
                                                 const ColumnString::Chars& b_data,
229
                                                 const ColumnString::Offsets& b_offsets,
230
0
                                                 PaddedPODArray<UInt8>& c) {
231
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
232
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
233
};
234
235
template <PrimitiveType PT>
236
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
237
238
template <PrimitiveType PT>
239
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
240
241
struct NameEquals {
242
    static constexpr auto name = "eq";
243
};
244
struct NameNotEquals {
245
    static constexpr auto name = "ne";
246
};
247
struct NameLess {
248
    static constexpr auto name = "lt";
249
};
250
struct NameGreater {
251
    static constexpr auto name = "gt";
252
};
253
struct NameLessOrEquals {
254
    static constexpr auto name = "le";
255
};
256
struct NameGreaterOrEquals {
257
    static constexpr auto name = "ge";
258
};
259
260
template <template <PrimitiveType> class Op, typename Name>
261
class FunctionComparison : public IFunction {
262
public:
263
    static constexpr auto name = Name::name;
264
192k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
264
184k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
264
207
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
264
1.48k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
264
2.31k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
264
476
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
264
3.90k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
265
266
192k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
266
184k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
266
207
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
266
1.48k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
266
2.31k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
266
476
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
266
3.88k
    FunctionComparison() = default;
267
268
567k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
268
534k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
268
516
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
268
3.23k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
268
13.4k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
268
1.53k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
268
13.6k
    double execute_cost() const override { return 0.5; }
269
270
private:
271
    template <PrimitiveType PT>
272
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
273
144k
                            const ColumnPtr& col_right_ptr) const {
274
144k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
144k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
144k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
144k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
144k
        DCHECK(!(left_is_const && right_is_const));
281
282
144k
        if (!left_is_const && !right_is_const) {
283
173
            auto col_res = ColumnUInt8::create();
284
285
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
173
            vec_res.resize(col_left->get_data().size());
287
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
173
                              typename PrimitiveTypeTraits<PT>::CppType,
289
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
173
                                                     vec_res);
291
292
173
            block.replace_by_position(result, std::move(col_res));
293
144k
        } else if (!left_is_const && right_is_const) {
294
144k
            auto col_res = ColumnUInt8::create();
295
296
144k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
144k
            vec_res.resize(col_left->size());
298
144k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
144k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
144k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
144k
                                                       col_right->get_element(0), vec_res);
302
303
144k
            block.replace_by_position(result, std::move(col_res));
304
144k
        } else if (left_is_const && !right_is_const) {
305
2
            auto col_res = ColumnUInt8::create();
306
307
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
2
            vec_res.resize(col_right->size());
309
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
2
                              typename PrimitiveTypeTraits<PT>::CppType,
311
2
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
2
                                                       col_right->get_data(), vec_res);
313
314
2
            block.replace_by_position(result, std::move(col_res));
315
2
        }
316
144k
        return Status::OK();
317
144k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.50k
                            const ColumnPtr& col_right_ptr) const {
274
1.50k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.50k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.50k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.50k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.50k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.50k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
1.50k
        } else if (!left_is_const && right_is_const) {
294
1.49k
            auto col_res = ColumnUInt8::create();
295
296
1.49k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.49k
            vec_res.resize(col_left->size());
298
1.49k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.49k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.49k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.49k
                                                       col_right->get_element(0), vec_res);
302
303
1.49k
            block.replace_by_position(result, std::move(col_res));
304
1.49k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.50k
        return Status::OK();
317
1.50k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
500
                            const ColumnPtr& col_right_ptr) const {
274
500
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
500
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
500
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
500
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
500
        DCHECK(!(left_is_const && right_is_const));
281
282
500
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
500
        } else if (!left_is_const && right_is_const) {
294
500
            auto col_res = ColumnUInt8::create();
295
296
500
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
500
            vec_res.resize(col_left->size());
298
500
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
500
                              typename PrimitiveTypeTraits<PT>::CppType,
300
500
                              Op<PT>>::vector_constant(col_left->get_data(),
301
500
                                                       col_right->get_element(0), vec_res);
302
303
500
            block.replace_by_position(result, std::move(col_res));
304
500
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
500
        return Status::OK();
317
500
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
198
                            const ColumnPtr& col_right_ptr) const {
274
198
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
198
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
198
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
198
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
198
        DCHECK(!(left_is_const && right_is_const));
281
282
198
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
198
        } else if (!left_is_const && right_is_const) {
294
198
            auto col_res = ColumnUInt8::create();
295
296
198
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
198
            vec_res.resize(col_left->size());
298
198
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
198
                              typename PrimitiveTypeTraits<PT>::CppType,
300
198
                              Op<PT>>::vector_constant(col_left->get_data(),
301
198
                                                       col_right->get_element(0), vec_res);
302
303
198
            block.replace_by_position(result, std::move(col_res));
304
198
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
198
        return Status::OK();
317
198
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2.02k
                            const ColumnPtr& col_right_ptr) const {
274
2.02k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2.02k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2.02k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2.02k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2.02k
        DCHECK(!(left_is_const && right_is_const));
281
282
2.02k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
2.02k
        } else if (!left_is_const && right_is_const) {
294
2.02k
            auto col_res = ColumnUInt8::create();
295
296
2.02k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2.02k
            vec_res.resize(col_left->size());
298
2.02k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2.02k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2.02k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2.02k
                                                       col_right->get_element(0), vec_res);
302
303
2.02k
            block.replace_by_position(result, std::move(col_res));
304
2.02k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2.02k
        return Status::OK();
317
2.02k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.04k
                            const ColumnPtr& col_right_ptr) const {
274
1.04k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.04k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.04k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.04k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.04k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.04k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
1.04k
        } else if (!left_is_const && right_is_const) {
294
1.04k
            auto col_res = ColumnUInt8::create();
295
296
1.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.04k
            vec_res.resize(col_left->size());
298
1.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.04k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.04k
                                                       col_right->get_element(0), vec_res);
302
303
1.04k
            block.replace_by_position(result, std::move(col_res));
304
1.04k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.04k
        return Status::OK();
317
1.04k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
28.6k
                            const ColumnPtr& col_right_ptr) const {
274
28.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
28.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
28.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
28.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
28.6k
        DCHECK(!(left_is_const && right_is_const));
281
282
28.6k
        if (!left_is_const && !right_is_const) {
283
24
            auto col_res = ColumnUInt8::create();
284
285
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
24
            vec_res.resize(col_left->get_data().size());
287
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
24
                              typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
24
                                                     vec_res);
291
292
24
            block.replace_by_position(result, std::move(col_res));
293
28.5k
        } else if (!left_is_const && right_is_const) {
294
28.5k
            auto col_res = ColumnUInt8::create();
295
296
28.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
28.5k
            vec_res.resize(col_left->size());
298
28.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
28.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
28.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
28.5k
                                                       col_right->get_element(0), vec_res);
302
303
28.5k
            block.replace_by_position(result, std::move(col_res));
304
28.5k
        } else if (left_is_const && !right_is_const) {
305
2
            auto col_res = ColumnUInt8::create();
306
307
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
2
            vec_res.resize(col_right->size());
309
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
2
                              typename PrimitiveTypeTraits<PT>::CppType,
311
2
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
2
                                                       col_right->get_data(), vec_res);
313
314
2
            block.replace_by_position(result, std::move(col_res));
315
2
        }
316
28.6k
        return Status::OK();
317
28.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
22.0k
                            const ColumnPtr& col_right_ptr) const {
274
22.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
22.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
22.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
22.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
22.0k
        DCHECK(!(left_is_const && right_is_const));
281
282
22.0k
        if (!left_is_const && !right_is_const) {
283
136
            auto col_res = ColumnUInt8::create();
284
285
136
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
136
            vec_res.resize(col_left->get_data().size());
287
136
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
136
                              typename PrimitiveTypeTraits<PT>::CppType,
289
136
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
136
                                                     vec_res);
291
292
136
            block.replace_by_position(result, std::move(col_res));
293
21.8k
        } else if (!left_is_const && right_is_const) {
294
21.8k
            auto col_res = ColumnUInt8::create();
295
296
21.8k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
21.8k
            vec_res.resize(col_left->size());
298
21.8k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
21.8k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
21.8k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
21.8k
                                                       col_right->get_element(0), vec_res);
302
303
21.8k
            block.replace_by_position(result, std::move(col_res));
304
21.8k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
22.0k
        return Status::OK();
317
22.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
30
                            const ColumnPtr& col_right_ptr) const {
274
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
30
        DCHECK(!(left_is_const && right_is_const));
281
282
30
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
30
        } else if (!left_is_const && right_is_const) {
294
30
            auto col_res = ColumnUInt8::create();
295
296
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
30
            vec_res.resize(col_left->size());
298
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
30
                              typename PrimitiveTypeTraits<PT>::CppType,
300
30
                              Op<PT>>::vector_constant(col_left->get_data(),
301
30
                                                       col_right->get_element(0), vec_res);
302
303
30
            block.replace_by_position(result, std::move(col_res));
304
30
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
30
        return Status::OK();
317
30
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
4
        } else if (!left_is_const && right_is_const) {
294
4
            auto col_res = ColumnUInt8::create();
295
296
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
4
            vec_res.resize(col_left->size());
298
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
4
                              typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              Op<PT>>::vector_constant(col_left->get_data(),
301
4
                                                       col_right->get_element(0), vec_res);
302
303
4
            block.replace_by_position(result, std::move(col_res));
304
4
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
4
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
69
                            const ColumnPtr& col_right_ptr) const {
274
69
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
69
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
69
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
69
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
69
        DCHECK(!(left_is_const && right_is_const));
281
282
69
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
68
        } else if (!left_is_const && right_is_const) {
294
68
            auto col_res = ColumnUInt8::create();
295
296
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
68
            vec_res.resize(col_left->size());
298
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
68
                              typename PrimitiveTypeTraits<PT>::CppType,
300
68
                              Op<PT>>::vector_constant(col_left->get_data(),
301
68
                                                       col_right->get_element(0), vec_res);
302
303
68
            block.replace_by_position(result, std::move(col_res));
304
68
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
69
        return Status::OK();
317
69
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
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
273
8
                            const ColumnPtr& col_right_ptr) const {
274
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
8
        DCHECK(!(left_is_const && right_is_const));
281
282
8
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
8
        } else if (!left_is_const && right_is_const) {
294
8
            auto col_res = ColumnUInt8::create();
295
296
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
8
            vec_res.resize(col_left->size());
298
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
8
                              typename PrimitiveTypeTraits<PT>::CppType,
300
8
                              Op<PT>>::vector_constant(col_left->get_data(),
301
8
                                                       col_right->get_element(0), vec_res);
302
303
8
            block.replace_by_position(result, std::move(col_res));
304
8
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
8
        return Status::OK();
317
8
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2
                            const ColumnPtr& col_right_ptr) const {
274
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2
        DCHECK(!(left_is_const && right_is_const));
281
282
2
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
2
        } else if (!left_is_const && right_is_const) {
294
2
            auto col_res = ColumnUInt8::create();
295
296
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2
            vec_res.resize(col_left->size());
298
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2
                                                       col_right->get_element(0), vec_res);
302
303
2
            block.replace_by_position(result, std::move(col_res));
304
2
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2
        return Status::OK();
317
2
    }
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
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
16
            auto col_res = ColumnUInt8::create();
295
296
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
16
            vec_res.resize(col_left->size());
298
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
16
                              typename PrimitiveTypeTraits<PT>::CppType,
300
16
                              Op<PT>>::vector_constant(col_left->get_data(),
301
16
                                                       col_right->get_element(0), vec_res);
302
303
16
            block.replace_by_position(result, std::move(col_res));
304
16
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
26
                            const ColumnPtr& col_right_ptr) const {
274
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
26
        DCHECK(!(left_is_const && right_is_const));
281
282
26
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
26
        } else if (!left_is_const && right_is_const) {
294
26
            auto col_res = ColumnUInt8::create();
295
296
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
26
            vec_res.resize(col_left->size());
298
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
26
                              typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              Op<PT>>::vector_constant(col_left->get_data(),
301
26
                                                       col_right->get_element(0), vec_res);
302
303
26
            block.replace_by_position(result, std::move(col_res));
304
26
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
26
        return Status::OK();
317
26
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2.58k
                            const ColumnPtr& col_right_ptr) const {
274
2.58k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2.58k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2.58k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2.58k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2.58k
        DCHECK(!(left_is_const && right_is_const));
281
282
2.58k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
2.58k
        } else if (!left_is_const && right_is_const) {
294
2.58k
            auto col_res = ColumnUInt8::create();
295
296
2.58k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2.58k
            vec_res.resize(col_left->size());
298
2.58k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2.58k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2.58k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2.58k
                                                       col_right->get_element(0), vec_res);
302
303
2.58k
            block.replace_by_position(result, std::move(col_res));
304
2.58k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2.58k
        return Status::OK();
317
2.58k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.90k
                            const ColumnPtr& col_right_ptr) const {
274
1.90k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.90k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.90k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.90k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.90k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.90k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
1.90k
        } else if (!left_is_const && right_is_const) {
294
1.90k
            auto col_res = ColumnUInt8::create();
295
296
1.90k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.90k
            vec_res.resize(col_left->size());
298
1.90k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.90k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.90k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.90k
                                                       col_right->get_element(0), vec_res);
302
303
1.90k
            block.replace_by_position(result, std::move(col_res));
304
1.90k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.90k
        return Status::OK();
317
1.90k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
116
                            const ColumnPtr& col_right_ptr) const {
274
116
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
116
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
116
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
116
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
116
        DCHECK(!(left_is_const && right_is_const));
281
282
116
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
116
        } else if (!left_is_const && right_is_const) {
294
116
            auto col_res = ColumnUInt8::create();
295
296
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
116
            vec_res.resize(col_left->size());
298
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
116
                              typename PrimitiveTypeTraits<PT>::CppType,
300
116
                              Op<PT>>::vector_constant(col_left->get_data(),
301
116
                                                       col_right->get_element(0), vec_res);
302
303
116
            block.replace_by_position(result, std::move(col_res));
304
116
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
116
        return Status::OK();
317
116
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
92
                            const ColumnPtr& col_right_ptr) const {
274
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
92
        DCHECK(!(left_is_const && right_is_const));
281
282
92
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
92
        } else if (!left_is_const && right_is_const) {
294
92
            auto col_res = ColumnUInt8::create();
295
296
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
92
            vec_res.resize(col_left->size());
298
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
92
                              typename PrimitiveTypeTraits<PT>::CppType,
300
92
                              Op<PT>>::vector_constant(col_left->get_data(),
301
92
                                                       col_right->get_element(0), vec_res);
302
303
92
            block.replace_by_position(result, std::move(col_res));
304
92
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
92
        return Status::OK();
317
92
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
8
                            const ColumnPtr& col_right_ptr) const {
274
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
8
        DCHECK(!(left_is_const && right_is_const));
281
282
8
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
8
        } else if (!left_is_const && right_is_const) {
294
8
            auto col_res = ColumnUInt8::create();
295
296
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
8
            vec_res.resize(col_left->size());
298
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
8
                              typename PrimitiveTypeTraits<PT>::CppType,
300
8
                              Op<PT>>::vector_constant(col_left->get_data(),
301
8
                                                       col_right->get_element(0), vec_res);
302
303
8
            block.replace_by_position(result, std::move(col_res));
304
8
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
8
        return Status::OK();
317
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
168
                            const ColumnPtr& col_right_ptr) const {
274
168
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
168
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
168
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
168
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
168
        DCHECK(!(left_is_const && right_is_const));
281
282
168
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
168
        } else if (!left_is_const && right_is_const) {
294
168
            auto col_res = ColumnUInt8::create();
295
296
168
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
168
            vec_res.resize(col_left->size());
298
168
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
168
                              typename PrimitiveTypeTraits<PT>::CppType,
300
168
                              Op<PT>>::vector_constant(col_left->get_data(),
301
168
                                                       col_right->get_element(0), vec_res);
302
303
168
            block.replace_by_position(result, std::move(col_res));
304
168
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
168
        return Status::OK();
317
168
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16.4k
                            const ColumnPtr& col_right_ptr) const {
274
16.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16.4k
        DCHECK(!(left_is_const && right_is_const));
281
282
16.4k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
16.4k
        } else if (!left_is_const && right_is_const) {
294
16.4k
            auto col_res = ColumnUInt8::create();
295
296
16.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
16.4k
            vec_res.resize(col_left->size());
298
16.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
16.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
16.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
16.4k
                                                       col_right->get_element(0), vec_res);
302
303
16.4k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16.4k
        return Status::OK();
317
16.4k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
12.1k
                            const ColumnPtr& col_right_ptr) const {
274
12.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
12.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
12.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
12.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
12.1k
        DCHECK(!(left_is_const && right_is_const));
281
282
12.1k
        if (!left_is_const && !right_is_const) {
283
12
            auto col_res = ColumnUInt8::create();
284
285
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
12
            vec_res.resize(col_left->get_data().size());
287
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
12
                              typename PrimitiveTypeTraits<PT>::CppType,
289
12
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
12
                                                     vec_res);
291
292
12
            block.replace_by_position(result, std::move(col_res));
293
12.1k
        } else if (!left_is_const && right_is_const) {
294
12.1k
            auto col_res = ColumnUInt8::create();
295
296
12.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
12.1k
            vec_res.resize(col_left->size());
298
12.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
12.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
12.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
12.1k
                                                       col_right->get_element(0), vec_res);
302
303
12.1k
            block.replace_by_position(result, std::move(col_res));
304
12.1k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
12.1k
        return Status::OK();
317
12.1k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
16
            auto col_res = ColumnUInt8::create();
295
296
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
16
            vec_res.resize(col_left->size());
298
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
16
                              typename PrimitiveTypeTraits<PT>::CppType,
300
16
                              Op<PT>>::vector_constant(col_left->get_data(),
301
16
                                                       col_right->get_element(0), vec_res);
302
303
16
            block.replace_by_position(result, std::move(col_res));
304
16
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.95k
                            const ColumnPtr& col_right_ptr) const {
274
1.95k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.95k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.95k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.95k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.95k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.95k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
1.95k
        } else if (!left_is_const && right_is_const) {
294
1.95k
            auto col_res = ColumnUInt8::create();
295
296
1.95k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.95k
            vec_res.resize(col_left->size());
298
1.95k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.95k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.95k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.95k
                                                       col_right->get_element(0), vec_res);
302
303
1.95k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.95k
        return Status::OK();
317
1.95k
    }
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
273
122
                            const ColumnPtr& col_right_ptr) const {
274
122
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
122
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
122
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
122
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
122
        DCHECK(!(left_is_const && right_is_const));
281
282
124
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
124
        } else if (!left_is_const && right_is_const) {
294
124
            auto col_res = ColumnUInt8::create();
295
296
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
124
            vec_res.resize(col_left->size());
298
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
124
                              typename PrimitiveTypeTraits<PT>::CppType,
300
124
                              Op<PT>>::vector_constant(col_left->get_data(),
301
124
                                                       col_right->get_element(0), vec_res);
302
303
124
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
122
        return Status::OK();
317
122
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.03k
                            const ColumnPtr& col_right_ptr) const {
274
1.03k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.03k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.03k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.03k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.03k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.03k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
1.03k
        } else if (!left_is_const && right_is_const) {
294
1.03k
            auto col_res = ColumnUInt8::create();
295
296
1.03k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.03k
            vec_res.resize(col_left->size());
298
1.03k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.03k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.03k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.03k
                                                       col_right->get_element(0), vec_res);
302
303
1.03k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.03k
        return Status::OK();
317
1.03k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
474
                            const ColumnPtr& col_right_ptr) const {
274
474
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
474
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
474
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
474
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
474
        DCHECK(!(left_is_const && right_is_const));
281
282
474
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
474
        } else if (!left_is_const && right_is_const) {
294
474
            auto col_res = ColumnUInt8::create();
295
296
474
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
474
            vec_res.resize(col_left->size());
298
474
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
474
                              typename PrimitiveTypeTraits<PT>::CppType,
300
474
                              Op<PT>>::vector_constant(col_left->get_data(),
301
474
                                                       col_right->get_element(0), vec_res);
302
303
474
            block.replace_by_position(result, std::move(col_res));
304
474
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
474
        return Status::OK();
317
474
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2
                            const ColumnPtr& col_right_ptr) const {
274
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2
        DCHECK(!(left_is_const && right_is_const));
281
282
2
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
2
        } else if (!left_is_const && right_is_const) {
294
2
            auto col_res = ColumnUInt8::create();
295
296
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2
            vec_res.resize(col_left->size());
298
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2
                                                       col_right->get_element(0), vec_res);
302
303
2
            block.replace_by_position(result, std::move(col_res));
304
2
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2
        return Status::OK();
317
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
15.0k
                            const ColumnPtr& col_right_ptr) const {
274
15.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
15.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
15.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
15.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
15.0k
        DCHECK(!(left_is_const && right_is_const));
281
282
15.0k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
15.0k
        } else if (!left_is_const && right_is_const) {
294
14.9k
            auto col_res = ColumnUInt8::create();
295
296
14.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
14.9k
            vec_res.resize(col_left->size());
298
14.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
14.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
14.9k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
14.9k
                                                       col_right->get_element(0), vec_res);
302
303
14.9k
            block.replace_by_position(result, std::move(col_res));
304
14.9k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
15.0k
        return Status::OK();
317
15.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
600
                            const ColumnPtr& col_right_ptr) const {
274
600
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
600
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
600
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
600
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
600
        DCHECK(!(left_is_const && right_is_const));
281
282
600
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
600
        } else if (!left_is_const && right_is_const) {
294
600
            auto col_res = ColumnUInt8::create();
295
296
600
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
600
            vec_res.resize(col_left->size());
298
600
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
600
                              typename PrimitiveTypeTraits<PT>::CppType,
300
600
                              Op<PT>>::vector_constant(col_left->get_data(),
301
600
                                                       col_right->get_element(0), vec_res);
302
303
600
            block.replace_by_position(result, std::move(col_res));
304
600
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
600
        return Status::OK();
317
600
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
16
            auto col_res = ColumnUInt8::create();
295
296
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
16
            vec_res.resize(col_left->size());
298
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
16
                              typename PrimitiveTypeTraits<PT>::CppType,
300
16
                              Op<PT>>::vector_constant(col_left->get_data(),
301
16
                                                       col_right->get_element(0), vec_res);
302
303
16
            block.replace_by_position(result, std::move(col_res));
304
16
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
104
                            const ColumnPtr& col_right_ptr) const {
274
104
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
104
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
104
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
104
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
104
        DCHECK(!(left_is_const && right_is_const));
281
282
104
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
104
        } else if (!left_is_const && right_is_const) {
294
104
            auto col_res = ColumnUInt8::create();
295
296
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
104
            vec_res.resize(col_left->size());
298
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
104
                              typename PrimitiveTypeTraits<PT>::CppType,
300
104
                              Op<PT>>::vector_constant(col_left->get_data(),
301
104
                                                       col_right->get_element(0), vec_res);
302
303
104
            block.replace_by_position(result, std::move(col_res));
304
104
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
104
        return Status::OK();
317
104
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
12
                            const ColumnPtr& col_right_ptr) const {
274
12
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
12
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
12
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
12
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
12
        DCHECK(!(left_is_const && right_is_const));
281
282
12
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
12
        } else if (!left_is_const && right_is_const) {
294
12
            auto col_res = ColumnUInt8::create();
295
296
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
12
            vec_res.resize(col_left->size());
298
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
12
                              typename PrimitiveTypeTraits<PT>::CppType,
300
12
                              Op<PT>>::vector_constant(col_left->get_data(),
301
12
                                                       col_right->get_element(0), vec_res);
302
303
12
            block.replace_by_position(result, std::move(col_res));
304
12
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
12
        return Status::OK();
317
12
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
94
                            const ColumnPtr& col_right_ptr) const {
274
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
94
        DCHECK(!(left_is_const && right_is_const));
281
282
94
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
94
        } else if (!left_is_const && right_is_const) {
294
94
            auto col_res = ColumnUInt8::create();
295
296
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
94
            vec_res.resize(col_left->size());
298
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
94
                              typename PrimitiveTypeTraits<PT>::CppType,
300
94
                              Op<PT>>::vector_constant(col_left->get_data(),
301
94
                                                       col_right->get_element(0), vec_res);
302
303
94
            block.replace_by_position(result, std::move(col_res));
304
94
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
94
        return Status::OK();
317
94
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
278
                            const ColumnPtr& col_right_ptr) const {
274
278
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
278
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
278
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
278
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
278
        DCHECK(!(left_is_const && right_is_const));
281
282
278
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
278
        } else if (!left_is_const && right_is_const) {
294
278
            auto col_res = ColumnUInt8::create();
295
296
278
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
278
            vec_res.resize(col_left->size());
298
278
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
278
                              typename PrimitiveTypeTraits<PT>::CppType,
300
278
                              Op<PT>>::vector_constant(col_left->get_data(),
301
278
                                                       col_right->get_element(0), vec_res);
302
303
278
            block.replace_by_position(result, std::move(col_res));
304
278
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
278
        return Status::OK();
317
278
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
34
                            const ColumnPtr& col_right_ptr) const {
274
34
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
34
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
34
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
34
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
34
        DCHECK(!(left_is_const && right_is_const));
281
282
34
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
34
        } else if (!left_is_const && right_is_const) {
294
34
            auto col_res = ColumnUInt8::create();
295
296
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
34
            vec_res.resize(col_left->size());
298
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
34
                              typename PrimitiveTypeTraits<PT>::CppType,
300
34
                              Op<PT>>::vector_constant(col_left->get_data(),
301
34
                                                       col_right->get_element(0), vec_res);
302
303
34
            block.replace_by_position(result, std::move(col_res));
304
34
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
34
        return Status::OK();
317
34
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
254
                            const ColumnPtr& col_right_ptr) const {
274
254
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
254
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
254
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
254
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
254
        DCHECK(!(left_is_const && right_is_const));
281
282
254
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
254
        } else if (!left_is_const && right_is_const) {
294
254
            auto col_res = ColumnUInt8::create();
295
296
254
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
254
            vec_res.resize(col_left->size());
298
254
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
254
                              typename PrimitiveTypeTraits<PT>::CppType,
300
254
                              Op<PT>>::vector_constant(col_left->get_data(),
301
254
                                                       col_right->get_element(0), vec_res);
302
303
254
            block.replace_by_position(result, std::move(col_res));
304
254
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
254
        return Status::OK();
317
254
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
5.14k
                            const ColumnPtr& col_right_ptr) const {
274
5.14k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
5.14k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
5.14k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
5.14k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
5.14k
        DCHECK(!(left_is_const && right_is_const));
281
282
5.14k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
5.14k
        } else if (!left_is_const && right_is_const) {
294
5.14k
            auto col_res = ColumnUInt8::create();
295
296
5.14k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
5.14k
            vec_res.resize(col_left->size());
298
5.14k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
5.14k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
5.14k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
5.14k
                                                       col_right->get_element(0), vec_res);
302
303
5.14k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
5.14k
        return Status::OK();
317
5.14k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
906
                            const ColumnPtr& col_right_ptr) const {
274
906
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
906
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
906
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
906
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
906
        DCHECK(!(left_is_const && right_is_const));
281
282
906
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
906
        } else if (!left_is_const && right_is_const) {
294
906
            auto col_res = ColumnUInt8::create();
295
296
906
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
906
            vec_res.resize(col_left->size());
298
906
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
906
                              typename PrimitiveTypeTraits<PT>::CppType,
300
906
                              Op<PT>>::vector_constant(col_left->get_data(),
301
906
                                                       col_right->get_element(0), vec_res);
302
303
906
            block.replace_by_position(result, std::move(col_res));
304
906
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
906
        return Status::OK();
317
906
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
26
                            const ColumnPtr& col_right_ptr) const {
274
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
26
        DCHECK(!(left_is_const && right_is_const));
281
282
26
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
26
        } else if (!left_is_const && right_is_const) {
294
26
            auto col_res = ColumnUInt8::create();
295
296
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
26
            vec_res.resize(col_left->size());
298
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
26
                              typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              Op<PT>>::vector_constant(col_left->get_data(),
301
26
                                                       col_right->get_element(0), vec_res);
302
303
26
            block.replace_by_position(result, std::move(col_res));
304
26
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
26
        return Status::OK();
317
26
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
40
                            const ColumnPtr& col_right_ptr) const {
274
40
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
40
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
40
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
40
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
40
        DCHECK(!(left_is_const && right_is_const));
281
282
40
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
40
        } else if (!left_is_const && right_is_const) {
294
40
            auto col_res = ColumnUInt8::create();
295
296
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
40
            vec_res.resize(col_left->size());
298
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
40
                              typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              Op<PT>>::vector_constant(col_left->get_data(),
301
40
                                                       col_right->get_element(0), vec_res);
302
303
40
            block.replace_by_position(result, std::move(col_res));
304
40
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
40
        return Status::OK();
317
40
    }
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
273
302
                            const ColumnPtr& col_right_ptr) const {
274
302
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
302
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
302
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
302
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
302
        DCHECK(!(left_is_const && right_is_const));
281
282
302
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
302
        } else if (!left_is_const && right_is_const) {
294
302
            auto col_res = ColumnUInt8::create();
295
296
302
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
302
            vec_res.resize(col_left->size());
298
302
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
302
                              typename PrimitiveTypeTraits<PT>::CppType,
300
302
                              Op<PT>>::vector_constant(col_left->get_data(),
301
302
                                                       col_right->get_element(0), vec_res);
302
303
302
            block.replace_by_position(result, std::move(col_res));
304
302
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
302
        return Status::OK();
317
302
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
10.1k
                            const ColumnPtr& col_right_ptr) const {
274
10.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
10.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
10.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
10.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
10.1k
        DCHECK(!(left_is_const && right_is_const));
281
282
10.1k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
10.1k
        } else if (!left_is_const && right_is_const) {
294
10.1k
            auto col_res = ColumnUInt8::create();
295
296
10.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10.1k
            vec_res.resize(col_left->size());
298
10.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10.1k
                                                       col_right->get_element(0), vec_res);
302
303
10.1k
            block.replace_by_position(result, std::move(col_res));
304
10.1k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
10.1k
        return Status::OK();
317
10.1k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
422
                            const ColumnPtr& col_right_ptr) const {
274
422
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
422
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
422
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
422
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
422
        DCHECK(!(left_is_const && right_is_const));
281
282
422
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
422
        } else if (!left_is_const && right_is_const) {
294
422
            auto col_res = ColumnUInt8::create();
295
296
422
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
422
            vec_res.resize(col_left->size());
298
422
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
422
                              typename PrimitiveTypeTraits<PT>::CppType,
300
422
                              Op<PT>>::vector_constant(col_left->get_data(),
301
422
                                                       col_right->get_element(0), vec_res);
302
303
422
            block.replace_by_position(result, std::move(col_res));
304
422
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
422
        return Status::OK();
317
422
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
194
                            const ColumnPtr& col_right_ptr) const {
274
194
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
194
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
194
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
194
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
194
        DCHECK(!(left_is_const && right_is_const));
281
282
194
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
194
        } else if (!left_is_const && right_is_const) {
294
194
            auto col_res = ColumnUInt8::create();
295
296
194
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
194
            vec_res.resize(col_left->size());
298
194
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
194
                              typename PrimitiveTypeTraits<PT>::CppType,
300
194
                              Op<PT>>::vector_constant(col_left->get_data(),
301
194
                                                       col_right->get_element(0), vec_res);
302
303
194
            block.replace_by_position(result, std::move(col_res));
304
194
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
194
        return Status::OK();
317
194
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
220
                            const ColumnPtr& col_right_ptr) const {
274
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
220
        DCHECK(!(left_is_const && right_is_const));
281
282
220
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
220
        } else if (!left_is_const && right_is_const) {
294
220
            auto col_res = ColumnUInt8::create();
295
296
220
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
220
            vec_res.resize(col_left->size());
298
220
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
220
                              typename PrimitiveTypeTraits<PT>::CppType,
300
220
                              Op<PT>>::vector_constant(col_left->get_data(),
301
220
                                                       col_right->get_element(0), vec_res);
302
303
220
            block.replace_by_position(result, std::move(col_res));
304
220
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
220
        return Status::OK();
317
220
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16.5k
                            const ColumnPtr& col_right_ptr) const {
274
16.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16.5k
        DCHECK(!(left_is_const && right_is_const));
281
282
16.5k
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
16.5k
        } else if (!left_is_const && right_is_const) {
294
16.5k
            auto col_res = ColumnUInt8::create();
295
296
16.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
16.5k
            vec_res.resize(col_left->size());
298
16.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
16.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
16.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
16.5k
                                                       col_right->get_element(0), vec_res);
302
303
16.5k
            block.replace_by_position(result, std::move(col_res));
304
16.5k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16.5k
        return Status::OK();
317
16.5k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
586
                            const ColumnPtr& col_right_ptr) const {
274
586
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
586
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
586
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
586
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
586
        DCHECK(!(left_is_const && right_is_const));
281
282
586
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
586
        } else if (!left_is_const && right_is_const) {
294
586
            auto col_res = ColumnUInt8::create();
295
296
586
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
586
            vec_res.resize(col_left->size());
298
586
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
586
                              typename PrimitiveTypeTraits<PT>::CppType,
300
586
                              Op<PT>>::vector_constant(col_left->get_data(),
301
586
                                                       col_right->get_element(0), vec_res);
302
303
586
            block.replace_by_position(result, std::move(col_res));
304
586
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
586
        return Status::OK();
317
586
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
14
            auto col_res = ColumnUInt8::create();
295
296
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
14
            vec_res.resize(col_left->size());
298
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
14
                              typename PrimitiveTypeTraits<PT>::CppType,
300
14
                              Op<PT>>::vector_constant(col_left->get_data(),
301
14
                                                       col_right->get_element(0), vec_res);
302
303
14
            block.replace_by_position(result, std::move(col_res));
304
14
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
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
273
104
                            const ColumnPtr& col_right_ptr) const {
274
104
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
104
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
104
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
104
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
104
        DCHECK(!(left_is_const && right_is_const));
281
282
104
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
104
        } else if (!left_is_const && right_is_const) {
294
104
            auto col_res = ColumnUInt8::create();
295
296
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
104
            vec_res.resize(col_left->size());
298
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
104
                              typename PrimitiveTypeTraits<PT>::CppType,
300
104
                              Op<PT>>::vector_constant(col_left->get_data(),
301
104
                                                       col_right->get_element(0), vec_res);
302
303
104
            block.replace_by_position(result, std::move(col_res));
304
104
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
104
        return Status::OK();
317
104
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
22
                            const ColumnPtr& col_right_ptr) const {
274
22
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
22
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
22
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
22
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
22
        DCHECK(!(left_is_const && right_is_const));
281
282
22
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
22
        } else if (!left_is_const && right_is_const) {
294
22
            auto col_res = ColumnUInt8::create();
295
296
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
22
            vec_res.resize(col_left->size());
298
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
22
                              typename PrimitiveTypeTraits<PT>::CppType,
300
22
                              Op<PT>>::vector_constant(col_left->get_data(),
301
22
                                                       col_right->get_element(0), vec_res);
302
303
22
            block.replace_by_position(result, std::move(col_res));
304
22
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
22
        return Status::OK();
317
22
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
318
319
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
320
144k
                           const ColumnWithTypeAndName& col_right) const {
321
144k
        auto call = [&](const auto& type) -> bool {
322
144k
            using DispatchType = std::decay_t<decltype(type)>;
323
144k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
144k
                    block, result, col_left, col_right);
325
144k
            return true;
326
144k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
94
        auto call = [&](const auto& type) -> bool {
322
94
            using DispatchType = std::decay_t<decltype(type)>;
323
94
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
94
                    block, result, col_left, col_right);
325
94
            return true;
326
94
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
104
        auto call = [&](const auto& type) -> bool {
322
104
            using DispatchType = std::decay_t<decltype(type)>;
323
104
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
104
                    block, result, col_left, col_right);
325
104
            return true;
326
104
        };
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
321
336
        auto call = [&](const auto& type) -> bool {
322
336
            using DispatchType = std::decay_t<decltype(type)>;
323
336
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
336
                    block, result, col_left, col_right);
325
336
            return true;
326
336
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
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
321
296
        auto call = [&](const auto& type) -> bool {
322
296
            using DispatchType = std::decay_t<decltype(type)>;
323
296
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
296
                    block, result, col_left, col_right);
325
296
            return true;
326
296
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
38
        auto call = [&](const auto& type) -> bool {
322
38
            using DispatchType = std::decay_t<decltype(type)>;
323
38
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
38
                    block, result, col_left, col_right);
325
38
            return true;
326
38
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
1.53k
        auto call = [&](const auto& type) -> bool {
322
1.53k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.53k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.53k
                    block, result, col_left, col_right);
325
1.53k
            return true;
326
1.53k
        };
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
321
728
        auto call = [&](const auto& type) -> bool {
322
728
            using DispatchType = std::decay_t<decltype(type)>;
323
728
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
728
                    block, result, col_left, col_right);
325
728
            return true;
326
728
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
8
        auto call = [&](const auto& type) -> bool {
322
8
            using DispatchType = std::decay_t<decltype(type)>;
323
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
8
                    block, result, col_left, col_right);
325
8
            return true;
326
8
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
200
        auto call = [&](const auto& type) -> bool {
322
200
            using DispatchType = std::decay_t<decltype(type)>;
323
200
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
200
                    block, result, col_left, col_right);
325
200
            return true;
326
200
        };
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
321
2
        auto call = [&](const auto& type) -> bool {
322
2
            using DispatchType = std::decay_t<decltype(type)>;
323
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
2
                    block, result, col_left, col_right);
325
2
            return true;
326
2
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
10
        auto call = [&](const auto& type) -> bool {
322
10
            using DispatchType = std::decay_t<decltype(type)>;
323
10
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
10
                    block, result, col_left, col_right);
325
10
            return true;
326
10
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
32
        auto call = [&](const auto& type) -> bool {
322
32
            using DispatchType = std::decay_t<decltype(type)>;
323
32
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
32
                    block, result, col_left, col_right);
325
32
            return true;
326
32
        };
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
321
200
        auto call = [&](const auto& type) -> bool {
322
200
            using DispatchType = std::decay_t<decltype(type)>;
323
200
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
200
                    block, result, col_left, col_right);
325
200
            return true;
326
200
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
139k
        auto call = [&](const auto& type) -> bool {
322
139k
            using DispatchType = std::decay_t<decltype(type)>;
323
139k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
139k
                    block, result, col_left, col_right);
325
139k
            return true;
326
139k
        };
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
321
736
        auto call = [&](const auto& type) -> bool {
322
736
            using DispatchType = std::decay_t<decltype(type)>;
323
736
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
736
                    block, result, col_left, col_right);
325
736
            return true;
326
736
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
327
328
144k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
144k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
144k
        return Status::OK();
339
144k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
534
                           const ColumnWithTypeAndName& col_right) const {
321
534
        auto call = [&](const auto& type) -> bool {
322
534
            using DispatchType = std::decay_t<decltype(type)>;
323
534
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
534
                    block, result, col_left, col_right);
325
534
            return true;
326
534
        };
327
328
534
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
534
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
534
        return Status::OK();
339
534
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
296
                           const ColumnWithTypeAndName& col_right) const {
321
296
        auto call = [&](const auto& type) -> bool {
322
296
            using DispatchType = std::decay_t<decltype(type)>;
323
296
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
296
                    block, result, col_left, col_right);
325
296
            return true;
326
296
        };
327
328
296
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
296
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
296
        return Status::OK();
339
296
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
2.29k
                           const ColumnWithTypeAndName& col_right) const {
321
2.29k
        auto call = [&](const auto& type) -> bool {
322
2.29k
            using DispatchType = std::decay_t<decltype(type)>;
323
2.29k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
2.29k
                    block, result, col_left, col_right);
325
2.29k
            return true;
326
2.29k
        };
327
328
2.29k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
2.29k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
2.29k
        return Status::OK();
339
2.29k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
212
                           const ColumnWithTypeAndName& col_right) const {
321
212
        auto call = [&](const auto& type) -> bool {
322
212
            using DispatchType = std::decay_t<decltype(type)>;
323
212
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
212
                    block, result, col_left, col_right);
325
212
            return true;
326
212
        };
327
328
212
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
212
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
212
        return Status::OK();
339
212
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
242
                           const ColumnWithTypeAndName& col_right) const {
321
242
        auto call = [&](const auto& type) -> bool {
322
242
            using DispatchType = std::decay_t<decltype(type)>;
323
242
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
242
                    block, result, col_left, col_right);
325
242
            return true;
326
242
        };
327
328
242
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
242
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
242
        return Status::OK();
339
242
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
140k
                           const ColumnWithTypeAndName& col_right) const {
321
140k
        auto call = [&](const auto& type) -> bool {
322
140k
            using DispatchType = std::decay_t<decltype(type)>;
323
140k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
140k
                    block, result, col_left, col_right);
325
140k
            return true;
326
140k
        };
327
328
140k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
140k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
140k
        return Status::OK();
339
140k
    }
340
341
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
342
13.7k
                          const IColumn* c1) const {
343
13.7k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
13.7k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
13.7k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
13.7k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
13.7k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
13.7k
        DCHECK(!(c0_const && c1_const));
352
13.7k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
13.7k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
13.7k
        ColumnString::Offset c0_const_size = 0;
355
13.7k
        ColumnString::Offset c1_const_size = 0;
356
357
13.7k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
13.7k
        if (c1_const) {
371
13.7k
            const ColumnString* c1_const_string =
372
13.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
13.7k
            if (c1_const_string) {
375
13.7k
                c1_const_chars = &c1_const_string->get_chars();
376
13.7k
                c1_const_size = c1_const_string->get_offsets()[0];
377
13.7k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
13.7k
        }
382
383
13.7k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
13.7k
        auto c_res = ColumnUInt8::create();
386
13.7k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
13.7k
        vec_res.resize(c0->size());
388
389
13.7k
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
13.7k
        } else if (c0_string && c1_const) {
394
13.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
13.7k
                                               *c1_const_chars, c1_const_size, vec_res);
396
13.7k
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
13.7k
        block.replace_by_position(result, std::move(c_res));
405
13.7k
        return Status::OK();
406
13.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
10.2k
                          const IColumn* c1) const {
343
10.2k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
10.2k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
10.2k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
10.2k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
10.2k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
10.2k
        DCHECK(!(c0_const && c1_const));
352
10.2k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
10.2k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
10.2k
        ColumnString::Offset c0_const_size = 0;
355
10.2k
        ColumnString::Offset c1_const_size = 0;
356
357
10.2k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
10.2k
        if (c1_const) {
371
10.2k
            const ColumnString* c1_const_string =
372
10.2k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
10.2k
            if (c1_const_string) {
375
10.2k
                c1_const_chars = &c1_const_string->get_chars();
376
10.2k
                c1_const_size = c1_const_string->get_offsets()[0];
377
10.2k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
10.2k
        }
382
383
10.2k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
10.2k
        auto c_res = ColumnUInt8::create();
386
10.2k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
10.2k
        vec_res.resize(c0->size());
388
389
10.2k
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
10.2k
        } else if (c0_string && c1_const) {
394
10.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
10.2k
                                               *c1_const_chars, c1_const_size, vec_res);
396
10.2k
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
10.2k
        block.replace_by_position(result, std::move(c_res));
405
10.2k
        return Status::OK();
406
10.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
1.40k
                          const IColumn* c1) const {
343
1.40k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
1.40k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
1.40k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
1.40k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
1.40k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
1.40k
        DCHECK(!(c0_const && c1_const));
352
1.40k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
1.40k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
1.40k
        ColumnString::Offset c0_const_size = 0;
355
1.40k
        ColumnString::Offset c1_const_size = 0;
356
357
1.40k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
1.40k
        if (c1_const) {
371
1.40k
            const ColumnString* c1_const_string =
372
1.40k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
1.40k
            if (c1_const_string) {
375
1.40k
                c1_const_chars = &c1_const_string->get_chars();
376
1.40k
                c1_const_size = c1_const_string->get_offsets()[0];
377
1.40k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
1.40k
        }
382
383
1.40k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
1.40k
        auto c_res = ColumnUInt8::create();
386
1.40k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
1.40k
        vec_res.resize(c0->size());
388
389
1.40k
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
1.40k
        } else if (c0_string && c1_const) {
394
1.40k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
1.40k
                                               *c1_const_chars, c1_const_size, vec_res);
396
1.40k
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
1.40k
        block.replace_by_position(result, std::move(c_res));
405
1.40k
        return Status::OK();
406
1.40k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
382
                          const IColumn* c1) const {
343
382
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
382
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
382
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
382
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
382
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
382
        DCHECK(!(c0_const && c1_const));
352
382
        const ColumnString::Chars* c0_const_chars = nullptr;
353
382
        const ColumnString::Chars* c1_const_chars = nullptr;
354
382
        ColumnString::Offset c0_const_size = 0;
355
382
        ColumnString::Offset c1_const_size = 0;
356
357
382
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
382
        if (c1_const) {
371
382
            const ColumnString* c1_const_string =
372
382
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
382
            if (c1_const_string) {
375
382
                c1_const_chars = &c1_const_string->get_chars();
376
382
                c1_const_size = c1_const_string->get_offsets()[0];
377
382
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
382
        }
382
383
382
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
382
        auto c_res = ColumnUInt8::create();
386
382
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
382
        vec_res.resize(c0->size());
388
389
382
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
382
        } else if (c0_string && c1_const) {
394
382
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
382
                                               *c1_const_chars, c1_const_size, vec_res);
396
382
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
382
        block.replace_by_position(result, std::move(c_res));
405
382
        return Status::OK();
406
382
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
144
                          const IColumn* c1) const {
343
144
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
144
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
144
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
144
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
144
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
144
        DCHECK(!(c0_const && c1_const));
352
144
        const ColumnString::Chars* c0_const_chars = nullptr;
353
144
        const ColumnString::Chars* c1_const_chars = nullptr;
354
144
        ColumnString::Offset c0_const_size = 0;
355
144
        ColumnString::Offset c1_const_size = 0;
356
357
144
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
144
        if (c1_const) {
371
144
            const ColumnString* c1_const_string =
372
144
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
144
            if (c1_const_string) {
375
144
                c1_const_chars = &c1_const_string->get_chars();
376
144
                c1_const_size = c1_const_string->get_offsets()[0];
377
144
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
144
        }
382
383
144
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
144
        auto c_res = ColumnUInt8::create();
386
144
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
144
        vec_res.resize(c0->size());
388
389
144
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
144
        } else if (c0_string && c1_const) {
394
144
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
144
                                               *c1_const_chars, c1_const_size, vec_res);
396
144
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
144
        block.replace_by_position(result, std::move(c_res));
405
144
        return Status::OK();
406
144
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
1.58k
                          const IColumn* c1) const {
343
1.58k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
1.58k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
1.58k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
1.58k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
1.58k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
1.58k
        DCHECK(!(c0_const && c1_const));
352
1.58k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
1.58k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
1.58k
        ColumnString::Offset c0_const_size = 0;
355
1.58k
        ColumnString::Offset c1_const_size = 0;
356
357
1.58k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
1.58k
        if (c1_const) {
371
1.58k
            const ColumnString* c1_const_string =
372
1.58k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
1.58k
            if (c1_const_string) {
375
1.58k
                c1_const_chars = &c1_const_string->get_chars();
376
1.58k
                c1_const_size = c1_const_string->get_offsets()[0];
377
1.58k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
1.58k
        }
382
383
1.58k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
1.58k
        auto c_res = ColumnUInt8::create();
386
1.58k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
1.58k
        vec_res.resize(c0->size());
388
389
1.58k
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
1.58k
        } else if (c0_string && c1_const) {
394
1.58k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
1.58k
                                               *c1_const_chars, c1_const_size, vec_res);
396
1.58k
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
1.58k
        block.replace_by_position(result, std::move(c_res));
405
1.58k
        return Status::OK();
406
1.58k
    }
407
408
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
409
1
                                         const IColumn* c1) const {
410
1
        bool c0_const = is_column_const(*c0);
411
1
        bool c1_const = is_column_const(*c1);
412
413
1
        DCHECK(!(c0_const && c1_const));
414
415
1
        auto c_res = ColumnUInt8::create();
416
1
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
1
        vec_res.resize(c0->size());
418
419
1
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
1
        } else if (c1_const) {
422
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
1
        } else {
424
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
1
        }
426
427
1
        block.replace_by_position(result, std::move(c_res));
428
1
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
1
                                         const IColumn* c1) const {
410
1
        bool c0_const = is_column_const(*c0);
411
1
        bool c1_const = is_column_const(*c1);
412
413
1
        DCHECK(!(c0_const && c1_const));
414
415
1
        auto c_res = ColumnUInt8::create();
416
1
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
1
        vec_res.resize(c0->size());
418
419
1
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
1
        } else if (c1_const) {
422
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
1
        } else {
424
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
1
        }
426
427
1
        block.replace_by_position(result, std::move(c_res));
428
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
429
430
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
431
1
                           const ColumnWithTypeAndName& c1) const {
432
1
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
1
        return Status::OK();
434
1
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
1
                           const ColumnWithTypeAndName& c1) const {
432
1
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
1
        return Status::OK();
434
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
435
436
public:
437
6
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
438
439
192k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
184k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
199
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
439
1.48k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
2.30k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
439
468
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
3.87k
    size_t get_number_of_arguments() const override { return 2; }
440
441
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
442
192k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
192k
        return std::make_shared<DataTypeUInt8>();
444
192k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
184k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
184k
        return std::make_shared<DataTypeUInt8>();
444
184k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
199
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
199
        return std::make_shared<DataTypeUInt8>();
444
199
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
1.48k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
1.48k
        return std::make_shared<DataTypeUInt8>();
444
1.48k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
2.30k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
2.30k
        return std::make_shared<DataTypeUInt8>();
444
2.30k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
468
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
468
        return std::make_shared<DataTypeUInt8>();
444
468
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
3.88k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
3.88k
        return std::make_shared<DataTypeUInt8>();
444
3.88k
    }
445
446
    Status evaluate_inverted_index(
447
            const ColumnsWithTypeAndName& arguments,
448
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
449
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
450
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
451
1
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
1
        DCHECK(arguments.size() == 1);
453
1
        DCHECK(data_type_with_names.size() == 1);
454
1
        DCHECK(iterators.size() == 1);
455
1
        auto* iter = iterators[0];
456
1
        auto data_type_with_name = data_type_with_names[0];
457
1
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
1
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
0
            return Status::OK();
462
0
        }
463
1
        segment_v2::InvertedIndexQueryType query_type;
464
1
        std::string_view name_view(name);
465
1
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
1
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
1
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
0
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
0
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
1
        if (segment_v2::is_range_query(query_type) &&
480
1
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
0
            return Status::OK();
483
0
        }
484
1
        Field param_value;
485
1
        arguments[0].column->get(0, param_value);
486
1
        if (param_value.is_null()) {
487
1
            return Status::OK();
488
1
        }
489
0
        auto param_type = arguments[0].type->get_primitive_type();
490
0
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
0
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
0
                param_type, &param_value, query_param));
493
494
0
        segment_v2::InvertedIndexParam param;
495
0
        param.column_name = data_type_with_name.first;
496
0
        param.column_type = data_type_with_name.second;
497
0
        param.query_value = query_param->get_value();
498
0
        param.query_type = query_type;
499
0
        param.num_rows = num_rows;
500
0
        param.roaring = std::make_shared<roaring::Roaring>();
501
0
        param.analyzer_ctx = analyzer_ctx;
502
0
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
0
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
0
        if (iter->has_null()) {
505
0
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
0
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
0
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
0
        }
509
0
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
0
        bitmap_result = result;
511
0
        bitmap_result.mask_out_null();
512
513
0
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
0
        return Status::OK();
520
0
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
1
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
1
        DCHECK(arguments.size() == 1);
453
1
        DCHECK(data_type_with_names.size() == 1);
454
1
        DCHECK(iterators.size() == 1);
455
1
        auto* iter = iterators[0];
456
1
        auto data_type_with_name = data_type_with_names[0];
457
1
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
1
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
0
            return Status::OK();
462
0
        }
463
1
        segment_v2::InvertedIndexQueryType query_type;
464
1
        std::string_view name_view(name);
465
1
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
1
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
1
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
0
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
0
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
1
        if (segment_v2::is_range_query(query_type) &&
480
1
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
0
            return Status::OK();
483
0
        }
484
1
        Field param_value;
485
1
        arguments[0].column->get(0, param_value);
486
1
        if (param_value.is_null()) {
487
1
            return Status::OK();
488
1
        }
489
0
        auto param_type = arguments[0].type->get_primitive_type();
490
0
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
0
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
0
                param_type, &param_value, query_param));
493
494
0
        segment_v2::InvertedIndexParam param;
495
0
        param.column_name = data_type_with_name.first;
496
0
        param.column_type = data_type_with_name.second;
497
0
        param.query_value = query_param->get_value();
498
0
        param.query_type = query_type;
499
0
        param.num_rows = num_rows;
500
0
        param.roaring = std::make_shared<roaring::Roaring>();
501
0
        param.analyzer_ctx = analyzer_ctx;
502
0
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
0
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
0
        if (iter->has_null()) {
505
0
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
0
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
0
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
0
        }
509
0
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
0
        bitmap_result = result;
511
0
        bitmap_result.mask_out_null();
512
513
0
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
0
        return Status::OK();
520
0
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
521
522
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
523
302k
                        uint32_t result, size_t input_rows_count) const override {
524
302k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
302k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
302k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
302k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
302k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
302k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
302k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
302k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
302k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
302k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
446k
        auto can_compare = [](PrimitiveType t) -> bool {
562
446k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
446k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
122k
        auto can_compare = [](PrimitiveType t) -> bool {
562
122k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
122k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
10.7k
        auto can_compare = [](PrimitiveType t) -> bool {
562
10.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
10.7k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
64.3k
        auto can_compare = [](PrimitiveType t) -> bool {
562
64.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
64.3k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
35.3k
        auto can_compare = [](PrimitiveType t) -> bool {
562
35.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
35.3k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
13.9k
        auto can_compare = [](PrimitiveType t) -> bool {
562
13.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
13.9k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
199k
        auto can_compare = [](PrimitiveType t) -> bool {
562
199k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
199k
        };
564
565
302k
        if (can_compare(left_type->get_primitive_type()) &&
566
302k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
144k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
144k
        }
574
575
302k
        auto compare_type = left_type->get_primitive_type();
576
302k
        switch (compare_type) {
577
1.92k
        case TYPE_BOOLEAN:
578
1.92k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
11.9k
        case TYPE_DATEV2:
580
11.9k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
1.46k
        case TYPE_DATETIMEV2:
582
1.46k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
2.28k
        case TYPE_TINYINT:
586
2.28k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
1.71k
        case TYPE_SMALLINT:
588
1.71k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
84.3k
        case TYPE_INT:
590
84.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
38.1k
        case TYPE_BIGINT:
592
38.1k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
62
        case TYPE_LARGEINT:
594
62
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
254
        case TYPE_FLOAT:
600
254
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
2.09k
        case TYPE_DOUBLE:
602
2.09k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
150
        case TYPE_DECIMAL32:
607
141k
        case TYPE_DECIMAL64:
608
144k
        case TYPE_DECIMAL128I:
609
144k
        case TYPE_DECIMAL256:
610
144k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
144k
                                   col_with_type_and_name_right);
612
348
        case TYPE_CHAR:
613
3.42k
        case TYPE_VARCHAR:
614
13.7k
        case TYPE_STRING:
615
13.7k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
1
        default:
617
1
            return execute_generic(block, result, col_with_type_and_name_left,
618
1
                                   col_with_type_and_name_right);
619
302k
        }
620
0
        return Status::OK();
621
302k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
66.7k
                        uint32_t result, size_t input_rows_count) const override {
524
66.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
66.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
66.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
66.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
66.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
66.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
66.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
66.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
66.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
66.7k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
66.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
66.7k
        };
564
565
66.7k
        if (can_compare(left_type->get_primitive_type()) &&
566
66.7k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
55.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
55.9k
        }
574
575
66.7k
        auto compare_type = left_type->get_primitive_type();
576
66.7k
        switch (compare_type) {
577
1.50k
        case TYPE_BOOLEAN:
578
1.50k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
500
        case TYPE_DATEV2:
580
500
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
198
        case TYPE_DATETIMEV2:
582
198
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
2.02k
        case TYPE_TINYINT:
586
2.02k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
1.04k
        case TYPE_SMALLINT:
588
1.04k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
28.6k
        case TYPE_INT:
590
28.6k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
22.0k
        case TYPE_BIGINT:
592
22.0k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
30
        case TYPE_LARGEINT:
594
30
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
4
        case TYPE_FLOAT:
600
4
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
69
        case TYPE_DOUBLE:
602
69
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
94
        case TYPE_DECIMAL32:
607
198
        case TYPE_DECIMAL64:
608
534
        case TYPE_DECIMAL128I:
609
534
        case TYPE_DECIMAL256:
610
534
            return execute_decimal(block, result, col_with_type_and_name_left,
611
534
                                   col_with_type_and_name_right);
612
74
        case TYPE_CHAR:
613
2.09k
        case TYPE_VARCHAR:
614
10.2k
        case TYPE_STRING:
615
10.2k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
1
        default:
617
1
            return execute_generic(block, result, col_with_type_and_name_left,
618
1
                                   col_with_type_and_name_right);
619
66.7k
        }
620
0
        return Status::OK();
621
66.7k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
6.24k
                        uint32_t result, size_t input_rows_count) const override {
524
6.24k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
6.24k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
6.24k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
6.24k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
6.24k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
6.24k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
6.24k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
6.24k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
6.24k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
6.24k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
6.24k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
6.24k
        };
564
565
6.24k
        if (can_compare(left_type->get_primitive_type()) &&
566
6.24k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
4.54k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
4.54k
        }
574
575
6.24k
        auto compare_type = left_type->get_primitive_type();
576
6.24k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
8
        case TYPE_DATEV2:
580
8
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
2
        case TYPE_DATETIMEV2:
582
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
16
        case TYPE_TINYINT:
586
16
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
26
        case TYPE_SMALLINT:
588
26
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
2.58k
        case TYPE_INT:
590
2.58k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
1.90k
        case TYPE_BIGINT:
592
1.90k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_LARGEINT:
594
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_FLOAT:
600
0
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DOUBLE:
602
0
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
0
        case TYPE_DECIMAL32:
607
0
        case TYPE_DECIMAL64:
608
296
        case TYPE_DECIMAL128I:
609
296
        case TYPE_DECIMAL256:
610
296
            return execute_decimal(block, result, col_with_type_and_name_left,
611
296
                                   col_with_type_and_name_right);
612
16
        case TYPE_CHAR:
613
314
        case TYPE_VARCHAR:
614
1.40k
        case TYPE_STRING:
615
1.40k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
0
        default:
617
0
            return execute_generic(block, result, col_with_type_and_name_left,
618
0
                                   col_with_type_and_name_right);
619
6.24k
        }
620
0
        return Status::OK();
621
6.24k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
33.3k
                        uint32_t result, size_t input_rows_count) const override {
524
33.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
33.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
33.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
33.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
33.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
33.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
33.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
33.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
33.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
33.3k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
33.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
33.3k
        };
564
565
33.3k
        if (can_compare(left_type->get_primitive_type()) &&
566
33.3k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
31.0k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
31.0k
        }
574
575
33.3k
        auto compare_type = left_type->get_primitive_type();
576
33.3k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
116
        case TYPE_DATEV2:
580
116
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
92
        case TYPE_DATETIMEV2:
582
92
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
8
        case TYPE_TINYINT:
586
8
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
168
        case TYPE_SMALLINT:
588
168
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
16.4k
        case TYPE_INT:
590
16.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
12.1k
        case TYPE_BIGINT:
592
12.1k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_LARGEINT:
594
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
16
        case TYPE_FLOAT:
600
16
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
1.95k
        case TYPE_DOUBLE:
602
1.95k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
38
        case TYPE_DECIMAL32:
607
1.57k
        case TYPE_DECIMAL64:
608
2.29k
        case TYPE_DECIMAL128I:
609
2.29k
        case TYPE_DECIMAL256:
610
2.29k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
2.29k
                                   col_with_type_and_name_right);
612
0
        case TYPE_CHAR:
613
0
        case TYPE_VARCHAR:
614
0
        case TYPE_STRING:
615
0
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
0
        default:
617
0
            return execute_generic(block, result, col_with_type_and_name_left,
618
0
                                   col_with_type_and_name_right);
619
33.3k
        }
620
0
        return Status::OK();
621
33.3k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
17.9k
                        uint32_t result, size_t input_rows_count) const override {
524
17.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
17.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
17.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
17.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
17.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
17.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
17.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
17.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
17.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
17.9k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
17.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
17.9k
        };
564
565
17.9k
        if (can_compare(left_type->get_primitive_type()) &&
566
17.9k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
17.3k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
17.3k
        }
574
575
17.9k
        auto compare_type = left_type->get_primitive_type();
576
17.9k
        switch (compare_type) {
577
124
        case TYPE_BOOLEAN:
578
124
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.03k
        case TYPE_DATEV2:
580
1.03k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
474
        case TYPE_DATETIMEV2:
582
474
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
2
        case TYPE_TINYINT:
586
2
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
0
        case TYPE_SMALLINT:
588
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
15.0k
        case TYPE_INT:
590
15.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
600
        case TYPE_BIGINT:
592
600
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
16
        case TYPE_LARGEINT:
594
16
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
104
        case TYPE_FLOAT:
600
104
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
12
        case TYPE_DOUBLE:
602
12
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
8
        case TYPE_DECIMAL32:
607
210
        case TYPE_DECIMAL64:
608
212
        case TYPE_DECIMAL128I:
609
212
        case TYPE_DECIMAL256:
610
212
            return execute_decimal(block, result, col_with_type_and_name_left,
611
212
                                   col_with_type_and_name_right);
612
0
        case TYPE_CHAR:
613
92
        case TYPE_VARCHAR:
614
382
        case TYPE_STRING:
615
382
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
0
        default:
617
0
            return execute_generic(block, result, col_with_type_and_name_left,
618
0
                                   col_with_type_and_name_right);
619
17.9k
        }
620
0
        return Status::OK();
621
17.9k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
7.16k
                        uint32_t result, size_t input_rows_count) const override {
524
7.16k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
7.16k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
7.16k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
7.16k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
7.16k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
7.16k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
7.16k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
7.16k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
7.16k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
7.16k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
7.16k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
7.16k
        };
564
565
7.16k
        if (can_compare(left_type->get_primitive_type()) &&
566
7.16k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
6.77k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
6.77k
        }
574
575
7.16k
        auto compare_type = left_type->get_primitive_type();
576
7.16k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
94
        case TYPE_DATEV2:
580
94
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
278
        case TYPE_DATETIMEV2:
582
278
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
34
        case TYPE_TINYINT:
586
34
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
254
        case TYPE_SMALLINT:
588
254
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
5.14k
        case TYPE_INT:
590
5.14k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
906
        case TYPE_BIGINT:
592
906
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_LARGEINT:
594
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
26
        case TYPE_FLOAT:
600
26
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
40
        case TYPE_DOUBLE:
602
40
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
10
        case TYPE_DECIMAL32:
607
42
        case TYPE_DECIMAL64:
608
242
        case TYPE_DECIMAL128I:
609
242
        case TYPE_DECIMAL256:
610
242
            return execute_decimal(block, result, col_with_type_and_name_left,
611
242
                                   col_with_type_and_name_right);
612
0
        case TYPE_CHAR:
613
0
        case TYPE_VARCHAR:
614
144
        case TYPE_STRING:
615
144
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
0
        default:
617
0
            return execute_generic(block, result, col_with_type_and_name_left,
618
0
                                   col_with_type_and_name_right);
619
7.16k
        }
620
0
        return Status::OK();
621
7.16k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
170k
                        uint32_t result, size_t input_rows_count) const override {
524
170k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
170k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
170k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
170k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
170k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
170k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
170k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
170k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
170k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
170k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
170k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
170k
        };
564
565
170k
        if (can_compare(left_type->get_primitive_type()) &&
566
170k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
28.5k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
28.5k
        }
574
575
170k
        auto compare_type = left_type->get_primitive_type();
576
170k
        switch (compare_type) {
577
302
        case TYPE_BOOLEAN:
578
302
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
10.1k
        case TYPE_DATEV2:
580
10.1k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
422
        case TYPE_DATETIMEV2:
582
422
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
194
        case TYPE_TINYINT:
586
194
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
220
        case TYPE_SMALLINT:
588
220
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
16.5k
        case TYPE_INT:
590
16.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
586
        case TYPE_BIGINT:
592
586
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
16
        case TYPE_LARGEINT:
594
16
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
104
        case TYPE_FLOAT:
600
104
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
22
        case TYPE_DOUBLE:
602
22
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
0
        case TYPE_DECIMAL32:
607
139k
        case TYPE_DECIMAL64:
608
140k
        case TYPE_DECIMAL128I:
609
140k
        case TYPE_DECIMAL256:
610
140k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
140k
                                   col_with_type_and_name_right);
612
258
        case TYPE_CHAR:
613
918
        case TYPE_VARCHAR:
614
1.58k
        case TYPE_STRING:
615
1.58k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
0
        default:
617
0
            return execute_generic(block, result, col_with_type_and_name_left,
618
0
                                   col_with_type_and_name_right);
619
170k
        }
620
0
        return Status::OK();
621
170k
    }
622
};
623
624
} // namespace doris